m3resp.register_step#
- m3resp.register_step(name, *, reads=None, optional_reads=(), writes=(), replaces=(), requires=(), summary='', description='', parameters=(), parameters_reviewed=False, mutually_exclusive_parameters=(), input_artifacts=(), output_artifacts=(), session_reads=(), session_writes=(), modality=None, category=None, alternatives=(), optional_packages=(), resource_profile=None, version=None, deprecated_since=None, record=False, aliases=())[source]#
Register a function and its workflow inputs, outputs and descriptions.
- Parameters:
name (str) – Operation name in lowercase prefix.operation form.
reads (Mapping[str, str | None] | None) – Function arguments mapped to default context keys. None values require explicit input bindings in the spec.
optional_reads (tuple[str, ...]) – Names from reads that may be absent at execution time.
writes (tuple[str, ...]) – Output names returned by the step, renameable through
out:.replaces (tuple[str, ...]) – Names from writes whose value replaces the value an earlier step wrote under the same context key.
requires (tuple[str, ...]) – Additional context keys required before execution.
summary (str) – Short description; defaults to the function docstring’s first line.
description (str) – Longer description for step discovery.
parameters (tuple[StepParameter, ...]) – Static parameter descriptions, including units and limits.
parameters_reviewed (bool) – Whether an empty parameter list is confirmed complete. Set to True automatically when parameter descriptions are supplied.
mutually_exclusive_parameters (tuple[tuple[str, ...], ...]) – Groups with at most one setting per invocation.
input_artifacts (tuple[StepArtifact, ...]) – Descriptions of values read by the step.
output_artifacts (tuple[StepArtifact, ...]) – Descriptions of values returned by the step.
session_reads (tuple[str, ...]) – Dotted names of session resources read directly.
session_writes (tuple[str, ...]) – Dotted names of session resources changed directly.
modality (str | None) – Device or technique associated with the step.
category (str | None) – Processing or measurement category.
alternatives (tuple[str, ...]) – Names of related operations.
optional_packages (tuple[str, ...]) – Package names used to report availability.
resource_profile (str | None) – Optional description of processing resources needed.
version (str | None) – Optional operation version.
deprecated_since (str | None) – Version from which this operation is deprecated.
record (bool) – Add one provenance record to
session.provenanceafter each call. The record holds the step name, its reads and writes, the installed version of its first optional package (None for a step without one), and the details the step returns under the output key"_provenance". That key is removed from the outputs. The step must readsession.aliases (tuple[str, ...]) – Former operation names that resolve to this registration and are omitted from step discovery.
- Returns:
- Decorator that validates metadata, adds the definition and
aliases to the registries, and returns the supplied function, or with
record=Truethe function wrapped to record each call.
- Return type:
Callable
- Raises:
ValueError – When applying the decorator, if a name or alias conflicts with a registration, optional_reads names an undeclared input, or replaces names an undeclared output.
StepMetadataError – When applying the decorator, if names, parameters, input/output descriptions or their JSON representation are invalid, or
record=Trueis set for a step that does not readsession.