DatastoreRegistryBridgeManager¶
- class lsst.daf.butler.registry.interfaces.DatastoreRegistryBridgeManager(*, opaque: OpaqueTableStorageManager, universe: DimensionUniverse, datasetIdColumnType: type, registry_schema_version: VersionTuple | None = None)¶
- Bases: - VersionedExtension- An abstract base class that defines the interface between - Registryand- Datastorewhen a new- Datastoreis constructed.- Parameters:
- opaqueOpaqueTableStorageManager
- Manager object for opaque table storage in the - Registry.
- universeDimensionUniverse
- All dimensions know to the - Registry.
- datasetIdColumnTypetype
- Type for dataset ID column. 
 
- opaque
 - Notes - Datastores are passed an instance of - DatastoreRegistryBridgeManagerat construction, and should use it to obtain and keep any of the following:- a - DatastoreRegistryBridgeinstance to record in the- Registrywhat is present in the datastore (needed by all datastores that are not just forwarders);
- one or more - OpaqueTableStorageinstance if they wish to store internal records in the- Registrydatabase;
- the - DimensionUniverse, if they need it to (e.g.) construct or validate filename templates.
 - Methods Summary - checkCompatibility(registry_schema_version, ...)- Check that schema version defined in registry is compatible with current implementation. - checkNewSchemaVersion(schema_version)- Verify that requested schema version can be created by an extension. - Return schema version(s) supported by this extension class. - Return full name of the extension. - findDatastores(ref)- Retrieve datastore locations for a given dataset. - initialize(db, context, *, opaque, datasets, ...)- Construct an instance of the manager. - Return schema version for newly created registry. - refresh()- Ensure all other operations on this manager are aware of any collections that may have been registered by other clients since it was initialized or last refreshed. - register(name, *[, ephemeral])- Register a new - Datastoreassociated with this- Registry.- Methods Documentation - classmethod checkCompatibility(registry_schema_version: VersionTuple, update: bool) None¶
- Check that schema version defined in registry is compatible with current implementation. - Parameters:
- registry_schema_versionVersionTuple
- Schema version that exists in registry or defined in a configuration for a registry to be created. 
- updatebool
- If True then read-write access is expected. 
 
- registry_schema_version
- Raises:
- IncompatibleVersionError
- Raised if schema version is not supported by implementation. 
 
 - Notes - Default implementation uses - VersionTuple.checkCompatibilityon the versions returned from- currentVersionsmethod. Subclasses that support different compatibility model will overwrite this method.
 - classmethod checkNewSchemaVersion(schema_version: VersionTuple) None¶
- Verify that requested schema version can be created by an extension. - Parameters:
- schema_versionVersionTuple
- Schema version that this extension is asked to create. 
 
- schema_version
 - Notes - This method may be used only occasionally when a specific schema version is given in a regisitry config file. This can be used with an extension that supports multiple schem versions to make it create new schema with a non-default version number. Default implementation compares requested version with one of the version returned from - currentVersions.
 - abstract classmethod currentVersions() list[lsst.daf.butler.registry.interfaces._versioning.VersionTuple]¶
- Return schema version(s) supported by this extension class. - Returns:
- versionlist[VersionTuple]
- Schema versions for this extension. Empty list is returned if an extension does not require its version to be saved or checked. 
 
- version
 
 - classmethod extensionName() str¶
- Return full name of the extension. - This name should match the name defined in registry configuration. It is also stored in registry attributes. Default implementation returns full class name. - Returns:
- namestr
- Full extension name. 
 
- name
 
 - abstract findDatastores(ref: DatasetRef | FakeDatasetRef) Iterable[str]¶
- Retrieve datastore locations for a given dataset. 
 - abstract classmethod initialize(db: Database, context: StaticTablesContext, *, opaque: OpaqueTableStorageManager, datasets: Type[DatasetRecordStorageManager], universe: DimensionUniverse, registry_schema_version: VersionTuple | None = None) DatastoreRegistryBridgeManager¶
- Construct an instance of the manager. - Parameters:
- dbDatabase
- Interface to the underlying database engine and namespace. 
- contextStaticTablesContext
- Context object obtained from - Database.declareStaticTables; used to declare any tables that should always be present in a layer implemented with this manager.
- opaqueOpaqueTableStorageManager
- Registry manager object for opaque (to Registry) tables, provided to allow Datastores to store their internal information inside the Registry database. 
- datasetssubclass of DatasetRecordStorageManager
- Concrete class that will be used to manage the core dataset tables in this registry; should be used only to create foreign keys to those tables. 
- universeDimensionUniverse
- All dimensions known to the registry. 
- registry_schema_versionVersionTupleorNone
- Schema version of this extension as defined in registry. 
 
- db
- Returns:
- managerDatastoreRegistryBridgeManager
- An instance of a concrete - DatastoreRegistryBridgeManagersubclass.
 
- manager
 
 - newSchemaVersion() VersionTuple | None¶
- Return schema version for newly created registry. - Returns:
- versionVersionTupleorNone
- Schema version created by this extension. - Noneis returned if an extension does not require its version to be saved or checked.
 
- version
 - Notes - Default implementation only forks for extensions that support single schema version and it returns version obtained from - currentVersions. If- currentVersionsreturns multiple version then default implementation will raise an exception and the method has to be reimplemented by a subclass.
 - abstract refresh() None¶
- Ensure all other operations on this manager are aware of any collections that may have been registered by other clients since it was initialized or last refreshed. 
 - abstract register(name: str, *, ephemeral: bool = True) DatastoreRegistryBridge¶
- Register a new - Datastoreassociated with this- Registry.- This method should be called by all - Datastoreclasses aside from those that only forward storage to other datastores.- Parameters:
- Returns:
- bridgeDatastoreRegistryBridge
- Object that provides the interface this - Datastoreshould use to communicate with the- Registry.
 
- bridge