From 12f8d354eedbf8df2c8e7e0ad21e29b9b2561b8a Mon Sep 17 00:00:00 2001 From: Jim Bosch Date: Fri, 28 Jul 2023 13:18:04 -0400 Subject: [PATCH] Mark visit joint-table elements as populated by visit. --- python/lsst/daf/butler/configs/dimensions.yaml | 3 +++ tests/test_dimensions.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/python/lsst/daf/butler/configs/dimensions.yaml b/python/lsst/daf/butler/configs/dimensions.yaml index 8e0d4e00e1..5ee3d941ab 100644 --- a/python/lsst/daf/butler/configs/dimensions.yaml +++ b/python/lsst/daf/butler/configs/dimensions.yaml @@ -427,6 +427,7 @@ elements: A many-to-many join table that provides region information for visit-detector combinations. requires: [visit, detector] + populated_by: visit storage: cls: lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage @@ -459,6 +460,7 @@ elements: A many-to-many join table that relates exposures to the visits they belong to. requires: [exposure, visit] + populated_by: visit always_join: true storage: cls: lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage @@ -468,6 +470,7 @@ elements: A many-to-many join table that relates visits to the visit_systems they belong to. requires: [visit, visit_system] + populated_by: visit always_join: true storage: cls: lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage diff --git a/tests/test_dimensions.py b/tests/test_dimensions.py index f510c61d47..845489abdb 100644 --- a/tests/test_dimensions.py +++ b/tests/test_dimensions.py @@ -285,6 +285,20 @@ def testObservationDimensions(self): self.assertEqual(graph.temporal.names, {"observation_timespans"}) self.assertEqual(next(iter(graph.spatial)).governor, self.universe["instrument"]) self.assertEqual(next(iter(graph.temporal)).governor, self.universe["instrument"]) + self.assertEqual(self.universe["visit_definition"].populated_by, self.universe["visit"]) + self.assertEqual(self.universe["visit_system_membership"].populated_by, self.universe["visit"]) + self.assertEqual(self.universe["visit_detector_region"].populated_by, self.universe["visit"]) + self.assertEqual( + self.universe.get_elements_populated_by(self.universe["visit"]), + NamedValueSet( + { + self.universe["visit"], + self.universe["visit_definition"], + self.universe["visit_system_membership"], + self.universe["visit_detector_region"], + } + ), + ) def testSkyMapDimensions(self): graph = DimensionGraph(self.universe, names=("patch",))