From 151cc8a6a4b5793bf8bfe90880d682cdc2705dca Mon Sep 17 00:00:00 2001 From: Jim Bosch Date: Mon, 30 Oct 2023 09:44:18 -0700 Subject: [PATCH] Fix bug in QuantumGraph generation involving adjustQuantum. --- doc/changes/DM-41486.bugfix.md | 1 + python/lsst/pipe/base/quantum_graph_builder.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 doc/changes/DM-41486.bugfix.md diff --git a/doc/changes/DM-41486.bugfix.md b/doc/changes/DM-41486.bugfix.md new file mode 100644 index 000000000..91ab6e18a --- /dev/null +++ b/doc/changes/DM-41486.bugfix.md @@ -0,0 +1 @@ +Fix bug in `QuantumGraph` generation triggered by an `adjustQuantum` that modifies input edges when prerequisite input edges are present on that quantum. diff --git a/python/lsst/pipe/base/quantum_graph_builder.py b/python/lsst/pipe/base/quantum_graph_builder.py index a945502c3..de8e3367d 100644 --- a/python/lsst/pipe/base/quantum_graph_builder.py +++ b/python/lsst/pipe/base/quantum_graph_builder.py @@ -1100,7 +1100,10 @@ def _find_removed( for dataset_type, kept_refs in adjusted.items(): parent_dataset_type_name, _ = DatasetType.splitDatasetTypeName(dataset_type.name) for kept_ref in kept_refs: - result.remove(DatasetKey(parent_dataset_type_name, kept_ref.dataId.values_tuple())) + # We don't know if this was a DatasetKey or a + # PrerequisiteDatasetKey; just try both. + result.discard(DatasetKey(parent_dataset_type_name, kept_ref.dataId.values_tuple())) + result.discard(PrerequisiteDatasetKey(parent_dataset_type_name, kept_ref.id.bytes)) return result