matflow.WorkflowTask#
- class matflow.WorkflowTask(workflow, template, index, element_IDs)#
Bases:
WorkflowTaskRepresents a
Taskthat is bound to aWorkflow.- Parameters:
Methods
Add elements to this task.
Check valid input sources are specified for a new task to be added to the workflow in a given position.
Export this task's selected array output to a single
.npyfile.Create information about new elements in this task.
Get a parameter known to this task by its path.
Get the iterations known by the task's elements.
Read an array output from this task's producing action runs.
Get elements from downstream tasks that depend on this task.
Get tasks (insert ID or WorkflowTask objects) that depends on this task.
Get the directory name for a particular iteration.
Get elements from upstream tasks that this task depends on.
Get tasks (insert ID or WorkflowTask objects) that this task depends on.
Try to initialise any uninitialised EARs of this task.
Return array output directory names for this task's output parameters.
Make a new instance without any elements set up yet, validate any task condition, and add any missing parameter dependence required by that condition.
Find the index of the parameter group index list corresponding to each input data for all elements.
Validate a task condition string.
Attributes
The name of the directory for the task's temporary files.
All workflow tasks that are downstream from this task.
The IDs of elements associated with this task.
The elements associated with this task.
The index of this task within its workflow.
Inputs to this task.
The insertion ID of the template task.
The name of this task based on its template.
The number of actions in this task.
The number of element sets associated with this task.
The number of elements associated with this task.
Outputs from this task.
The template for this task.
The unique name for this task specifically.
All workflow tasks that are upstream from this task.
The workflow this task is bound to.
- add_elements(*, base_element=None, inputs=None, input_files=None, sequences=None, resources=None, repeats=None, input_sources=None, nesting_order=None, element_sets=None, sourceable_elem_iters=None, propagate_to=None, return_indices=False)#
Add elements to this task.
- Parameters:
sourceable_elem_iters (list of int, optional) – If specified, a list of global element iteration indices from which inputs may be sourced. If not specified, all workflow element iterations are considered sourceable.
propagate_to (dict[str, ElementPropagation]) – Propagate the new elements downstream to the specified tasks.
return_indices (bool) – If True, return the list of indices of the newly added elements. False by default.
base_element (Element | None) –
inputs (list[InputValue] | dict[str, Any] | None) –
sequences (list[ValueSequence] | None) –
resources (Resources) –
repeats (RepeatsDescriptorType) –
input_sources (dict[str, list[InputSource]] | None) –
element_sets (list[ElementSet] | None) –
- Return type:
- property downstream_tasks: Iterator[WorkflowTask]#
All workflow tasks that are downstream from this task.
- ensure_input_sources(element_set)#
Check valid input sources are specified for a new task to be added to the workflow in a given position. If none are specified, set them according to the default behaviour.
This method mutates element_set.input_sources.
- Parameters:
element_set (ElementSet) –
- Return type:
- export_array_output(name, path, *, iteration_idx=None, element_idx=None, sort=True, overwrite=False)#
Export this task’s selected array output to a single
.npyfile.Filters and sorting follow
get_array_output(). All selected arrays must have matching shapes. Write to exactlypathand return that path. Existing files raise FileExistsError unlessoverwrite=True.
- generate_new_elements(input_data_indices, output_data_indices, element_data_indices, sequence_indices, source_indices)#
Create information about new elements in this task.
- get(path, *, raise_on_missing=False, default=None)#
Get a parameter known to this task by its path.
- Parameters:
path (str) –
default (Any | None) –
- Return type:
- get_all_element_iterations()#
Get the iterations known by the task’s elements.
- Return type:
Mapping[int, ElementIteration]
- get_array_output(name, *, iteration_idx=None, element_idx=None, sort=True)#
Read an array output from this task’s producing action runs.
The optional
outputs.prefix is accepted. Task- and schema-leveldisable_array_outputsexclusions are combined. Only runs of the root parameter’s first source action fromTaskSchema.get_action_parameter_flow()are included. By default, results are sorted lexicographically by element index, iteration index, action index, then run index. Withsort=False, order followsWorkflow.get_EAR_IDs_of_tasks(). Archives are read only by the workflow reader; missing saved data therefore raises rather than being skipped.iteration_idx=Noneselects each element’s final non-loop-skipped iteration; an integer or sequence selects those iteration indices explicitly.element_idx=Noneincludes all elements; an integer or sequence selects those element indices. Sequences filter without reordering or duplicating runs.
- get_dependent_elements(as_objects=False)#
Get elements from downstream tasks that depend on this task.
- get_dependent_tasks(as_objects=False)#
Get tasks (insert ID or WorkflowTask objects) that depends on this task.
- Parameters:
as_objects (bool) –
- Return type:
- get_dir_name(loop_idx=None)#
Get the directory name for a particular iteration.
- get_element_dependencies(as_objects=False)#
Get elements from upstream tasks that this task depends on.
- get_task_dependencies(as_objects=False)#
Get tasks (insert ID or WorkflowTask objects) that this task depends on.
Dependencies may come from either elements from upstream tasks, or from locally defined inputs/sequences/defaults from upstream tasks.
- Parameters:
as_objects (bool) –
- Return type:
- initialise_EARs(iter_IDs=None)#
Try to initialise any uninitialised EARs of this task.
- property inputs: TaskInputParameters#
Inputs to this task.
- list_array_outputs()#
Return array output directory names for this task’s output parameters.
Names are sorted and exclude the optional
outputs.prefix. No NPZ files are inspected; an existing directory does not guarantee that this task has saved entries.
- classmethod new_empty_task(workflow, template, index)#
Make a new instance without any elements set up yet, validate any task condition, and add any missing parameter dependence required by that condition.
- property outputs: TaskOutputParameters#
Outputs from this task.
- static resolve_element_data_indices(multiplicities)#
Find the index of the parameter group index list corresponding to each input data for all elements.
- Parameters:
multiplicities (list of MultiplicityDescriptor) –
- Each list item represents a sequence of values with keys:
multiplicity: int nesting_order: float path : str
- Returns:
element_dat_idx – Each list item is a dict representing a single task element and whose keys are input data paths and whose values are indices that index the values of the dict returned by the task.make_persistent method.
- Return type:
Note
Non-integer nesting orders result in doing the dot product of that sequence with all the current sequences instead of just with the other sequences at the same nesting order (or as a cross product for other nesting orders entire).
- property upstream_tasks: Iterator[WorkflowTask]#
All workflow tasks that are upstream from this task.
- validate_condition()#
Validate a task condition string.
- Return type:
TaskCondition | None