ParentDatasetQueryResults

class lsst.daf.butler.registry.queries.ParentDatasetQueryResults(db: lsst.daf.butler.registry.interfaces._database.Database, query: lsst.daf.butler.registry.queries._query.Query, *, components: Sequence[Optional[str]], records: Optional[Mapping[str, Mapping[tuple, lsst.daf.butler.core.dimensions.records.DimensionRecord]]] = None)

Bases: lsst.daf.butler.registry.queries.DatasetQueryResults

An object that represents results from a query for datasets with a single parent DatasetType.

Parameters:
db : Database

Database engine to execute queries against.

query : Query

Low-level query object that backs these results. query.datasetType will be the parent dataset type for this object, and may not be None.

components : Sequence [ str or None ]

Names of components to include in iteration. None may be included (at most once) to include the parent dataset type.

records : Mapping, optional

Mapping containing DimensionRecord objects for all dimensions and all data IDs this query will yield. If None (default), DataCoordinate.hasRecords will return False for all nested data IDs. This is a nested mapping with str names of dimension elements as outer keys, DimensionRecord instances as inner values, and tuple(record.dataId.values()) for the inner keys / outer values (where record is the innermost DimensionRecord instance).

Attributes Summary

dataIds A lazy-evaluation object representing a query for the just the data IDs of the datasets that would be returned by this query (DataCoordinateQueryResults).
parentDatasetType The parent dataset type for all datasets in this iterable (DatasetType).

Methods Summary

byParentDatasetType() Group results by parent dataset type.
expanded() Return a DatasetQueryResults for which DataCoordinate.hasResults returns True for all data IDs in returned DatasetRef objects.
materialize() Insert this query’s results into a temporary table.
withComponents(components) Return a new query results object for the same parent datasets but different components.

Attributes Documentation

dataIds

A lazy-evaluation object representing a query for the just the data IDs of the datasets that would be returned by this query (DataCoordinateQueryResults).

The returned object is not in general zip-iterable with self; it may be in a different order or have (or not have) duplicates.

parentDatasetType

The parent dataset type for all datasets in this iterable (DatasetType).

Methods Documentation

byParentDatasetType() → Iterator[lsst.daf.butler.registry.queries._results.ParentDatasetQueryResults]

Group results by parent dataset type.

Returns:
iter : Iterator [ ParentDatasetQueryResults ]

An iterator over DatasetQueryResults instances that are each responsible for a single parent dataset type (either just that dataset type, one or more of its component dataset types, or both).

expanded() → lsst.daf.butler.registry.queries._results.ParentDatasetQueryResults

Return a DatasetQueryResults for which DataCoordinate.hasResults returns True for all data IDs in returned DatasetRef objects.

Returns:
expanded : DatasetQueryResults

Either a new DatasetQueryResults instance or self, if it is already expanded.

Notes

As with DataCoordinateQueryResults.expanded, it may be more efficient to call materialize before expanding data IDs for very large result sets.

materialize() → Iterator[lsst.daf.butler.registry.queries._results.ParentDatasetQueryResults]

Insert this query’s results into a temporary table.

Returns:
context : typing.ContextManager [ DatasetQueryResults ]

A context manager that ensures the temporary table is created and populated in __enter__ (returning a results object backed by that table), and dropped in __exit__. If self is already materialized, the context manager may do nothing (reflecting the fact that an outer context manager should already take care of everything else).

withComponents(components: Sequence[Optional[str]]) → lsst.daf.butler.registry.queries._results.ParentDatasetQueryResults

Return a new query results object for the same parent datasets but different components.

components : Sequence [ str or None ]
Names of components to include in iteration. None may be included (at most once) to include the parent dataset type.