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

attempts

Provenance information about each attempt to run the quantum.

logs

Log records for each attempt.

metadata

Task metadata information for each attempt.

output_existence

Unique IDs of the output datasets mapped to whether they were actually produced.

quantum_id

Unique ID for the quantum.

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

attempts: list[ProvenanceQuantumAttemptModel] = <dataclasses._MISSING_TYPE object>#

Provenance information about each attempt to run the quantum.

logs: ProvenanceLogRecordsModel = <dataclasses._MISSING_TYPE object>#

Log records for each attempt.

metadata: ProvenanceTaskMetadataModel = <dataclasses._MISSING_TYPE object>#

Task metadata information for each attempt.

output_existence: dict[UUID, bool] = <dataclasses._MISSING_TYPE object>#

Unique IDs of the output datasets mapped to whether they were actually produced.

quantum_id: UUID = <dataclasses._MISSING_TYPE object>#

Unique ID for the quantum.

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, *, incomplete: bool = False) 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.

incompletebool, optional

If True, 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.