QuantumExecutor

class lsst.pipe.base.quantum_graph_executor.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(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_nodeTaskNode

Task definition structure.

quantumQuantum

Quantum for this execution.

quantum_iduuid.UUID or None, optional

The ID of the quantum to be executed.

log_recordslsst.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.

Returns:
resultQuantumExecutionResult

Result struct. May also be unpacked as a 2-tuple (see type documentation).

Notes

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