Registry¶
-
class
lsst.daf.butler.Registry(database: Database, universe: DimensionUniverse, *, attributes: Type[ButlerAttributeManager], opaque: Type[OpaqueTableStorageManager], dimensions: Type[DimensionRecordStorageManager], collections: Type[CollectionManager], datasets: Type[DatasetRecordStorageManager], datastoreBridges: Type[DatastoreRegistryBridgeManager], writeable: bool = True, create: bool = False)¶ Bases:
objectRegistry interface.
Parameters: - database :
Database Database instance to store Registry.
- universe :
DimensionUniverse Full set of dimensions for Registry.
- attributes :
type Manager class implementing
ButlerAttributeManager.- opaque :
type Manager class implementing
OpaqueTableStorageManager.- dimensions :
type Manager class implementing
DimensionRecordStorageManager.- collections :
type Manager class implementing
CollectionManager.- datasets :
type Manager class implementing
DatasetRecordStorageManager.- datastoreBridges :
type Manager class implementing
DatastoreRegistryBridgeManager.- writeable :
bool, optional If True then Registry will support write operations.
- create :
bool, optional If True then database schema will be initialized, it must be empty before instantiating Registry.
Attributes Summary
defaultConfigFilePath to configuration defaults. dimensionsAll dimensions recognized by this Registry(DimensionUniverse).Methods Summary
associate(collection, refs)Add existing datasets to a TAGGEDcollection.deleteOpaqueData(tableName, **where)Remove records from an opaque table. disassociate(collection, refs)Remove existing datasets from a TAGGEDcollection.expandDataId(dataId, Mapping[str, Any], …)Expand a dimension-based data ID to include additional information. fetchOpaqueData(tableName, **where)Retrieve records from an opaque table. findDataset(datasetType, str], dataId, …)Find a dataset given its DatasetTypeand data ID.fromConfig(config, RegistryConfig, Config, …)Create Registrysubclass instance fromconfig.getCollectionChain(parent)Return the child collections in a CHAINEDcollection.getCollectionType(name)Return an enumeration value indicating the type of the given collection. getDataset(id)Retrieve a Dataset entry. getDatasetLocations(ref)Retrieve datastore locations for a given dataset. getDatasetType(name)Get the DatasetType.getDatastoreBridgeManager()Return an object that allows a new Datastoreinstance to communicate with thisRegistry.insertDatasets(datasetType, str], dataIds, …)Insert one or more datasets into the RegistryinsertDimensionData(element, str], *data, …)Insert one or more dimension records into the database. insertOpaqueData(tableName, *data)Insert records into an opaque table. isWriteable()Return Trueif this registry allows write operations, andFalseotherwise.makeQueryBuilder(summary)Return a QueryBuilderinstance capable of constructing and managing more complex queries than those obtainable viaRegistryinterfaces.queryCollections(expression, datasetType, …)Iterate over the collections whose names match an expression. queryDataIds(dimensions, str]], …)Query for data IDs matching user-provided criteria. queryDatasetTypes(expression, *, components)Iterate over the dataset types whose names match an expression. queryDatasets(datasetType, *, collections, …)Query for and iterate over dataset references matching user-provided criteria. queryDimensionRecords(element, str], *, …)Query for dimension information matching user-provided criteria. registerCollection(name, type)Add a new collection if one with the given name does not exist. registerDatasetType(datasetType)Add a new DatasetTypeto the Registry.registerOpaqueTable(tableName, spec)Add an opaque (to the Registry) table for use by aDatastoreor other data repository client.registerRun(name)Add a new run if one with the given name does not exist. removeCollection(name)Completely remove the given collection. removeDatasets(refs)Remove datasets from the Registry. setCollectionChain(parent, children)Define or redefine a CHAINEDcollection.syncDimensionData(element, str], row, Any], …)Synchronize the given dimension record with the database, inserting if it does not already exist and comparing values if it does. transaction(*, savepoint)Return a context manager that represents a transaction. Attributes Documentation
-
defaultConfigFile= None¶ Path to configuration defaults. Accessed within the
configresource or relative to a search path. Can be None if no defaults specified.
-
dimensions¶ All dimensions recognized by this
Registry(DimensionUniverse).
Methods Documentation
-
associate(collection: str, refs: Iterable[lsst.daf.butler.core.datasets.ref.DatasetRef]) → None¶ Add existing datasets to a
TAGGEDcollection.If a DatasetRef with the same exact integer ID is already in a collection nothing is changed. If a
DatasetRefwith the sameDatasetTypeand data ID but with different integer ID exists in the collection,ConflictingDefinitionErroris raised.Parameters: - collection :
str Indicates the collection the datasets should be associated with.
- refs :
Iterable[DatasetRef] An iterable of resolved
DatasetRefinstances that already exist in thisRegistry.
Raises: - ConflictingDefinitionError
If a Dataset with the given
DatasetRefalready exists in the given collection.- AmbiguousDatasetError
Raised if
any(ref.id is None for ref in refs).- MissingCollectionError
Raised if
collectiondoes not exist in the registry.- TypeError
Raise adding new datasets to the given
collectionis not allowed.
- collection :
-
deleteOpaqueData(tableName: str, **where) → None¶ Remove records from an opaque table.
Parameters: - tableName :
str Logical name of the opaque table. Must match the name used in a previous call to
registerOpaqueTable.- where
Additional keyword arguments are interpreted as equality constraints that restrict the deleted rows (combined with AND); keyword arguments are column names and values are the values they must have.
- tableName :
-
disassociate(collection: str, refs: Iterable[lsst.daf.butler.core.datasets.ref.DatasetRef]) → None¶ Remove existing datasets from a
TAGGEDcollection.collectionandrefcombinations that are not currently associated are silently ignored.Parameters: - collection :
str The collection the datasets should no longer be associated with.
- refs :
Iterable[DatasetRef] An iterable of resolved
DatasetRefinstances that already exist in thisRegistry.
Raises: - AmbiguousDatasetError
Raised if any of the given dataset references is unresolved.
- MissingCollectionError
Raised if
collectiondoes not exist in the registry.- TypeError
Raise adding new datasets to the given
collectionis not allowed.
- collection :
-
expandDataId(dataId: Union[lsst.daf.butler.core.dimensions.coordinate.DataCoordinate, Mapping[str, Any], None] = None, *, graph: Optional[lsst.daf.butler.core.dimensions.graph.DimensionGraph] = None, records: Union[lsst.daf.butler.core.named.NamedKeyMapping[lsst.daf.butler.core.dimensions.elements.DimensionElement, typing.Union[lsst.daf.butler.core.dimensions.records.DimensionRecord, NoneType]][lsst.daf.butler.core.dimensions.elements.DimensionElement, Optional[lsst.daf.butler.core.dimensions.records.DimensionRecord]], Mapping[str, Optional[lsst.daf.butler.core.dimensions.records.DimensionRecord]], None] = None, **kwargs) → lsst.daf.butler.core.dimensions.coordinate.DataCoordinate¶ Expand a dimension-based data ID to include additional information.
Parameters: - dataId :
DataCoordinateordict, optional Data ID to be expanded; augmented and overridden by
kwds.- graph :
DimensionGraph, optional Set of dimensions for the expanded ID. If
None, the dimensions will be inferred from the keys ofdataIdandkwds. Dimensions that are indataIdorkwdsbut not ingraphare silently ignored, providing a way to extract and expand a subset of a data ID.- records :
Mapping[str,DimensionRecord], optional Dimension record data to use before querying the database for that data, keyed by element name.
- **kwargs
Additional keywords are treated like additional key-value pairs for
dataId, extending and overriding
Returns: - expanded :
DataCoordinate A data ID that includes full metadata for all of the dimensions it identifieds, i.e. guarantees that
expanded.hasRecords()andexpanded.hasFull()both returnTrue.
- dataId :
-
fetchOpaqueData(tableName: str, **where) → Iterator[dict]¶ Retrieve records from an opaque table.
Parameters: - tableName :
str Logical name of the opaque table. Must match the name used in a previous call to
registerOpaqueTable.- where
Additional keyword arguments are interpreted as equality constraints that restrict the returned rows (combined with AND); keyword arguments are column names and values are the values they must have.
Yields: - row :
dict A dictionary representing a single result row.
- tableName :
-
findDataset(datasetType: Union[lsst.daf.butler.core.datasets.type.DatasetType, str], dataId: Union[lsst.daf.butler.core.dimensions.coordinate.DataCoordinate, Mapping[str, Any], None] = None, *, collections: Any, **kwargs) → Optional[lsst.daf.butler.core.datasets.ref.DatasetRef]¶ Find a dataset given its
DatasetTypeand data ID.This can be used to obtain a
DatasetRefthat permits the dataset to be read from aDatastore. If the dataset is a component and can not be found using the provided dataset type, a dataset ref for the parent will be returned instead but with the correct dataset type.Parameters: - datasetType :
DatasetTypeorstr A
DatasetTypeor the name of one.- dataId :
dictorDataCoordinate, optional A
dict-like object containing theDimensionlinks that identify the dataset within a collection.- collections
An expression that fully or partially identifies the collections to search for the dataset, such as a
str,DatasetType, or iterable thereof. See Collection expressions for more information.- **kwargs
Additional keyword arguments passed to
DataCoordinate.standardizeto convertdataIdto a trueDataCoordinateor augment an existing one.
Returns: - ref :
DatasetRef A reference to the dataset, or
Noneif no matching Dataset was found.
Raises: - LookupError
Raised if one or more data ID keys are missing.
- KeyError
Raised if the dataset type does not exist.
- MissingCollectionError
Raised if any of
collectionsdoes not exist in the registry.
- datasetType :
-
classmethod
fromConfig(config: Union[ButlerConfig, RegistryConfig, Config, str], create: bool = False, butlerRoot: Optional[str] = None, writeable: bool = True) → Registry¶ Create
Registrysubclass instance fromconfig.Uses
registry.clsfromconfigto determine which subclass to instantiate.Parameters: - config :
ButlerConfig,RegistryConfig,Configorstr Registry configuration
- create :
bool, optional Assume empty Registry and create a new one.
- butlerRoot :
str, optional Path to the repository root this
Registrywill manage.- writeable :
bool, optional If
True(default) create a read-write connection to the database.
Returns: - config :
-
getCollectionChain(parent: str) → lsst.daf.butler.registry.wildcards.CollectionSearch¶ Return the child collections in a
CHAINEDcollection.Parameters: - parent :
str Name of the chained collection. Must have already been added via a call to
Registry.registerCollection.
Returns: - children :
CollectionSearch An object that defines the search path of the collection. See Collection expressions for more information.
Raises: - parent :
-
getCollectionType(name: str) → lsst.daf.butler.registry._collectionType.CollectionType¶ Return an enumeration value indicating the type of the given collection.
Parameters: - name :
str The name of the collection.
Returns: - type :
CollectionType Enum value indicating the type of this collection.
Raises: - MissingCollectionError
Raised if no collection with the given name exists.
- name :
-
getDataset(id: int) → Optional[lsst.daf.butler.core.datasets.ref.DatasetRef]¶ Retrieve a Dataset entry.
Parameters: - id :
int The unique identifier for the dataset.
Returns: - ref :
DatasetReforNone A ref to the Dataset, or
Noneif no matching Dataset was found.
- id :
-
getDatasetLocations(ref: lsst.daf.butler.core.datasets.ref.DatasetRef) → Iterable[str]¶ Retrieve datastore locations for a given dataset.
Parameters: - ref :
DatasetRef A reference to the dataset for which to retrieve storage information.
Returns: - datastores :
Iterable[str] All the matching datastores holding this dataset.
Raises: - AmbiguousDatasetError
Raised if
ref.idisNone.
- ref :
-
getDatasetType(name: str) → lsst.daf.butler.core.datasets.type.DatasetType¶ Get the
DatasetType.Parameters: - name :
str Name of the type.
Returns: - type :
DatasetType The
DatasetTypeassociated with the given name.
Raises: - KeyError
Requested named DatasetType could not be found in registry.
- name :
-
getDatastoreBridgeManager() → DatastoreRegistryBridgeManager¶ Return an object that allows a new
Datastoreinstance to communicate with thisRegistry.Returns: - manager :
DatastoreRegistryBridgeManager Object that mediates communication between this
Registryand its associated datastores.
- manager :
-
insertDatasets(datasetType: Union[lsst.daf.butler.core.datasets.type.DatasetType, str], dataIds: Iterable[Union[lsst.daf.butler.core.dimensions.coordinate.DataCoordinate, Mapping[str, Any]]], run: str) → List[lsst.daf.butler.core.datasets.ref.DatasetRef]¶ Insert one or more datasets into the
RegistryThis always adds new datasets; to associate existing datasets with a new collection, use
associate.Parameters: - datasetType :
DatasetTypeorstr A
DatasetTypeor the name of one.- dataIds :
IterableofdictorDataCoordinate Dimension-based identifiers for the new datasets.
- run :
str The name of the run that produced the datasets.
Returns: - refs :
listofDatasetRef Resolved
DatasetRefinstances for all given data IDs (in the same order).
Raises: - ConflictingDefinitionError
If a dataset with the same dataset type and data ID as one of those given already exists in
run.- MissingCollectionError
Raised if
rundoes not exist in the registry.
- datasetType :
-
insertDimensionData(element: Union[lsst.daf.butler.core.dimensions.elements.DimensionElement, str], *data, conform: bool = True) → None¶ Insert one or more dimension records into the database.
Parameters: - element :
DimensionElementorstr The
DimensionElementor name thereof that identifies the table records will be inserted into.- data :
dictorDimensionRecord(variadic) One or more records to insert.
- conform :
bool, optional If
False(Trueis default) perform no checking or conversions, and assume thatelementis aDimensionElementinstance anddatais a one or moreDimensionRecordinstances of the appropriate subclass.
- element :
-
insertOpaqueData(tableName: str, *data) → None¶ Insert records into an opaque table.
Parameters: - tableName :
str Logical name of the opaque table. Must match the name used in a previous call to
registerOpaqueTable.- data
Each additional positional argument is a dictionary that represents a single row to be added.
- tableName :
-
makeQueryBuilder(summary: lsst.daf.butler.registry.queries._structs.QuerySummary) → lsst.daf.butler.registry.queries._builder.QueryBuilder¶ Return a
QueryBuilderinstance capable of constructing and managing more complex queries than those obtainable viaRegistryinterfaces.This is an advanced interface; downstream code should prefer
Registry.queryDataIdsandRegistry.queryDatasetswhenever those are sufficient.Parameters: - summary :
queries.QuerySummary Object describing and categorizing the full set of dimensions that will be included in the query.
Returns: - builder :
queries.QueryBuilder Object that can be used to construct and perform advanced queries.
- summary :
-
queryCollections(expression: Any = Ellipsis, datasetType: Optional[lsst.daf.butler.core.datasets.type.DatasetType] = None, collectionType: Optional[lsst.daf.butler.registry._collectionType.CollectionType] = None, flattenChains: bool = False, includeChains: Optional[bool] = None) → Iterator[str]¶ Iterate over the collections whose names match an expression.
Parameters: - expression :
Any, optional An expression that fully or partially identifies the collections to return, such as a
str,re.Pattern, or iterable thereof.can be used to return all collections, and is the default. See Collection expressions for more information.- datasetType :
DatasetType, optional If provided, only yield collections that should be searched for this dataset type according to
expression. If this is not provided, any dataset type restrictions inexpressionare ignored.- collectionType :
CollectionType, optional If provided, only yield collections of this type.
- flattenChains :
bool, optional If
True(Falseis default), recursively yield the child collections of matchingCHAINEDcollections.- includeChains :
bool, optional If
True, yield records for matchingCHAINEDcollections. Default is the opposite offlattenChains: include either CHAINED collections or their children, but not both.
Yields: - collection :
str The name of a collection that matches
expression.
- expression :
-
queryDataIds(dimensions: Union[Iterable[Union[lsst.daf.butler.core.dimensions.elements.Dimension, str]], lsst.daf.butler.core.dimensions.elements.Dimension, str], *, dataId: Union[lsst.daf.butler.core.dimensions.coordinate.DataCoordinate, Mapping[str, Any], None] = None, datasets: Optional[Any] = None, collections: Optional[Any] = None, where: Optional[str] = None, components: Optional[bool] = None, **kwargs) → lsst.daf.butler.registry.queries._results.DataCoordinateQueryResults¶ Query for data IDs matching user-provided criteria.
Parameters: - dimensions :
Dimensionorstr, or iterable thereof The dimensions of the data IDs to yield, as either
Dimensioninstances orstr. Will be automatically expanded to a completeDimensionGraph.- dataId :
dictorDataCoordinate, optional A data ID whose key-value pairs are used as equality constraints in the query.
- datasets :
Any, optional An expression that fully or partially identifies dataset types that should constrain the yielded data IDs. For example, including “raw” here would constrain the yielded
instrument,exposure,detector, andphysical_filtervalues to only those for which at least one “raw” dataset exists incollections. Allowed types includeDatasetType,str,re.Pattern, and iterables thereof. Unlike other dataset type expressions,...is not permitted - it doesn’t make sense to constrain data IDs on the existence of all datasets. See DatasetType expressions for more information.- collections: `Any`, optional
An expression that fully or partially identifies the collections to search for datasets, such as a
str,re.Pattern, or iterable thereof.can be used to return all collections. Must be provided ifdatasetsis, and is ignored if it is not. See Collection expressions for more information.- where :
str, optional A string expression similar to a SQL WHERE clause. May involve any column of a dimension table or (as a shortcut for the primary key column of a dimension table) dimension name. See Dimension expressions for more information.
- components :
bool, optional If
True, apply all dataset expression patterns to component dataset type names as well. IfFalse, never apply patterns to components. IfNone(default), apply patterns to components only if their parent datasets were not matched by the expression. Fully-specified component datasets (strorDatasetTypeinstances) are always included.- **kwargs
Additional keyword arguments are forwarded to
DataCoordinate.standardizewhen processing thedataIdargument (and may be used to provide a constraining data ID even when thedataIdargument isNone).
Returns: - dataIds :
DataCoordinateQueryResults Data IDs matching the given query parameters. These are guaranteed to identify all dimensions (
DataCoordinate.hasFullreturnsTrue), but will not containDimensionRecordobjects (DataCoordinate.hasRecordsreturnsFalse). CallDataCoordinateQueryResults.expandedon the returned object to fetch those (and consider usingDataCoordinateQueryResults.materializeon the returned object first if the expected number of rows is very large). See documentation for those methods for additional information.
- dimensions :
-
queryDatasetTypes(expression: Any = Ellipsis, *, components: Optional[bool] = None) → Iterator[lsst.daf.butler.core.datasets.type.DatasetType]¶ Iterate over the dataset types whose names match an expression.
Parameters: - expression :
Any, optional An expression that fully or partially identifies the dataset types to return, such as a
str,re.Pattern, or iterable thereof.can be used to return all dataset types, and is the default. See DatasetType expressions for more information.- components :
bool, optional If
True, apply all expression patterns to component dataset type names as well. IfFalse, never apply patterns to components. IfNone(default), apply patterns to components only if their parent datasets were not matched by the expression. Fully-specified component datasets (strorDatasetTypeinstances) are always included.
Yields: - datasetType :
DatasetType A
DatasetTypeinstance whose name matchesexpression.
- expression :
-
queryDatasets(datasetType: Any, *, collections: Any, dimensions: Optional[Iterable[Union[lsst.daf.butler.core.dimensions.elements.Dimension, str]]] = None, dataId: Union[lsst.daf.butler.core.dimensions.coordinate.DataCoordinate, Mapping[str, Any], None] = None, where: Optional[str] = None, deduplicate: bool = False, components: Optional[bool] = None, **kwargs) → lsst.daf.butler.registry.queries._results.DatasetQueryResults¶ Query for and iterate over dataset references matching user-provided criteria.
Parameters: - datasetType
An expression that fully or partially identifies the dataset types to be queried. Allowed types include
DatasetType,str,re.Pattern, and iterables thereof. The special valuecan be used to query all dataset types. See DatasetType expressions for more information.- collections
An expression that fully or partially identifies the collections to search for datasets, such as a
str,re.Pattern, or iterable thereof.can be used to return all collections. See Collection expressions for more information.- dimensions :
IterableofDimensionorstr Dimensions to include in the query (in addition to those used to identify the queried dataset type(s)), either to constrain the resulting datasets to those for which a matching dimension exists, or to relate the dataset type’s dimensions to dimensions referenced by the
dataIdorwherearguments.- dataId :
dictorDataCoordinate, optional A data ID whose key-value pairs are used as equality constraints in the query.
- where :
str, optional A string expression similar to a SQL WHERE clause. May involve any column of a dimension table or (as a shortcut for the primary key column of a dimension table) dimension name. See Dimension expressions for more information.
- deduplicate :
bool, optional If
True(Falseis default), for each result data ID, only yield oneDatasetRefof eachDatasetType, from the first collection in which a dataset of that dataset type appears (according to the order ofcollectionspassed in). IfTrue,collectionsmust not contain regular expressions and may not be.- components :
bool, optional If
True, apply all dataset expression patterns to component dataset type names as well. IfFalse, never apply patterns to components. IfNone(default), apply patterns to components only if their parent datasets were not matched by the expression. Fully-specified component datasets (strorDatasetTypeinstances) are always included.- **kwargs
Additional keyword arguments are forwarded to
DataCoordinate.standardizewhen processing thedataIdargument (and may be used to provide a constraining data ID even when thedataIdargument isNone).
Returns: - refs :
queries.DatasetQueryResults Dataset references matching the given query criteria.
Raises: - TypeError
Raised when the arguments are incompatible, such as when a collection wildcard is passed when
deduplicateisTrue.
Notes
When multiple dataset types are queried in a single call, the results of this operation are equivalent to querying for each dataset type separately in turn, and no information about the relationships between datasets of different types is included. In contexts where that kind of information is important, the recommended pattern is to use
queryDataIdsto first obtain data IDs (possibly with the desired dataset types and collections passed as constraints to the query), and then use multiple (generally much simpler) calls toqueryDatasetswith the returned data IDs passed as constraints.
-
queryDimensionRecords(element: Union[lsst.daf.butler.core.dimensions.elements.DimensionElement, str], *, dataId: Union[lsst.daf.butler.core.dimensions.coordinate.DataCoordinate, Mapping[str, Any], None] = None, datasets: Optional[Any] = None, collections: Optional[Any] = None, where: Optional[str] = None, components: Optional[bool] = None, **kwargs) → Iterator[lsst.daf.butler.core.dimensions.records.DimensionRecord]¶ Query for dimension information matching user-provided criteria.
Parameters: - element :
DimensionElementorstr The dimension element to obtain r
- dataId :
dictorDataCoordinate, optional A data ID whose key-value pairs are used as equality constraints in the query.
- datasets :
Any, optional An expression that fully or partially identifies dataset types that should constrain the yielded records. See
queryDataIdsand DatasetType expressions for more information.- collections: `Any`, optional
An expression that fully or partially identifies the collections to search for datasets. See
queryDataIdsand Collection expressions for more information.- where :
str, optional A string expression similar to a SQL WHERE clause. See
queryDataIdsand Dimension expressions for more information.- components :
bool, optional Whether to apply dataset expressions to components as well. See
queryDataIdsfor more information.- **kwargs
Additional keyword arguments are forwarded to
DataCoordinate.standardizewhen processing thedataIdargument (and may be used to provide a constraining data ID even when thedataIdargument isNone).
Returns: - dataIds :
DataCoordinateQueryResults Data IDs matching the given query parameters.
- element :
-
registerCollection(name: str, type: lsst.daf.butler.registry._collectionType.CollectionType = <CollectionType.TAGGED: 2>) → None¶ Add a new collection if one with the given name does not exist.
Parameters: - name :
str The name of the collection to create.
- type :
CollectionType Enum value indicating the type of collection to create.
Notes
This method cannot be called within transactions, as it needs to be able to perform its own transaction to be concurrent.
- name :
-
registerDatasetType(datasetType: lsst.daf.butler.core.datasets.type.DatasetType) → bool¶ Add a new
DatasetTypeto the Registry.It is not an error to register the same
DatasetTypetwice.Parameters: - datasetType :
DatasetType The
DatasetTypeto be added.
Returns: Raises: - ValueError
Raised if the dimensions or storage class are invalid.
- ConflictingDefinitionError
Raised if this DatasetType is already registered with a different definition.
Notes
This method cannot be called within transactions, as it needs to be able to perform its own transaction to be concurrent.
- datasetType :
-
registerOpaqueTable(tableName: str, spec: lsst.daf.butler.core.ddl.TableSpec) → None¶ Add an opaque (to the
Registry) table for use by aDatastoreor other data repository client.Opaque table records can be added via
insertOpaqueData, retrieved viafetchOpaqueData, and removed viadeleteOpaqueData.Parameters: - tableName :
str Logical name of the opaque table. This may differ from the actual name used in the database by a prefix and/or suffix.
- spec :
ddl.TableSpec Specification for the table to be added.
- tableName :
-
registerRun(name: str) → None¶ Add a new run if one with the given name does not exist.
Parameters: - name :
str The name of the run to create.
Notes
This method cannot be called within transactions, as it needs to be able to perform its own transaction to be concurrent.
- name :
-
removeCollection(name: str) → None¶ Completely remove the given collection.
Parameters: - name :
str The name of the collection to remove.
Raises: - MissingCollectionError
Raised if no collection with the given name exists.
Notes
If this is a
RUNcollection, all datasets and quanta in it are also fully removed. This requires that those datasets be removed (or at least trashed) from any datastores that hold them first.A collection may not be deleted as long as it is referenced by a
CHAINEDcollection; theCHAINEDcollection must be deleted or redefined first.- name :
-
removeDatasets(refs: Iterable[lsst.daf.butler.core.datasets.ref.DatasetRef]) → None¶ Remove datasets from the Registry.
The datasets will be removed unconditionally from all collections, and any
Quantumthat consumed this dataset will instead be marked with having a NULL input.Datastorerecords will not be deleted; the caller is responsible for ensuring that the dataset has already been removed from all Datastores.Parameters: - refs :
IterableofDatasetRef References to the datasets to be removed. Must include a valid
idattribute, and should be considered invalidated upon return.
Raises: - refs :
-
setCollectionChain(parent: str, children: Any) → None¶ Define or redefine a
CHAINEDcollection.Parameters: - parent :
str Name of the chained collection. Must have already been added via a call to
Registry.registerCollection.- children :
Any An expression defining an ordered search of child collections, generally an iterable of
str. Restrictions on the dataset types to be searched can also be included, by passing mapping or an iterable containing tuples; see Collection expressions for more information.
Raises: - parent :
-
syncDimensionData(element: Union[lsst.daf.butler.core.dimensions.elements.DimensionElement, str], row: Union[Mapping[str, Any], lsst.daf.butler.core.dimensions.records.DimensionRecord], conform: bool = True) → bool¶ Synchronize the given dimension record with the database, inserting if it does not already exist and comparing values if it does.
Parameters: - element :
DimensionElementorstr The
DimensionElementor name thereof that identifies the table records will be inserted into.- row :
dictorDimensionRecord The record to insert.
- conform :
bool, optional If
False(Trueis default) perform no checking or conversions, and assume thatelementis aDimensionElementinstance anddatais a one or moreDimensionRecordinstances of the appropriate subclass.
Returns: Raises: - ConflictingDefinitionError
Raised if the record exists in the database (according to primary key lookup) but is inconsistent with the given one.
Notes
This method cannot be called within transactions, as it needs to be able to perform its own transaction to be concurrent.
- element :
-
transaction(*, savepoint: bool = False) → Iterator[None]¶ Return a context manager that represents a transaction.
- database :