PipelineIR

class lsst.pipe.base.pipelineIR.PipelineIR(loaded_yaml: dict[str, Any])

Bases: object

Intermediate representation of a pipeline definition.

Parameters:
loaded_yamldict

A dictionary which matches the structure that would be produced by a yaml reader which parses a pipeline definition document.

Raises:
ValueError

Raised if:

  • a pipeline is declared without a description;

  • no tasks are declared in a pipeline, and no pipelines are to be inherited;

  • more than one instrument is specified;

  • more than one inherited pipeline share a label.

Methods Summary

from_string(pipeline_string)

Create a PipelineIR object from a string formatted like a pipeline document.

from_uri(uri)

Create a PipelineIR object from the document specified by the input uri.

merge_pipelines(pipelines)

Merge one or more other PipelineIR objects into this object.

subset_from_labels(labelSpecifier[, subsetCtrl])

Subset a pipelineIR to contain only labels specified in labelSpecifier.

to_primitives()

Convert to a representation used in yaml serialization.

write_to_uri(uri)

Serialize this PipelineIR object into a yaml formatted string and write the output to a file at the specified uri.

Methods Documentation

classmethod from_string(pipeline_string: str) PipelineIR

Create a PipelineIR object from a string formatted like a pipeline document.

Parameters:
pipeline_stringstr

A string that is formatted according like a pipeline document.

classmethod from_uri(uri: str | ParseResult | ResourcePath | Path) PipelineIR

Create a PipelineIR object from the document specified by the input uri.

Parameters:
uriconvertible to ResourcePath

Location of document to use in creating a PipelineIR object.

Returns:
pipelineIRPipelineIR

The loaded pipeline.

merge_pipelines(pipelines: Iterable[PipelineIR]) None

Merge one or more other PipelineIR objects into this object.

Parameters:
pipelinesIterable of PipelineIR objects

An Iterable that contains one or more PipelineIR objects to merge into this object.

Raises:
ValueError

Raised if there is a conflict in instrument specifications. Raised if a task label appears in more than one of the input PipelineIR objects which are to be merged. Raised if a labeled subset appears in more than one of the input PipelineIR objects which are to be merged, and with any subset existing in this object.

subset_from_labels(labelSpecifier: set[str], subsetCtrl: PipelineSubsetCtrl = PipelineSubsetCtrl.DROP) PipelineIR

Subset a pipelineIR to contain only labels specified in labelSpecifier.

Parameters:
labelSpecifierset of str

Set containing labels that describes how to subset a pipeline.

subsetCtrlPipelineSubsetCtrl

Control object which decides how subsets with missing labels are handled. Setting to PipelineSubsetCtrl.DROP (the default) will cause any subsets that have labels which are not in the set of all task labels to be dropped. Setting to PipelineSubsetCtrl.EDIT will cause the subset to instead be edited to remove the nonexistent label.

Returns:
pipelinePipelineIR

A new pipelineIR object that is a subset of the old pipelineIR.

Raises:
ValueError

Raised if there is an issue with specified labels.

Notes

This method attempts to prune any contracts that contain labels which are not in the declared subset of labels. This pruning is done using a string based matching due to the nature of contracts and may prune more than it should.

to_primitives() dict[str, Any]

Convert to a representation used in yaml serialization.

Returns:
primitivesdict

Dictionary that maps directly to the serialized YAML form.

write_to_uri(uri: str | ParseResult | ResourcePath | Path) None

Serialize this PipelineIR object into a yaml formatted string and write the output to a file at the specified uri.

Parameters:
uriconvertible to ResourcePath

Location of document to write a PipelineIR object.