DatastoreRegistryBridge¶
- class lsst.daf.butler.registry.interfaces.DatastoreRegistryBridge(datastoreName: str)¶
- Bases: - ABC- An abstract base class that defines the interface that a - Datastoreuses to communicate with a- Registry.- Parameters:
- datastoreNamestr
- Name of the - Datastoreas it should appear in- Registrytables referencing it.
 
- datastoreName
 - Methods Summary - check(refs)- Check which refs are listed for this datastore. - emptyTrash([records_table, record_class, ...])- Retrieve all the dataset ref IDs that are in the trash associated for this datastore, and then remove them if the context exists without an exception being raised. - ensure(refs)- Record that a datastore holds the given datasets, skipping if the ref is already registered. - forget(refs)- Remove dataset location information without any attempt to put it in the trash while waiting for external deletes. - insert(refs)- Record that a datastore holds the given datasets. - moveToTrash(refs, transaction)- Move dataset location information to trash. - Methods Documentation - abstract check(refs: Iterable[DatasetRef | FakeDatasetRef]) Iterable[DatasetRef | FakeDatasetRef]¶
- Check which refs are listed for this datastore. 
 - abstract emptyTrash(records_table: OpaqueTableStorage | None = None, record_class: type[StoredDatastoreItemInfo] | None = None, record_column: str | None = None) AbstractContextManager[tuple[Iterable[tuple[DatasetIdRef, StoredDatastoreItemInfo | None]], set[str] | None]]¶
- Retrieve all the dataset ref IDs that are in the trash associated for this datastore, and then remove them if the context exists without an exception being raised. - Parameters:
- records_tableOpaqueTableStorage, optional
- Table of records to query with the trash records. 
- record_classtypeofStoredDatastoreItemInfo, optional
- Class to use when reading records from - records_table.
- record_columnstr, optional
- Name of the column in records_table that refers to the artifact. 
 
- records_table
- Yields:
- matchesiterable of (DatasetIdRef,StoredDatastoreItemInfo)
- The IDs of datasets that can be safely removed from this datastore and the corresponding information from the records table. Can be empty. 
- artifacts_to_keepsetofstr, optional
- Any external artifacts that are known to the table but which should not be deleted. If - None, the caller should check themselves.
 
- matchesiterable of (
 - Notes - The object yielded by the context manager may be a single-pass iterator. If multiple passes are required, it should be converted to a - listor other container.- Datastores should never raise (except perhaps in testing) when an artifact cannot be removed only because it is already gone - this condition is an unavoidable outcome of concurrent delete operations, and must not be considered and error for those to be safe. - If a table record is provided the trashed records will be deleted when the context manager completes. - Examples - Typical usage by a Datastore is something like: - with self.bridge.emptyTrash() as trashed: iter, to_keep = trashed for ref, info in iter: # Remove artifacts associated with id, # raise an exception if something goes wrong. 
 - abstract ensure(refs: Iterable[DatasetRef | FakeDatasetRef]) None¶
- Record that a datastore holds the given datasets, skipping if the ref is already registered. - Parameters:
- refsIterableofDatasetIdRef
- References to the datasets. 
 
- refs
 
 - abstract forget(refs: Iterable[DatasetRef | FakeDatasetRef]) None¶
- Remove dataset location information without any attempt to put it in the trash while waiting for external deletes. - This should be used only to implement - Datastore.forget, or in cases where deleting the actual datastore artifacts cannot fail.- Parameters:
- refsIterableofDatasetIdRef
- References to the datasets. 
 
- refs
 
 - abstract insert(refs: Iterable[DatasetRef | FakeDatasetRef]) None¶
- Record that a datastore holds the given datasets. - Parameters:
- refsIterableofDatasetIdRef
- References to the datasets. 
 
- refs