matflow.WorkflowTask#

class matflow.WorkflowTask(workflow, template, index, element_IDs)#

Bases: WorkflowTask

Class to represent a Task that is bound to a Workflow.

Methods

add_elements

ensure_input_sources

Check valid input sources are specified for a new task to be added to the workflow in a given position.

generate_new_elements

get

get_all_element_iterations

get_dependent_elements

Get elements from downstream tasks that depend on this task.

get_dependent_tasks

Get tasks (insert ID or WorkflowTask objects) that depends on this task.

get_dir_name

get_element_dependencies

Get elements from upstream tasks that this task depends on.

get_task_dependencies

Get tasks (insert ID or WorkflowTask objects) that this task depends on.

initialise_EARs

Try to initialise any uninitialised EARs of this task.

new_empty_task

resolve_element_data_indices

Find the index of the Zarr parameter group index list corresponding to each input data for all elements.

Attributes

app

dir_name

downstream_tasks

Get all workflow tasks that are downstream from this task.

element_IDs

elements

index

inputs

insert_ID

name

num_actions

num_element_sets

num_elements

outputs

template

unique_name

upstream_tasks

Get all workflow tasks that are upstream from this task.

workflow

Parameters:
  • workflow (app.Workflow) –

  • template (app.Task) –

  • index (int) –

  • element_IDs (List[int]) –

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)#
app = App(name='MatFlow', version='0.3.0a129')#
property dir_name#
property downstream_tasks#

Get all workflow tasks that are downstream from this task.

property element_IDs#
property elements#
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.

Return type:

Dict[str, List[int]]

generate_new_elements(input_data_indices, output_data_indices, element_data_indices, sequence_indices, source_indices)#
get(path, raise_on_missing=False, default=None)#
get_all_element_iterations()#
Return type:

Dict[int, ElementIteration]

get_dependent_elements(as_objects=False)#

Get elements from downstream tasks that depend on this task.

Parameters:

as_objects (bool) –

Return type:

List[int | Element]

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)#
Parameters:

loop_idx (Dict[str, int]) –

Return type:

str

get_element_dependencies(as_objects=False)#

Get elements from upstream tasks that this task depends on.

Parameters:

as_objects (bool) –

Return type:

List[int | Element]

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#
initialise_EARs(iter_IDs=None)#

Try to initialise any uninitialised EARs of this task.

Parameters:

iter_IDs (List[int] | None) –

Return type:

List[int]

property inputs#
property insert_ID#
property name#
classmethod new_empty_task(workflow, template, index)#
Parameters:
property num_actions#
property num_element_sets#
property num_elements#
property outputs#
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:

list of dict

property template#
property unique_name#
property upstream_tasks#

Get all workflow tasks that are upstream from this task.

property workflow#