ProvenanceQuantumScanModels

class lsst.pipe.base.quantum_graph.ProvenanceQuantumScanModels(quantum_id: ~uuid.UUID, status: ~lsst.pipe.base.quantum_graph._provenance.ProvenanceQuantumScanStatus = ProvenanceQuantumScanStatus.INCOMPLETE, attempts: list[lsst.pipe.base.quantum_graph._provenance.ProvenanceQuantumAttemptModel] = <factory>, output_existence: dict[uuid.UUID, bool] = <factory>, metadata: ~lsst.pipe.base.quantum_graph._provenance.ProvenanceTaskMetadataModel = <factory>, logs: ~lsst.pipe.base.quantum_graph._provenance.ProvenanceLogRecordsModel = <factory>)

Bases: object

A struct that represents provenance information for a single quantum.

Attributes Summary

status

Combined status for the scan and the execution of the quantum.

Methods Summary

from_metadata_and_logs(predicted, metadata, ...)

Construct provenance information from task metadata and logs.

to_scan_data(predicted_quantum[, compressor])

Convert these models to JSON data.

Attributes Documentation

status: ProvenanceQuantumScanStatus = 1

Combined status for the scan and the execution of the quantum.

Methods Documentation

classmethod from_metadata_and_logs(predicted: PredictedQuantumDatasetsModel, metadata: TaskMetadata | None, logs: ButlerLogRecords | None, *, assume_complete: bool = True) ProvenanceQuantumScanModels

Construct provenance information from task metadata and logs.

Parameters:
predictedPredictedQuantumDatasetsModel

Information about the predicted quantum.

metadataTaskMetadata or None

Task metadata.

logslsst.daf.butler.logging.ButlerLogRecords or None

Task logs.

assume_completebool, optional

If False, treat execution failures as possibly-incomplete quanta and do not fully process them; instead just set the status to ProvenanceQuantumScanStatus.ABANDONED and return.

Returns:
scan_modelsProvenanceQuantumScanModels

Struct of models that describe quantum provenance.

Notes

This method does not necessarily fully populate the output_existence field; it does what it can given the information in the metadata and logs, but the caller is responsible for filling in the existence status for any predicted outputs that are not present at all in that dict.

to_scan_data(predicted_quantum: PredictedQuantumDatasetsModel, compressor: Compressor | None = None) ProvenanceQuantumScanData

Convert these models to JSON data.

Parameters:
predicted_quantumPredictedQuantumDatasetsModel

Information about the predicted quantum.

compressorCompressor

Object that can compress bytes.

Returns:
scan_dataProvenanceQuantumScanData

Scan information ready for serialization.