QuantumExecutor

class lsst.ctrl.mpexec.QuantumExecutor

Bases: 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

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

Execute single quantum.

Parameters:
taskDefTaskDef

Task definition structure.

quantumQuantum

Quantum for this execution.

butlerButler

Data butler instance

Returns:
quantumQuantum

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[QuantumReport]

Return execution report from last call to execute.

Returns:
reportQuantumReport

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.