matflow.TaskSchema#
- class matflow.TaskSchema(objective, actions=None, method=None, implementation=None, inputs=None, outputs=None, version=None, parameter_class_modules=None, web_doc=True, environment_presets=None, doc='', parameter_dependencies=None, save_files=None, _hash_value=None, disable_array_outputs=None)#
Bases:
TaskSchemaClass to represent the inputs, outputs and implementation mechanism of a given task.
- Parameters:
objective (TaskObjective | str) – This is a string representing the objective of the task schema.
actions (list[Action] | None) – A list of Action objects whose commands are to be executed by the task.
method (str | None) – An optional string to label the task schema by its method.
implementation (str | None) – An optional string to label the task schema by its implementation.
inputs (list[Parameter | SchemaInput] | None) – A list of SchemaInput objects that define the inputs to the task.
outputs (list[Parameter | SchemaParameter] | None) – A list of SchemaOutput objects that define the outputs of the task.
version (str | None) – The version of this task schema.
parameter_class_modules (list[str] | None) – Where to find implementations of parameter value handlers.
web_doc (bool | None) – True if this object should be included in the Sphinx documentation (normally only relevant for built-in task schemas). True by default.
environment_presets (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – Information about default execution environments. Can be overridden in specific cases in the concrete tasks.
disable_array_outputs (list[str] | None) – A list of dot-delimited output parameter paths, relative to the
outputsnamespace, to store only in legacy Zarr groups. Theoutputs.prefix is optional. Containing parameter paths disable all nested arrays. By default EAR output ndarrays use Zstandard-compressed NPZ instead of legacy Zarr groups, with up to 500 archives per shard directory. This is a temporary storage workaround specific to the Zarr store.save_files (bool | list[str] | None) – Files to retain as workflow artifacts.
Trueretains all declared files,FalseorNone(default) retains none, and a list retains the listed declared file labels plus anypath:-prefixed working-directory paths (which may include glob patterns). Files required by downstream tasks are always retained. Tasks may override this policy.doc (str) –
parameter_dependencies (Sequence[str] | None) –
_hash_value (str | None) –
Methods
Add a explicit parameter dependency to the schema and each of its actions.
Make an instance of this class from JSON (or YAML) data.
For each parameter that appears within the actions of this task schema, get the ordered source and sink action indices (where it is an output and input).
Get a config-loaded task schema from a key.
Get the labels of files declared by this schema's actions.
Describe the task schema as an HTML document.
Get the hashable value that represents this schema.
Get stable indices of schema outputs within their parent action; and those of action outputs, input files, and output files within their parent action.
Find if/where a given parameter is used by the schema's actions.
A context manager within which invalid actions will be ignored.
Convert this task schema to persistent form within the context of the given workflow.
Serialize this object as a dictionary.
Serialize this object as an object structure that can be trivially converted to JSON.
Attributes
Show inputs, outputs, and actions, formatted in a table.
Show inputs and outputs, formatted in a table.
A map between input types and their associated labelled types.
The input types to the schema.
Get a list of input types that have multiple labels.
The name of this schema.
The output types from the schema.
The parameters that this schema provides.
The template that this schema is contained in.
This is a string representing the objective of the task schema.
A list of Action objects whose commands are to be executed by the task.
An optional string to label the task schema by its method.
An optional string to label the task schema by its implementation.
A list of SchemaInput objects that define the inputs to the task.
A list of SchemaOutput objects that define the outputs of the task.
Where to find implementations of parameter value handlers.
Whether this object should be included in the Sphinx documentation (normally only relevant for built-in task schemas).
Information about default execution environments.
Documentation information about the task schema.
Output paths excluded from the temporary NPZ array storage workaround.
The version of this task schema.
- actions#
A list of Action objects whose commands are to be executed by the task.
- add_parameter_dependency(param, group_name=None)#
Add a explicit parameter dependency to the schema and each of its actions.
- disable_array_outputs#
Output paths excluded from the temporary NPZ array storage workaround.
- doc#
Documentation information about the task schema.
- environment_presets#
Information about default execution environments.
- classmethod from_json_like(json_like, shared_data=None)#
Make an instance of this class from JSON (or YAML) data.
- get_action_parameter_flow()#
For each parameter that appears within the actions of this task schema, get the ordered source and sink action indices (where it is an output and input).
An action index of -1 within the “sources” list indicates that parameter is an input from the schema (i.e. parametrised in the element set); an action index of -1 within the “sinks” list indicates that parameter is an output of the schema.
- classmethod get_by_key(key)#
Get a config-loaded task schema from a key.
- Parameters:
key (str) –
- Return type:
- get_output_indices()#
Get stable indices of schema outputs within their parent action; and those of action outputs, input files, and output files within their parent action. These mappings can be used by the persistent store.
Note that for output file parser actions where we pass a schema output in, we will end up with a index slot for that output parameter even though it is not actually an output of the action, and so no slot is required.
- get_parameter_dependence(parameter)#
Find if/where a given parameter is used by the schema’s actions.
- Parameters:
parameter (SchemaParameter) –
- Return type:
ActParameterDependence
- classmethod ignore_invalid_actions()#
A context manager within which invalid actions will be ignored.
- Return type:
Iterator[None]
- implementation#
An optional string to label the task schema by its implementation.
- property input_type_labels_map: dict[str, tuple[str, ...]]#
A map between input types and their associated labelled types.
- inputs#
A list of SchemaInput objects that define the inputs to the task.
- make_persistent(workflow, source)#
Convert this task schema to persistent form within the context of the given workflow.
- method#
An optional string to label the task schema by its method.
- objective#
This is a string representing the objective of the task schema.
- outputs#
A list of SchemaOutput objects that define the outputs of the task.
- parameter_class_modules#
Where to find implementations of parameter value handlers.
- property provides_parameters: Iterator[tuple[Literal['input', 'output'], str]]#
The parameters that this schema provides.
- to_json_like(dct=None, shared_data=None, exclude=(), path=None)#
Serialize this object as an object structure that can be trivially converted to JSON. Note that YAML can also be produced from the result of this method; it just requires a different final serialization step.
- version#
The version of this task schema.
- web_doc#
Whether this object should be included in the Sphinx documentation (normally only relevant for built-in task schemas).