diff --git a/python/lsst/pipe/base/quantum_provenance_graph.py b/python/lsst/pipe/base/quantum_provenance_graph.py index b710b1469..faa926bba 100644 --- a/python/lsst/pipe/base/quantum_provenance_graph.py +++ b/python/lsst/pipe/base/quantum_provenance_graph.py @@ -980,14 +980,19 @@ def assemble_quantum_provenance_graph( curse_failed_logs: bool = False, ) -> None: output_runs = [] - for count, qgraph in enumerate(qgraphs): - if not isinstance(qgraph, QuantumGraph): - qgraph = QuantumGraph.loadUri(qgraph) + for count, graph in enumerate(qgraphs): + qgraph = graph if isinstance(graph, QuantumGraph) else QuantumGraph.loadUri(graph) + assert qgraph.metadata is not None, "Saved QGs always have metadata." # If the most recent graph's timestamp was earlier than any of the # previous graphs, raise a RuntimeError. if len(qgraphs) > 1: - for graph in qgraphs[: count - 1]: - if qgraph.metadata["time"] < graph.metadata["time"]: + for previous_graph in qgraphs[: count - 1]: + previous_graph = ( + previous_graph + if isinstance(previous_graph, QuantumGraph) + else QuantumGraph.loadUri(previous_graph) + ) + if qgraph.metadata["time"] < previous_graph.metadata["time"]: raise RuntimeError( """add_new_graph may only be called on graphs which are passed in the order they were