QuantumExecutor

class lsst.ctrl.mpexec.QuantumExecutor

Bases: abc.ABC

Class which abstracts execution of a single Quantum.

In general implementation should not depend on execution model and execution should always happen in-process. Main reason for existence of this class is to provide do-nothing implementation that can be used in the unit tests.

Methods Summary

execute(taskDef, quantum, butler) Execute single quantum.
getReport() Return execution report from last call to execute.

Methods Documentation

execute(taskDef: TaskDef, quantum: Quantum, butler: Butler) → Quantum

Execute single quantum.

Parameters:
taskDef : TaskDef

Task definition structure.

quantum : Quantum

Quantum for this execution.

butler : Butler

Data butler instance

Returns:
quantum : Quantum

The quantum actually executed. At present this quantum will contain only unresolved DatasetRef instances for output datasets, reflecting the state of the quantum just before it was run (but after any adjustments for predicted but now missing inputs). This may change in the future to include resolved output DatasetRef objects.

Notes

Any exception raised by the task or code that wraps task execution is propagated to the caller of this method.

getReport() → Optional[lsst.ctrl.mpexec.reports.QuantumReport, None]

Return execution report from last call to execute.

Returns:
report : QuantumReport

Structure describing the status of the execution of a quantum. None is returned if implementation does not support this feature.

Raises:
RuntimeError

Raised if this method is called before execute.