PreExecInit¶
- class lsst.ctrl.mpexec.PreExecInit(butler: Butler, taskFactory: TaskFactory, extendRun: bool = False, mock: bool = False)¶
Bases:
PreExecInitBase
Initialization of registry for QuantumGraph execution.
This class encapsulates all necessary operations that have to be performed on butler and registry to prepare them for QuantumGraph execution.
- Parameters:
- butler
Butler
Data butler instance.
- taskFactory
TaskFactory
Task factory.
- extendRun
bool
, optional If
True
then do not try to overwrite any datasets that might exist inbutler.run
; instead compare them when appropriate/possible. IfFalse
, then any existing conflicting dataset will cause a butler exception to be raised.- mock
bool
, optional If
True
then also do initialization needed for pipeline mocking.
- butler
Methods Summary
find_init_input_refs
(taskDef, graph)Return the list of resolved dataset references for task init inputs.
find_init_output
(taskDef, dataset_type_name, ...)Find task init output for given dataset type.
find_packages
(graph)Find packages information.
initialize
(graph[, saveInitOutputs, ...])Perform all initialization steps.
initializeDatasetTypes
(graph[, ...])Save or check DatasetTypes output by the tasks in a graph.
saveConfigs
(graph)Write configurations for pipeline tasks to butler or check that existing configurations are equal to the new ones.
saveInitOutputs
(graph)Write any datasets produced by initializing tasks in a graph.
savePackageVersions
(graph)Write versions of software packages to butler.
Context manager for transaction.
Methods Documentation
- find_init_input_refs(taskDef: TaskDef, graph: QuantumGraph) Iterable[DatasetRef] ¶
Return the list of resolved dataset references for task init inputs.
- Parameters:
- taskDef
TaskDef
Pipeline task definition.
- graph
QuantumGraph
Quantum graph.
- taskDef
- Returns:
- refs
Iterable
[DatasetRef
] Resolved dataset references.
- refs
- find_init_output(taskDef: TaskDef, dataset_type_name: str, graph: QuantumGraph) tuple[Any | None, DatasetRef] ¶
Find task init output for given dataset type.
- Parameters:
- taskDef
TaskDef
Pipeline task definition.
- dataset_type
str
Dataset type name.
- graph
QuantumGraph
Quantum graph.
- taskDef
- Returns:
- data
Existing init output object retrieved from butler,
None
if butler has no existing object.- ref
DatasetRef
Resolved reference for init output to be stored in butler.
- Raises:
- MissingReferenceError
Raised if reference cannot be found or generated.
- find_packages(graph: QuantumGraph) tuple[Packages | None, DatasetRef] ¶
Find packages information.
- Parameters:
- graph
QuantumGraph
Quantum graph.
- graph
- Returns:
- packages
lsst.utils.packages.Packages
orNone
Existing packages data retrieved from butler, or
None
.- ref
DatasetRef
Resolved reference for packages to be stored in butler.
- packages
- Raises:
- MissingReferenceError
Raised if reference cannot be found or generated.
- initialize(graph: QuantumGraph, saveInitOutputs: bool = True, registerDatasetTypes: bool = False, saveVersions: bool = True) None ¶
Perform all initialization steps.
Convenience method to execute all initialization steps. Instead of calling this method and providing all options it is also possible to call methods individually.
- Parameters:
- graph
QuantumGraph
Execution graph.
- saveInitOutputs
bool
, optional If
True
(default) then save “init outputs”, configurations, and package versions to butler.- registerDatasetTypes
bool
, optional If
True
then register dataset types in registry, otherwise they must be already registered.- saveVersions
bool
, optional If
False
then do not save package versions even ifsaveInitOutputs
is set toTrue
.
- graph
- initializeDatasetTypes(graph: QuantumGraph, registerDatasetTypes: bool = False) None ¶
Save or check DatasetTypes output by the tasks in a graph.
Iterates over all DatasetTypes for all tasks in a graph and either tries to add them to registry or compares them to existing ones.
- Parameters:
- graph
QuantumGraph
Execution graph.
- registerDatasetTypes
bool
, optional If
True
then register dataset types in registry, otherwise they must be already registered.
- graph
- Raises:
- ValueError
Raised if existing DatasetType is different from DatasetType in a graph.
- KeyError
Raised if
registerDatasetTypes
isFalse
and DatasetType does not exist in registry.
- saveConfigs(graph: QuantumGraph) None ¶
Write configurations for pipeline tasks to butler or check that existing configurations are equal to the new ones.
- Parameters:
- graph
QuantumGraph
Execution graph.
- graph
- Raises:
- TypeError
Raised if existing object in butler is different from new data.
- Exception
Raised if
extendRun
isFalse
and datasets already exists. Content of a butler collection should not be changed if exception is raised.
- saveInitOutputs(graph: QuantumGraph) None ¶
Write any datasets produced by initializing tasks in a graph.
- Parameters:
- graph
QuantumGraph
Execution graph.
- graph
- Raises:
- TypeError
Raised if the type of existing object in butler is different from new data.
- savePackageVersions(graph: QuantumGraph) None ¶
Write versions of software packages to butler.
- Parameters:
- graph
QuantumGraph
Execution graph.
- graph
- Raises:
- TypeError
Raised if existing object in butler is incompatible with new data.