httk.workflow.adapter_protocol

The public name of the remote-adapter protocol implementation.

A remote adapter is a versioned directory with one executable adapter program. Every operation – configure, install, invoke, push, pull, start-manager and status – runs that one program, which reads one JSON request file, learns which operation to perform from the request’s operation member, and prints one JSON result. The maintained local, local-slurm and ssh-slurm templates implement that protocol by executing this module, which selects its behaviour from the kind recorded in the bundle’s remote.json and refuses any other kind rather than running it in the wrong place.

This module is the documented surface of that contract. The implementation lives in httk.workflow.adapter_runtime, which is what the packaged adapter dispatcher executes; both names refer to the same objects. See the workflow CLI guide in the httk-workflow documentation for the operations and the settings each one uses.

Every subprocess started by the implementation is an argument vector, so no shell ever parses a value that came from a request or from settings. ssh is the one unavoidable exception, because it always joins its command words for a login shell on the far side; every remote command string is therefore built by a single element-wise quoting helper.

Attributes

Functions

main(→ int)

Module Contents

httk.workflow.adapter_protocol.BATCH_DIRECTIVES = (('account', '--account'), ('partition', '--partition'), ('time_limit', '--time'), ('nodes',...
httk.workflow.adapter_protocol.BATCH_DIRECTORY = '.httk-workflow/batch'
httk.workflow.adapter_protocol.SUPPORTED_KINDS = ('local', 'local-slurm', 'ssh-slurm')
httk.workflow.adapter_protocol.main(argv: list[str] | None = None) int[source]