ewoksid02.tasks.looptask.LoopTask#

class ewoksid02.tasks.looptask.LoopTask(inputs=None, varinfo=None, node_id=None, node_attrs=None, execinfo=None, profile_directory=None)[source]#

Bases: Task

The LoopTask class is a base task designed to handle iterative data processing. It provides functionality for reading datasets, managing processing loops, and controlling the pipeline flow. This class could be seen also a Reading node.

Optional Inputs:
  • detector_name (str): Name of the detector used for data acquisition. This is the only mandatory input.

  • scan_memory_url (str): URL for accessing scan memory in online processing.

  • filename_data (str): Path to the dataset file (Master file, Nexus writer) for offline processing.

  • scan_nb (int): Scan number for identifying the dataset.

  • subscan (int): Subscan number for processing. Default is 1.

  • max_slice_size (int): Maximum number of frames to process in one iteration. Default is 20.

  • last_index_read (int): Index of the last frame read in the dataset. Default is 0.

  • range_index_read (list): Range of indices to read from the dataset. This parameter is not propagated to the next task.

  • loop_nb (int): Current loop iteration number. Default is 0.

  • dataset (numpy.ndarray): Signal dataset to be processed.

  • reading_node (bool): Flag to indicate if the task should read data from the node.

  • lima_url_template (str): Format string to locate the Lima file and the path to the data inside that file.

  • lima_url_template_args (dict): Dictionary to format the lima_url_template.

  • beacon_host (str): Host and port to plug blissdata to the correct beacon server. Only for online processing.

Outputs:
  • last_index_read (int): Updated index of the last frame read.

  • loop_nb (int): Updated loop iteration number.

  • dataset (numpy.ndarray): Processed signal dataset.

  • continue_pipeline (bool): Flag to indicate whether the pipeline should continue.

Parameters:
  • inputs (Optional[Mapping])

  • varinfo (Optional[dict])

  • node_id (Union[str, int, tuple, None])

  • node_attrs (Optional[dict])

  • execinfo (Optional[dict])

  • profile_directory (Optional[dict])

MISSING_DATA = <MISSING_DATA>#
assert_ready_to_execute()#
cancel()#

Function called when a task is cancelled. To be implemented by the derived classes

property cancelled: bool#

Return True if the task has been cancelled by the user

classmethod class_nonce()#
classmethod class_nonce_data()#
classmethod class_registry_name()#
Return type:

Optional[str]

cleanup_references()#

Removes all references to the inputs. Side effect: fixes the uhash of the task and outputs

property done: bool#

Completed (with or without exception)

property exception: Exception | None#
execute(force_rerun=False, raise_on_error=True, cleanup_references=False)#
Parameters:
  • force_rerun (Optional[bool])

  • raise_on_error (Optional[bool])

  • cleanup_references (Optional[bool])

property failed: bool#

Completed with exception

fix_uhash()#

Fix the uhash when it is derived from the uhash data.

get_data()[source]#
Return type:

None

get_input_uhashes()#
get_input_value(key, default=<MISSING_DATA>)#
Parameters:

default (Any)

Return type:

Any

get_input_values()#
get_named_input_values()#
get_new_dataset()[source]#
get_output_transfer_data()#

The values are either DataUri or Variable

get_output_uhashes()#
get_output_value(key, default=<MISSING_DATA>)#
Parameters:

default (Any)

Return type:

Any

get_output_values()#
get_positional_input_values()#
classmethod get_subclass(registry_name, _second_attempt=False)#

Retrieving a derived class

classmethod get_subclass_names()#
Return type:

List[str]

classmethod get_subclasses()#
get_uhash_init(serialize=False)#
classmethod input_model()#
Return type:

Optional[Type[BaseInputModel]]

classmethod input_names()#
Return type:

Set[str]

property input_uhashes#
property input_values#

DEPRECATED

property input_variables: VariableContainer#
property inputs: ReadOnlyVariableContainerNamespace#
instance_nonce()#
classmethod instantiate(registry_name, **kw)#

Factory method for instantiating a derived class.

Parameters:
  • registry_name (str) – for example “tasklib.tasks.MyTask” or “MyTask”

  • **kwTask constructor arguments

  • registry_name

Returns Task:

property is_ready_to_execute#
property job_id: str | None#
property label: str#
property missing_inputs: VariableContainerMissingNamespace#
property missing_outputs: VariableContainerMissingNamespace#
property n_positional_inputs: int#
classmethod n_required_positional_inputs()#
Return type:

int

property named_input_values#

DEPRECATED

property node_id: str | int | tuple#
property npositional_inputs#

DEPRECATED

classmethod optional_input_names()#
Return type:

Set[str]

property output_metadata: dict | None#
classmethod output_model()#
Return type:

Optional[Type[BaseOutputModel]]

classmethod output_names()#
Return type:

Set[str]

property output_transfer_data#

DEPRECATED

property output_uhashes#

DEPRECATED

property output_values#

DEPRECATED

property output_variables: VariableContainer#
property outputs: VariableContainerNamespace#
property positional_input_values#

DEPRECATED

classmethod required_input_names()#
Return type:

Set[str]

reset_state()#
run()#

To be implemented by the derived classes

set_uhash_init(pre_uhash=None, instance_nonce=None)#
Parameters:
  • pre_uhash (Union[str, bytes, UniversalHash, HasUhash, None])

  • instance_nonce (Optional[Any])

property succeeded: bool#

Completed without exception and with output values

property task_identifier: str#
property uhash: UniversalHash | None#
uhash_randomize()#
undo_fix_uhash()#
undo_randomize()#
property workflow_id: str | None#