DatasetRecordStorage¶
-
class
lsst.daf.butler.registry.interfaces.DatasetRecordStorage(datasetType: lsst.daf.butler.core.datasets.type.DatasetType)¶ Bases:
abc.ABCAn interface that manages the records associated with a particular
DatasetType.Parameters: - datasetType :
DatasetType Dataset type whose records this object manages.
Methods Summary
associate(collection, datasets)Associate one or more datasets with a collection. delete(datasets)Fully delete the given datasets from the registry. disassociate(collection, datasets)Remove one or more datasets from a collection. find(collection, dataId)Search a collection for a dataset with the given data ID. insert(run, dataIds)Insert one or more dataset entries into the database. select(collection, dataId, id, run)Return a SQLAlchemy object that represents a SELECTquery for thisDatasetType.Methods Documentation
-
associate(collection: CollectionRecord, datasets: Iterable[DatasetRef]) → None¶ Associate one or more datasets with a collection.
Parameters: - collection :
CollectionRecord The record object describing the collection.
collection.typemust beTAGGED.- datasets :
Iterable[DatasetRef] Datasets to be associated. All datasets must be resolved and have the same
DatasetTypeasself.
Raises: - AmbiguousDatasetError
Raised if any of the given
DatasetRefinstances is unresolved.
Notes
Associating a dataset with into collection that already contains a different dataset with the same
DatasetTypeand data ID will remove the existing dataset from that collection.Associating the same dataset into a collection multiple times is a no-op, but is still not permitted on read-only databases.
- collection :
-
delete(datasets: Iterable[lsst.daf.butler.core.datasets.ref.DatasetRef]) → None¶ Fully delete the given datasets from the registry.
Parameters: - datasets :
Iterable[DatasetRef] Datasets to be deleted. All datasets must be resolved and have the same
DatasetTypeasself.
Raises: - AmbiguousDatasetError
Raised if any of the given
DatasetRefinstances is unresolved.
- datasets :
-
disassociate(collection: CollectionRecord, datasets: Iterable[DatasetRef]) → None¶ Remove one or more datasets from a collection.
Parameters: - collection :
CollectionRecord The record object describing the collection.
collection.typemust beTAGGED.- datasets :
Iterable[DatasetRef] Datasets to be disassociated. All datasets must be resolved and have the same
DatasetTypeasself.
Raises: - AmbiguousDatasetError
Raised if any of the given
DatasetRefinstances is unresolved.
- collection :
-
find(collection: CollectionRecord, dataId: DataCoordinate) → Optional[DatasetRef]¶ Search a collection for a dataset with the given data ID.
Parameters: - collection :
CollectionRecord The record object describing the collection to search for the dataset. May have any
CollectionType.- dataId: `DataCoordinate`
Complete (but not necessarily expanded) data ID to search with, with
dataId.graph == self.datasetType.dimensions.
Returns: - ref :
DatasetRef A resolved
DatasetRef(without components populated), orNoneif no matching dataset was found.
- collection :
-
insert(run: RunRecord, dataIds: Iterable[DataCoordinate]) → Iterator[DatasetRef]¶ Insert one or more dataset entries into the database.
Parameters: - run :
RunRecord The record object describing the
RUNcollection this dataset will be associated with.- dataIds :
Iterable[DataCoordinate] Expanded data IDs (
DataCoordinateinstances) for the datasets to be added. The dimensions of all data IDs must be the same asself.datasetType.dimensions.
Returns: - datasets :
Iterable[DatasetRef] References to the inserted datasets.
- run :
-
select(collection: CollectionRecord, dataId: SimpleQuery.Select.Or[DataCoordinate] = <class 'lsst.daf.butler.core.simpleQuery.SimpleQuery.Select'>, id: SimpleQuery.Select.Or[Optional[int]] = <class 'lsst.daf.butler.core.simpleQuery.SimpleQuery.Select'>, run: SimpleQuery.Select.Or[None] = <class 'lsst.daf.butler.core.simpleQuery.SimpleQuery.Select'>) → Optional[SimpleQuery]¶ Return a SQLAlchemy object that represents a
SELECTquery for thisDatasetType.All arguments can either be a value that constrains the query or the
SimpleQuery.Selecttag object to indicate that the value should be returned in the columns in theSELECTclause. The default isSimpleQuery.Select.Parameters: - collection :
CollectionRecord The record object describing the collection to query. May not be of type
CollectionType.CHAINED.- dataId :
DataCoordinateorSelect The data ID to restrict results with, or an instruction to return the data ID via columns with names
self.datasetType.dimensions.names.- id :
int,Selector None, The integer primary key value for the dataset, an instruction to return it via a
idcolumn, orNoneto ignore it entirely.- run :
NoneorSelect If
Select(default), include the dataset’s run key value (as column labeled with the return value ofCollectionManager.getRunForiegnKeyName). IfNone, do not include this column (to constrain the run, pass aRunRecordas thecollectionargument instead.)
Returns: - collection :
- datasetType :