WriteEdge

class lsst.pipe.base.pipeline_graph.WriteEdge(*, task_key: NodeKey, dataset_type_key: NodeKey, storage_class_name: str, connection_name: str, is_calibration: bool, raw_dimensions: frozenset[str])

Bases: Edge

Representation of an output connection (including init-outputs) in a pipeline graph.

Notes

When included in an exported networkx graph (e.g. PipelineGraph.make_xgraph), write edges set the following edge attributes:

  • parent_dataset_type_name

  • storage_class_name

  • is_init

As with WRiteEdge instance attributes, these descriptions of dataset types are those specific to a task, and may differ from the graph’s resolved dataset type or (if PipelineGraph.resolve has not been called) there may not even be a consistent definition of the dataset type.

Attributes Summary

INIT_TO_TASK_NAME

Edge key for the special edge that connects a task init node to the task node itself (for regular edges, this would be the connection name).

dataset_type_name

Dataset type name seen by the task.

is_init

Whether this dataset is read or written when the task is constructed, not when it is run.

key

Ordered tuple of node keys and connection name that uniquely identifies this edge in a pipeline graph.

nodes

The directed pair of NodeKey instances this edge connects.

parent_dataset_type_name

Name of the parent dataset type.

task_label

Label of the task.

Methods Summary

adapt_dataset_ref(ref)

Transform the graph's definition of a dataset reference (parent dataset type, with the registry or producer's storage class) to the one seen by this task.

adapt_dataset_type(dataset_type)

Transform the graph's definition of a dataset type (parent, with the registry or producer's storage class) to the one seen by this task.

diff(other[, connection_type])

Compare this edge to another one from a possibly-different configuration of the same task label.

Attributes Documentation

INIT_TO_TASK_NAME: ClassVar[str] = 'INIT'

Edge key for the special edge that connects a task init node to the task node itself (for regular edges, this would be the connection name).

dataset_type_name

Dataset type name seen by the task.

This defaults to the parent dataset type name, which is appropriate for all writes and most reads.

is_init

Whether this dataset is read or written when the task is constructed, not when it is run.

key

Ordered tuple of node keys and connection name that uniquely identifies this edge in a pipeline graph.

nodes
parent_dataset_type_name

Name of the parent dataset type.

All dataset type nodes in a pipeline graph are for parent dataset types; components are represented by additional ReadEdge state.

task_label

Label of the task.

Methods Documentation

adapt_dataset_ref(ref: DatasetRef) DatasetRef

Transform the graph’s definition of a dataset reference (parent dataset type, with the registry or producer’s storage class) to the one seen by this task.

Parameters:
refDatasetRef

Graph’s definition of the dataset reference.

Returns:
out_dataset_refDatasetRef

Dataset reference seen by this task.

adapt_dataset_type(dataset_type: DatasetType) DatasetType

Transform the graph’s definition of a dataset type (parent, with the registry or producer’s storage class) to the one seen by this task.

Parameters:
dataset_typeDatasetType

Graph’s definition of dataset type.

Returns:
out_dataset_typeDatasetType

Dataset type seen by this task.

diff(other: _S, connection_type: str = 'connection') list[str]

Compare this edge to another one from a possibly-different configuration of the same task label.

Parameters:
otherEdge

Another edge of the same type to compare to.

connection_typestr

Human-readable name of the connection type of this edge (e.g. “init input”, “output”) for use in returned messages.

Returns:
differenceslist [ str ]

List of string messages describing differences between self and other. Will be empty if self == other or if the only difference is in the task label or connection name (which are not checked). Messages will use ‘A’ to refer to self and ‘B’ to refer to other.