ExecutionGraphFixup¶
-
class
lsst.ctrl.mpexec.
ExecutionGraphFixup
¶ Bases:
abc.ABC
Interface for classes which update quantum graphs before execution.
Primary goal of this class is to modify quanta dependencies which may not be possible to reflect in a quantum graph using standard tools. One known use case for that is to guarantee particular execution order of visits in CI jobs for cases when outcome depends on the processing order of visits (e.g. AP association pipeline).
Instances of this class receive pre-ordered sequence of quanta (
QuantumIterData
instances) and they are allowed to modify quanta data in place, for example updatedependencies
field to add additional dependencies. Returned list of quanta will be re-ordered once again by the graph executor to reflect new dependencies.Methods Summary
fixupQuanta
(quanta)Update quanta in a graph. Methods Documentation
-
fixupQuanta
(quanta: Iterable[lsst.pipe.base.graph.QuantumIterData]) → Iterable[lsst.pipe.base.graph.QuantumIterData]¶ Update quanta in a graph.
Potentially anything in the graph could be changed if it does not break executor assumptions. Returned quanta will be re-ordered by executor, if modifications result in a dependency cycle the executor will raise an exception.
Parameters: - quanta : iterable [
QuantumIterData
] Iterable of topologically ordered quanta as returned from
lsst.pipe.base.QuantumGraph.traverse
method.
Yields: - quantum :
QuantumIterData
- quanta : iterable [
-