Skip to content

Commit

Permalink
Rename Query.general to x_general to mark as experimental
Browse files Browse the repository at this point in the history
  • Loading branch information
timj committed Sep 6, 2024
1 parent b1dc851 commit c7e55f9
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 17 deletions.
4 changes: 3 additions & 1 deletion python/lsst/daf/butler/queries/_query.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ def dimension_records(self, element: str) -> DimensionRecordQueryResults:
result_spec = DimensionRecordResultSpec(element=self._driver.universe[element])
return DimensionRecordQueryResults(self._driver, tree, result_spec)

def general(
def x_general(
self,
dimensions: DimensionGroup,
*names: str,
Expand All @@ -320,6 +320,8 @@ def general(
) -> GeneralQueryResults:
"""Execute query returning general result.
**This is an experimental interface and may change at any time.**
Parameters
----------
dimensions : `DimensionGroup`
Expand Down
2 changes: 1 addition & 1 deletion python/lsst/daf/butler/registry/sql_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -2428,7 +2428,7 @@ def queryDatasetAssociations(
)
with self._query() as query:
query = query.join_dataset_search(datasetType, resolved_collections)
result = query.general(
result = query.x_general(
datasetType.dimensions,
dataset_fields={datasetType.name: {"dataset_id", "run", "collection", "timespan"}},
)
Expand Down
2 changes: 1 addition & 1 deletion python/lsst/daf/butler/remote_butler/_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -521,7 +521,7 @@ def queryDatasetAssociations(
)
with self._butler.query() as query:
query = query.join_dataset_search(datasetType, resolved_collections)
result = query.general(
result = query.x_general(
datasetType.dimensions,
dataset_fields={datasetType.name: {"dataset_id", "run", "collection", "timespan"}},
)
Expand Down
26 changes: 13 additions & 13 deletions python/lsst/daf/butler/tests/butler_queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ def test_general_query(self) -> None:
# Do simple dimension queries.
with butler.query() as query:
query = query.join_dimensions(dimensions)
rows = list(query.general(dimensions).order_by("detector"))
rows = list(query.x_general(dimensions).order_by("detector"))
self.assertEqual(
rows,
[
Expand All @@ -321,7 +321,7 @@ def test_general_query(self) -> None:
],
)
rows = list(
query.general(dimensions, "detector.full_name", "purpose").order_by(
query.x_general(dimensions, "detector.full_name", "purpose").order_by(
"-detector.purpose", "full_name"
)
)
Expand Down Expand Up @@ -355,7 +355,7 @@ def test_general_query(self) -> None:
],
)
rows = list(
query.general(dimensions, "detector.full_name", "purpose").where(
query.x_general(dimensions, "detector.full_name", "purpose").where(
"instrument = 'Cam1' AND purpose = 'WAVEFRONT'"
)
)
Expand All @@ -370,7 +370,7 @@ def test_general_query(self) -> None:
},
],
)
result = query.general(dimensions, dimension_fields={"detector": {"full_name"}})
result = query.x_general(dimensions, dimension_fields={"detector": {"full_name"}})
self.assertEqual(set(row["detector.full_name"] for row in result), {"Aa", "Ab", "Ba", "Bb"})

# Use "flat" whose dimension group includes implied dimension.
Expand All @@ -381,7 +381,7 @@ def test_general_query(self) -> None:
with butler.query() as query:
query = query.join_dataset_search("flat", "imported_g")
# This just returns data IDs.
rows = list(query.general(dimensions).order_by("detector"))
rows = list(query.x_general(dimensions).order_by("detector"))
self.assertEqual(
rows,
[
Expand All @@ -391,7 +391,7 @@ def test_general_query(self) -> None:
],
)

result = query.general(dimensions, dataset_fields={"flat": ...}).order_by("detector")
result = query.x_general(dimensions, dataset_fields={"flat": ...}).order_by("detector")
ids = {row["flat.dataset_id"] for row in result}
self.assertEqual(
ids,
Expand Down Expand Up @@ -435,7 +435,7 @@ def test_general_query(self) -> None:
with butler.query() as query:
query = query.join_dataset_search("flat", ["tagged"])

result = query.general(dimensions, "flat.dataset_id", "flat.run", "flat.collection")
result = query.x_general(dimensions, "flat.dataset_id", "flat.run", "flat.collection")
row_tuples = list(result.iter_tuples(flat))
self.assertEqual(len(row_tuples), 2)
self.assertEqual({row_tuple.refs[0] for row_tuple in row_tuples}, {flat1, flat2})
Expand All @@ -444,7 +444,7 @@ def test_general_query(self) -> None:
# Query calib collection.
with butler.query() as query:
query = query.join_dataset_search("flat", ["calib"])
result = query.general(
result = query.x_general(
dimensions, "flat.dataset_id", "flat.run", "flat.collection", "flat.timespan"
)
row_tuples = list(result.iter_tuples(flat))
Expand All @@ -459,7 +459,7 @@ def test_general_query(self) -> None:
# Query both tagged and calib collection.
with butler.query() as query:
query = query.join_dataset_search("flat", ["tagged", "calib"])
result = query.general(
result = query.x_general(
dimensions, "flat.dataset_id", "flat.run", "flat.collection", "flat.timespan"
)
row_tuples = list(result.iter_tuples(flat))
Expand All @@ -482,7 +482,7 @@ def test_query_ingest_date(self) -> None:
# for schema versions 1 and 2 of datasets manager.
with butler.query() as query:
query = query.join_dataset_search("flat", "imported_g")
rows = list(query.general(dimensions, dataset_fields={"flat": ...}))
rows = list(query.x_general(dimensions, dataset_fields={"flat": ...}))
self.assertEqual(len(rows), 3)
for row in rows:
self.assertIsInstance(row["flat.ingest_date"], astropy.time.Time)
Expand All @@ -491,14 +491,14 @@ def test_query_ingest_date(self) -> None:
with butler.query() as query:
query = query.join_dataset_search("flat", "imported_g")
query1 = query.where("flat.ingest_date < before_ingest", bind={"before_ingest": before_ingest})
rows = list(query1.general(dimensions))
rows = list(query1.x_general(dimensions))
self.assertEqual(len(rows), 0)
query1 = query.where("flat.ingest_date >= before_ingest", bind={"before_ingest": before_ingest})
rows = list(query1.general(dimensions))
rows = list(query1.x_general(dimensions))
self.assertEqual(len(rows), 3)
# Same with a time in string literal.
query1 = query.where(f"flat.ingest_date < T'mjd/{before_ingest.tai.mjd}'")
rows = list(query1.general(dimensions))
rows = list(query1.x_general(dimensions))
self.assertEqual(len(rows), 0)

def test_implied_union_record_query(self) -> None:
Expand Down
2 changes: 1 addition & 1 deletion python/lsst/daf/butler/transfers/_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ def _computeDatasetAssociations(self) -> dict[str, list[DatasetAssociation]]:
)
with self._butler.query() as query:
query = query.join_dataset_search(datasetType, resolved_collections)
result = query.general(
result = query.x_general(
datasetType.dimensions,
dataset_fields={datasetType.name: {"dataset_id", "run", "collection", "timespan"}},
)
Expand Down

0 comments on commit c7e55f9

Please sign in to comment.