QuantumExecutor¶
- class lsst.pipe.base.quantum_graph_executor.QuantumExecutor¶
Bases:
ABCClass 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(task_node, /, quantum[, quantum_id, ...])Execute single quantum.
Methods Documentation
- abstract execute(task_node: TaskNode, /, quantum: Quantum, quantum_id: uuid.UUID | None = None, *, log_records: ButlerLogRecords | None = None) QuantumExecutionResult¶
Execute single quantum.
- Parameters:
- task_node
TaskNode Task definition structure.
- quantum
Quantum Quantum for this execution.
- quantum_id
uuid.UUIDorNone, optional The ID of the quantum to be executed.
- log_records
lsst.daf.butler.ButlerLogRecords, optional Container that should be used to store logs in memory before writing them to the butler. This disables streaming log (since we’d have to store them in memory anyway), but it permits the caller to prepend logs to be stored in the butler and allows task logs to be inspected by the caller after execution is complete.
- task_node
- Returns:
- result
QuantumExecutionResult Result struct. May also be unpacked as a 2-tuple (see type documentation).
- result
Notes
Any exception raised by the task or code that wraps task execution is propagated to the caller of this method.