hpcflow.sdk.core.task.WorkflowTask#
- class hpcflow.sdk.core.task.WorkflowTask(workflow, template, index, element_IDs)#
Bases:
object
Represents a
Task
that is bound to aWorkflow
.- Parameters:
workflow (app.Workflow) – The workflow that the task is bound to.
template (app.Task) – The task template that this binds.
index (int) – Where in the workflow’s list of tasks is this one.
element_IDs (List[int]) – The IDs of the elements of this task.
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.
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.
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.
Make a new instance without any elements set up yet.
Find the index of the Zarr parameter group index list corresponding to each input data for all elements.
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.
- property dir_name#
The name of the directory for the task’s temporary files.
- property downstream_tasks#
All workflow tasks that are downstream from this task.
- property element_IDs#
The IDs of elements associated with this task.
- property elements#
The elements associated with 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.
- 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.
- get_all_element_iterations()#
Get the iterations known by the task’s elements.
- Return type:
- 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:
List[int | WorkflowTask]
- 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:
List[int | WorkflowTask]
- property index#
The index of this task within its workflow.
- initialise_EARs(iter_IDs=None)#
Try to initialise any uninitialised EARs of this task.
- property inputs#
Inputs to this task.
- property insert_ID#
The insertion ID of the template task.
- property name#
The name of this task based on its template.
- classmethod new_empty_task(workflow, template, index)#
Make a new instance without any elements set up yet.
- property num_actions#
The number of actions in this task.
- property num_element_sets#
The number of element sets associated with this task.
- property num_elements#
The number of elements associated with this task.
- property outputs#
Outputs from this task.
- static resolve_element_data_indices(multiplicities)#
Find the index of the Zarr parameter group index list corresponding to each input data for all elements.
# TODO: update docstring; shouldn’t reference Zarr.
- Parameters:
multiplicities (list of dict) –
- Each list item represents a sequence of values with keys:
multiplicity: int nesting_order: int 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:
- property template#
The template for this task.
- property unique_name#
The unique name for this task specifically.
- property upstream_tasks#
All workflow tasks that are upstream from this task.
- property workflow#
The workflow this task is bound to.