Registry¶
- 
class lsst.daf.butler.registry.Registry¶
- Bases: - abc.ABC- Abstract Registry interface. - Each registry implementation can have its own constructor parameters. The assumption is that an instance of a specific subclass will be constructed from configuration using - Registry.fromConfig(). The base class will look for a- clsentry and call that specific- fromConfig()method.- All subclasses should store - RegistryDefaultsin a- _defaultsproperty. No other properties are assumed shared between implementations.- Attributes Summary - Path to configuration defaults. - Default collection search path and/or output - RUNcollection (- RegistryDefaults).- All dimensions recognized by this - Registry(- DimensionUniverse).- Methods Summary - associate(collection, refs)- Add existing datasets to a - TAGGEDcollection.- certify(collection, refs, timespan)- Associate one or more datasets with a calibration collection and a validity range within it. - copy([defaults])- Create a new - Registrybacked by the same data repository and connection as this one, but independent defaults.- createFromConfig([config, dimensionConfig, …])- Create registry database and return - Registryinstance.- decertify(collection, datasetType, timespan, *)- Remove or adjust datasets to clear a validity range within a calibration collection. - determineTrampoline(config)- Return class to use to instantiate real registry. - disassociate(collection, refs)- Remove existing datasets from a - TAGGEDcollection.- expandDataId([dataId, graph, records, …])- Expand a dimension-based data ID to include additional information. - findDataset(datasetType[, dataId, …])- Find a dataset given its - DatasetTypeand data ID.- forceRegistryConfig(config)- Force the supplied config to a - RegistryConfig.- fromConfig(config[, butlerRoot, writeable, …])- Create - Registrysubclass instance from- config.- getCollectionChain(parent)- Return the child collections in a - CHAINEDcollection.- getCollectionDocumentation(collection)- Retrieve the documentation string for a collection. - getCollectionSummary(collection)- Return a summary for the given collection. - 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.- Return an object that allows a new - Datastoreinstance to communicate with this- Registry.- insertDatasets(datasetType, dataIds[, run, …])- Insert one or more datasets into the - Registry- insertDimensionData(element, *data[, conform])- Insert one or more dimension records into the database. - Return - Trueif this registry allows write operations, and- Falseotherwise.- queryCollections([expression, datasetType, …])- Iterate over the collections whose names match an expression. - queryDataIds(dimensions, *[, dataId, …])- Query for data IDs matching user-provided criteria. - queryDatasetAssociations(datasetType[, …])- Iterate over dataset-collection combinations where the dataset is in the collection. - 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, *[, dataId, …])- Query for dimension information matching user-provided criteria. - refresh()- Refresh all in-memory state by querying the database. - registerCollection(name[, type, doc])- Add a new collection if one with the given name does not exist. - registerDatasetType(datasetType)- Add a new - DatasetTypeto the Registry.- registerRun(name[, doc])- Add a new run if one with the given name does not exist. - removeCollection(name)- Completely remove the given collection. - removeDatasetType(name)- Remove the named - DatasetTypefrom the registry.- removeDatasets(refs)- Remove datasets from the Registry. - Reset connection pool for registry if relevant. - setCollectionChain(parent, children, *[, …])- Define or redefine a - CHAINEDcollection.- setCollectionDocumentation(collection, doc)- Set the documentation string for a collection. - syncDimensionData(element, row[, conform])- 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: Optional[str] = None¶
- Path to configuration defaults. Accessed within the - configsresource or relative to a search path. Can be None if no defaults specified.
 - 
defaults¶
- Default collection search path and/or output - RUNcollection (- RegistryDefaults).- This is an immutable struct whose components may not be set individually, but the entire struct can be set by assigning to this property. 
 - Methods Documentation - 
abstract associate(collection: str, refs: Iterable[lsst.daf.butler.DatasetRef]) → None¶
- Add existing datasets to a - TAGGEDcollection.- If a DatasetRef with the same exact ID is already in a collection nothing is changed. If a - DatasetRefwith the same- DatasetTypeand data ID but with different ID exists in the collection,- ConflictingDefinitionErroris raised.- Parameters
- 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.
 
 
 - 
abstract certify(collection: str, refs: Iterable[lsst.daf.butler.DatasetRef], timespan:lsst.daf.butler.Timespan) → None¶
- Associate one or more datasets with a calibration collection and a validity range within it. - Parameters
- collectionstr
- The name of an already-registered - CALIBRATIONcollection.
- refsIterable[DatasetRef]
- Datasets to be associated. 
- timespanTimespan
- The validity range for these datasets within the collection. 
 
- collection
- Raises
- AmbiguousDatasetError
- Raised if any of the given - DatasetRefinstances is unresolved.
- ConflictingDefinitionError
- Raised if the collection already contains a different dataset with the same - DatasetTypeand data ID and an overlapping validity range.
- TypeError
- Raised if - collectionis not a- CALIBRATIONcollection or if one or more datasets are of a dataset type for which- DatasetType.isCalibrationreturns- False.
 
 
 - 
abstract copy(defaults: Optional[lsst.daf.butler.registry.RegistryDefaults] = None) →lsst.daf.butler.registry.Registry¶
- Create a new - Registrybacked by the same data repository and connection as this one, but independent defaults.- Parameters
- defaultsRegistryDefaults, optional
- Default collections and data ID values for the new registry. If not provided, - self.defaultswill be used (but future changes to either registry’s defaults will not affect the other).
 
- defaults
- Returns
 - Notes - Because the new registry shares a connection with the original, they also share transaction state (despite the fact that their - transactioncontext manager methods do not reflect this), and must be used with care.
 - 
classmethod createFromConfig(config: Optional[Union[lsst.daf.butler.registry.RegistryConfig, str]] = None, dimensionConfig: Optional[Union[lsst.daf.butler.DimensionConfig, str]] = None, butlerRoot: Optional[str] = None) →lsst.daf.butler.registry.Registry¶
- Create registry database and return - Registryinstance.- This method initializes database contents, database must be empty prior to calling this method. - Parameters
- configRegistryConfigorstr, optional
- Registry configuration, if missing then default configuration will be loaded from registry.yaml. 
- dimensionConfigDimensionConfigorstr, optional
- Dimensions configuration, if missing then default configuration will be loaded from dimensions.yaml. 
- butlerRootstr, optional
- Path to the repository root this - Registrywill manage.
 
- config
- Returns
 - Notes - This class will determine the concrete - Registrysubclass to use from configuration. Each subclass should implement this method even if it can not create a registry.
 - 
abstract decertify(collection: str, datasetType: Union[str,lsst.daf.butler.DatasetType], timespan:lsst.daf.butler.Timespan, *, dataIds: Optional[Iterable[Union[lsst.daf.butler.DataCoordinate, Mapping[str, Any]]]] = None) → None¶
- Remove or adjust datasets to clear a validity range within a calibration collection. - Parameters
- collectionstr
- The name of an already-registered - CALIBRATIONcollection.
- datasetTypestrorDatasetType
- Name or - DatasetTypeinstance for the datasets to be decertified.
- timespanTimespan, optional
- The validity range to remove datasets from within the collection. Datasets that overlap this range but are not contained by it will have their validity ranges adjusted to not overlap it, which may split a single dataset validity range into two. 
- dataIdsIterable[DataId], optional
- Data IDs that should be decertified within the given validity range If - None, all data IDs for- self.datasetTypewill be decertified.
 
- collection
- Raises
- TypeError
- Raised if - collectionis not a- CALIBRATIONcollection or if- datasetType.isCalibration() is False.
 
 
 - 
classmethod determineTrampoline(config: Optional[Union[ButlerConfig, RegistryConfig, Config, str]]) → Tuple[Type[Registry], RegistryConfig]¶
- Return class to use to instantiate real registry. - Parameters
- configRegistryConfigorstr, optional
- Registry configuration, if missing then default configuration will be loaded from registry.yaml. 
 
- config
- Returns
- requested_clstypeofRegistry
- The real registry class to use. 
- registry_configRegistryConfig
- The - RegistryConfigto use.
 
- requested_cls
 
 - 
abstract disassociate(collection: str, refs: Iterable[lsst.daf.butler.DatasetRef]) → None¶
- Remove existing datasets from a - TAGGEDcollection.- collectionand- refcombinations that are not currently associated are silently ignored.- Parameters
- 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.
 
 
 - 
abstract expandDataId(dataId: Optional[Union[lsst.daf.butler.DataCoordinate, Mapping[str, Any]]] = None, *, graph: Optional[lsst.daf.butler.DimensionGraph] = None, records: Optional[Union[lsst.daf.butler.NamedKeyMapping[lsst.daf.butler.DimensionElement, Optional[lsst.daf.butler.DimensionRecord]], Mapping[str, Optional[lsst.daf.butler.DimensionRecord]]]] = None, withDefaults: bool = True, **kwargs: Any) →lsst.daf.butler.DataCoordinate¶
- Expand a dimension-based data ID to include additional information. - Parameters
- dataIdDataCoordinateordict, optional
- Data ID to be expanded; augmented and overridden by - kwds.
- graphDimensionGraph, optional
- Set of dimensions for the expanded ID. If - None, the dimensions will be inferred from the keys of- dataIdand- kwds. Dimensions that are in- dataIdor- kwdsbut not in- graphare silently ignored, providing a way to extract and expand a subset of a data ID.
- recordsMapping[str,DimensionRecord], optional
- Dimension record data to use before querying the database for that data, keyed by element name. 
- withDefaultsbool, optional
- Utilize - self.defaults.dataIdto fill in missing governor dimension key-value pairs. Defaults to- True(i.e. defaults are used).
- **kwargs
- Additional keywords are treated like additional key-value pairs for - dataId, extending and overriding
 
- dataId
- Returns
- expandedDataCoordinate
- A data ID that includes full metadata for all of the dimensions it identifieds, i.e. guarantees that - expanded.hasRecords()and- expanded.hasFull()both return- True.
 
- expanded
 
 - 
abstract findDataset(datasetType: Union[lsst.daf.butler.DatasetType, str], dataId: Optional[Union[lsst.daf.butler.DataCoordinate, Mapping[str, Any]]] = None, *, collections: Optional[Any] = None, timespan: Optional[lsst.daf.butler.Timespan] = None, **kwargs: Any) → Optional[lsst.daf.butler.DatasetRef]¶
- Find a dataset given its - DatasetTypeand data ID.- This can be used to obtain a - DatasetRefthat permits the dataset to be read from a- Datastore. 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
- datasetTypeDatasetTypeorstr
- A - DatasetTypeor the name of one.
- dataIddictorDataCoordinate, optional
- A - dict-like object containing the- Dimensionlinks that identify the dataset within a collection.
- collections, optional.
- An expression that fully or partially identifies the collections to search for the dataset; see Collection expressions for more information. Defaults to - self.defaults.collections.
- timespanTimespan, optional
- A timespan that the validity range of the dataset must overlap. If not provided, any - CALIBRATIONcollections matched by the- collectionsargument will not be searched.
- **kwargs
- Additional keyword arguments passed to - DataCoordinate.standardizeto convert- dataIdto a true- DataCoordinateor augment an existing one.
 
- datasetType
- Returns
- refDatasetRef
- A reference to the dataset, or - Noneif no matching Dataset was found.
 
- ref
- Raises
 - Notes - This method simply returns - Noneand does not raise an exception even when the set of collections searched is intrinsically incompatible with the dataset type, e.g. if- datasetType.isCalibration() is False, but only- CALIBRATIONcollections are being searched. This may make it harder to debug some lookup failures, but the behavior is intentional; we consider it more important that failed searches are reported consistently, regardless of the reason, and that adding additional collections that do not contain a match to the search path never changes the behavior.
 - 
classmethod forceRegistryConfig(config: Optional[Union[ButlerConfig, RegistryConfig, Config, str]]) → RegistryConfig¶
- Force the supplied config to a - RegistryConfig.- Parameters
- configRegistryConfig,ConfigorstrorNone
- Registry configuration, if missing then default configuration will be loaded from registry.yaml. 
 
- config
- Returns
- registry_configRegistryConfig
- A registry config. 
 
- registry_config
 
 - 
classmethod fromConfig(config: Union[ButlerConfig, RegistryConfig, Config, str], butlerRoot: Optional[Union[str, ButlerURI]] = None, writeable: bool = True, defaults: Optional[RegistryDefaults] = None) → Registry¶
- Create - Registrysubclass instance from- config.- Registry database must be initialized prior to calling this method. - Parameters
- configButlerConfig,RegistryConfig,Configorstr
- Registry configuration 
- butlerRootstrorButlerURI, optional
- Path to the repository root this - Registrywill manage.
- writeablebool, optional
- If - True(default) create a read-write connection to the database.
- defaultsRegistryDefaults, optional
- Default collection search path and/or output - RUNcollection.
 
- config
- Returns
 - Notes - This class will determine the concrete - Registrysubclass to use from configuration. Each subclass should implement this method.
 - 
abstract getCollectionChain(parent: str) → lsst.daf.butler.registry.wildcards.CollectionSearch¶
- Return the child collections in a - CHAINEDcollection.- Parameters
- parentstr
- Name of the chained collection. Must have already been added via a call to - Registry.registerCollection.
 
- parent
- Returns
- childrenCollectionSearch
- An object that defines the search path of the collection. See Collection expressions for more information. 
 
- children
- Raises
 
 - 
abstract getCollectionDocumentation(collection: str) → Optional[str]¶
- Retrieve the documentation string for a collection. 
 - 
abstract getCollectionSummary(collection: str) → lsst.daf.butler.registry.summaries.CollectionSummary¶
- Return a summary for the given collection. - Parameters
- collectionstr
- Name of the collection for which a summary is to be retrieved. 
 
- collection
- Returns
- summaryCollectionSummary
- Summary of the dataset types and governor dimension values in this collection. 
 
- summary
 
 - 
abstract getCollectionType(name: str) →lsst.daf.butler.registry.CollectionType¶
- Return an enumeration value indicating the type of the given collection. - Parameters
- namestr
- The name of the collection. 
 
- name
- Returns
- typeCollectionType
- Enum value indicating the type of this collection. 
 
- type
- Raises
- MissingCollectionError
- Raised if no collection with the given name exists. 
 
 
 - 
abstract getDataset(id: Union[int, uuid.UUID]) → Optional[lsst.daf.butler.DatasetRef]¶
- Retrieve a Dataset entry. 
 - 
abstract getDatasetLocations(ref:lsst.daf.butler.DatasetRef) → Iterable[str]¶
- Retrieve datastore locations for a given dataset. 
 - 
abstract getDatasetType(name: str) →lsst.daf.butler.DatasetType¶
- Get the - DatasetType.- Parameters
- namestr
- Name of the type. 
 
- name
- Returns
- typeDatasetType
- The - DatasetTypeassociated with the given name.
 
- type
- Raises
- KeyError
- Requested named DatasetType could not be found in registry. 
 
 
 - 
abstract getDatastoreBridgeManager() → DatastoreRegistryBridgeManager¶
- Return an object that allows a new - Datastoreinstance to communicate with this- Registry.- Returns
- managerDatastoreRegistryBridgeManager
- Object that mediates communication between this - Registryand its associated datastores.
 
- manager
 
 - 
abstract 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: Optional[str] = None, expand: bool = True, idGenerationMode: lsst.daf.butler.registry.interfaces._datasets.DatasetIdGenEnum = <DatasetIdGenEnum.UNIQUE: 0>) → List[lsst.daf.butler.DatasetRef]¶
- Insert one or more datasets into the - Registry- This always adds new datasets; to associate existing datasets with a new collection, use - associate.- Parameters
- datasetTypeDatasetTypeorstr
- A - DatasetTypeor the name of one.
- dataIdsIterableofdictorDataCoordinate
- Dimension-based identifiers for the new datasets. 
- runstr, optional
- The name of the run that produced the datasets. Defaults to - self.defaults.run.
- expandbool, optional
- If - True(default), expand data IDs as they are inserted. This is necessary in general to allow datastore to generate file templates, but it may be disabled if the caller can guarantee this is unnecessary.
- idGenerationModeDatasetIdGenEnum, optional
- Specifies option for generating dataset IDs. By default unique IDs are generated for each inserted dataset. 
 
- datasetType
- Returns
- refslistofDatasetRef
- Resolved - DatasetRefinstances for all given data IDs (in the same order).
 
- refs
- Raises
 
 - 
abstract insertDimensionData(element: Union[lsst.daf.butler.DimensionElement, str], *data: Union[Mapping[str, Any],lsst.daf.butler.DimensionRecord], conform: bool = True) → None¶
- Insert one or more dimension records into the database. - Parameters
- elementDimensionElementorstr
- The - DimensionElementor name thereof that identifies the table records will be inserted into.
- datadictorDimensionRecord(variadic)
- One or more records to insert. 
- conformbool, optional
- If - False(- Trueis default) perform no checking or conversions, and assume that- elementis a- DimensionElementinstance and- datais a one or more- DimensionRecordinstances of the appropriate subclass.
 
- element
 
 - 
abstract isWriteable() → bool¶
- Return - Trueif this registry allows write operations, and- Falseotherwise.
 - 
abstract queryCollections(expression: Any = Ellipsis, datasetType: Optional[lsst.daf.butler.core.datasets.type.DatasetType] = None, collectionTypes: Iterable[lsst.daf.butler.registry._collectionType.CollectionType] = frozenset({<CollectionType.RUN: 1>, <CollectionType.TAGGED: 2>, <CollectionType.CHAINED: 3>, <CollectionType.CALIBRATION: 4>}), flattenChains: bool = False, includeChains: Optional[bool] = None) → Iterator[str]¶
- Iterate over the collections whose names match an expression. - Parameters
- expressionAny, optional
- An expression that identifies the collections to return, such as a - str(for full matches),- re.Pattern(for partial matches), or iterable thereof.- can be used to return all collections, and is the default. See Collection expressions for more information.
- datasetTypeDatasetType, optional
- If provided, only yield collections that may contain datasets of this type. This is a conservative approximation in general; it may yield collections that do not have any such datasets. 
- collectionTypesAbstractSet[CollectionType], optional
- If provided, only yield collections of these types. 
- flattenChainsbool, optional
- If - True(- Falseis default), recursively yield the child collections of matching- CHAINEDcollections.
- includeChainsbool, optional
- If - True, yield records for matching- CHAINEDcollections. Default is the opposite of- flattenChains: include either CHAINED collections or their children, but not both.
 
- expression
- Yields
- collectionstr
- The name of a collection that matches - expression.
 
- collection
 
 - 
abstract queryDataIds(dimensions: Union[Iterable[Union[lsst.daf.butler.Dimension, str]],lsst.daf.butler.Dimension, str], *, dataId: Optional[Union[lsst.daf.butler.DataCoordinate, Mapping[str, Any]]] = None, datasets: Optional[Any] = None, collections: Optional[Any] = None, where: Optional[str] = None, components: Optional[bool] = None, bind: Optional[Mapping[str, Any]] = None, check: bool = True, **kwargs: Any) →lsst.daf.butler.registry.queries.DataCoordinateQueryResults¶
- Query for data IDs matching user-provided criteria. - Parameters
- dimensionsDimensionorstr, or iterable thereof
- The dimensions of the data IDs to yield, as either - Dimensioninstances or- str. Will be automatically expanded to a complete- DimensionGraph.
- dataIddictorDataCoordinate, optional
- A data ID whose key-value pairs are used as equality constraints in the query. 
- datasetsAny, 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, and- physical_filtervalues to only those for which at least one “raw” dataset exists in- collections. Allowed types include- DatasetType,- 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 identifies the collections to search for datasets, such as a - str(for full matches),- re.Pattern(for partial matches), or iterable thereof.- can be used to search all collections (actually just all- RUNcollections, because this will still find all datasets). If not provided,- self.default.collectionsis used. Ignored unless- datasetsis also passed. See Collection expressions for more information.
- wherestr, 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. 
- componentsbool, optional
- If - True, apply all dataset expression patterns to component dataset type names as well. If- False, never apply patterns to components. If- None(default), apply patterns to components only if their parent datasets were not matched by the expression. Fully-specified component datasets (- stror- DatasetTypeinstances) are always included.
- bindMapping, optional
- Mapping containing literal values that should be injected into the - whereexpression, keyed by the identifiers they replace.
- checkbool, optional
- If - True(default) check the query for consistency before executing it. This may reject some valid queries that resemble common mistakes (e.g. queries for visits without specifying an instrument).
- **kwargs
- Additional keyword arguments are forwarded to - DataCoordinate.standardizewhen processing the- dataIdargument (and may be used to provide a constraining data ID even when the- dataIdargument is- None).
 
- dimensions
- Returns
- dataIdsDataCoordinateQueryResults
- Data IDs matching the given query parameters. These are guaranteed to identify all dimensions ( - DataCoordinate.hasFullreturns- True), but will not contain- DimensionRecordobjects (- DataCoordinate.hasRecordsreturns- False). Call- DataCoordinateQueryResults.expandedon the returned object to fetch those (and consider using- DataCoordinateQueryResults.materializeon the returned object first if the expected number of rows is very large). See documentation for those methods for additional information.
 
- dataIds
- Raises
 
 - 
abstract queryDatasetAssociations(datasetType: Union[str, lsst.daf.butler.core.datasets.type.DatasetType], collections: Any = Ellipsis, *, collectionTypes: Iterable[lsst.daf.butler.registry._collectionType.CollectionType] = frozenset({<CollectionType.RUN: 1>, <CollectionType.TAGGED: 2>, <CollectionType.CHAINED: 3>, <CollectionType.CALIBRATION: 4>}), flattenChains: bool = False) → Iterator[lsst.daf.butler.DatasetAssociation]¶
- Iterate over dataset-collection combinations where the dataset is in the collection. - This method is a temporary placeholder for better support for assocation results in - queryDatasets. It will probably be removed in the future, and should be avoided in production code whenever possible.- Parameters
- datasetTypeDatasetTypeorstr
- A dataset type object or the name of one. 
- collections: `Any`, optional
- An expression that identifies the collections to search for datasets, such as a - str(for full matches),- re.Pattern(for partial matches), or iterable thereof.- can be used to search all collections (actually just all- RUNcollections, because this will still find all datasets). If not provided,- self.default.collectionsis used. See Collection expressions for more information.
- collectionTypesAbstractSet[CollectionType], optional
- If provided, only yield associations from collections of these types. 
- flattenChainsbool, optional
- If - True(default) search in the children of- CHAINEDcollections. If- False,- CHAINEDcollections are ignored.
 
- datasetType
- Yields
- associationDatasetAssociation
- Object representing the relationship beween a single dataset and a single collection. 
 
- association
- Raises
 
 - 
abstract queryDatasetTypes(expression: Any = Ellipsis, *, components: Optional[bool] = None) → Iterator[lsst.daf.butler.DatasetType]¶
- Iterate over the dataset types whose names match an expression. - Parameters
- expressionAny, 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.
- componentsbool, optional
- If - True, apply all expression patterns to component dataset type names as well. If- False, never apply patterns to components. If- None(default), apply patterns to components only if their parent datasets were not matched by the expression. Fully-specified component datasets (- stror- DatasetTypeinstances) are always included.
 
- expression
- Yields
- datasetTypeDatasetType
- A - DatasetTypeinstance whose name matches- expression.
 
- datasetType
 
 - 
abstract queryDatasets(datasetType: Any, *, collections: Optional[Any] = None, dimensions: Optional[Iterable[Union[lsst.daf.butler.Dimension, str]]] = None, dataId: Optional[Union[lsst.daf.butler.DataCoordinate, Mapping[str, Any]]] = None, where: Optional[str] = None, findFirst: bool = False, components: Optional[bool] = None, bind: Optional[Mapping[str, Any]] = None, check: bool = True, **kwargs: Any) →lsst.daf.butler.registry.queries.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 value- can be used to query all dataset types. See DatasetType expressions for more information.
- collections: optional
- An expression that identifies the collections to search, such as a - str(for full matches),- re.Pattern(for partial matches), or iterable thereof.- can be used to search all collections (actually just all- RUNcollections, because this will still find all datasets). If not provided,- self.default.collectionsis used. See Collection expressions for more information.
- dimensionsIterableofDimensionorstr
- 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 - dataIdor- wherearguments.
- dataIddictorDataCoordinate, optional
- A data ID whose key-value pairs are used as equality constraints in the query. 
- wherestr, 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. 
- findFirstbool, optional
- If - True(- Falseis default), for each result data ID, only yield one- DatasetRefof each- DatasetType, from the first collection in which a dataset of that dataset type appears (according to the order of- collectionspassed in). If- True,- collectionsmust not contain regular expressions and may not be- .
- componentsbool, optional
- If - True, apply all dataset expression patterns to component dataset type names as well. If- False, never apply patterns to components. If- None(default), apply patterns to components only if their parent datasets were not matched by the expression. Fully-specified component datasets (- stror- DatasetTypeinstances) are always included.
- bindMapping, optional
- Mapping containing literal values that should be injected into the - whereexpression, keyed by the identifiers they replace.
- checkbool, optional
- If - True(default) check the query for consistency before executing it. This may reject some valid queries that resemble common mistakes (e.g. queries for visits without specifying an instrument).
- **kwargs
- Additional keyword arguments are forwarded to - DataCoordinate.standardizewhen processing the- dataIdargument (and may be used to provide a constraining data ID even when the- dataIdargument is- None).
 
- Returns
- refsqueries.DatasetQueryResults
- Dataset references matching the given query criteria. Nested data IDs are guaranteed to include values for all implied dimensions (i.e. - DataCoordinate.hasFullwill return- True), but will not include dimension records (- DataCoordinate.hasRecordswill be- False) unless- expandedis called on the result object (which returns a new one).
 
- refs
- Raises
 - 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 to- queryDatasetswith the returned data IDs passed as constraints.
 - 
abstract queryDimensionRecords(element: Union[lsst.daf.butler.DimensionElement, str], *, dataId: Optional[Union[lsst.daf.butler.DataCoordinate, Mapping[str, Any]]] = None, datasets: Optional[Any] = None, collections: Optional[Any] = None, where: Optional[str] = None, components: Optional[bool] = None, bind: Optional[Mapping[str, Any]] = None, check: bool = True, **kwargs: Any) → Iterator[lsst.daf.butler.DimensionRecord]¶
- Query for dimension information matching user-provided criteria. - Parameters
- elementDimensionElementorstr
- The dimension element to obtain records for. 
- dataIddictorDataCoordinate, optional
- A data ID whose key-value pairs are used as equality constraints in the query. 
- datasetsAny, 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 identifies the collections to search for datasets, such as a - str(for full matches),- re.Pattern(for partial matches), or iterable thereof.- can be used to search all collections (actually just all- RUNcollections, because this will still find all datasets). If not provided,- self.default.collectionsis used. Ignored unless- datasetsis also passed. See Collection expressions for more information.
- wherestr, optional
- A string expression similar to a SQL WHERE clause. See - queryDataIdsand Dimension expressions for more information.
- componentsbool, optional
- Whether to apply dataset expressions to components as well. See - queryDataIdsfor more information.
- bindMapping, optional
- Mapping containing literal values that should be injected into the - whereexpression, keyed by the identifiers they replace.
- checkbool, optional
- If - True(default) check the query for consistency before executing it. This may reject some valid queries that resemble common mistakes (e.g. queries for visits without specifying an instrument).
- **kwargs
- Additional keyword arguments are forwarded to - DataCoordinate.standardizewhen processing the- dataIdargument (and may be used to provide a constraining data ID even when the- dataIdargument is- None).
 
- element
- Returns
- dataIdsDataCoordinateQueryResults
- Data IDs matching the given query parameters. 
 
- dataIds
 
 - 
abstract refresh() → None¶
- Refresh all in-memory state by querying the database. - This may be necessary to enable querying for entities added by other registry instances after this one was constructed. 
 - 
abstract registerCollection(name: str, type: lsst.daf.butler.registry._collectionType.CollectionType = <CollectionType.TAGGED: 2>, doc: Optional[str] = None) → None¶
- Add a new collection if one with the given name does not exist. - Parameters
- namestr
- The name of the collection to create. 
- typeCollectionType
- Enum value indicating the type of collection to create. 
- docstr, optional
- Documentation string for the collection. 
 
- name
 - Notes - This method cannot be called within transactions, as it needs to be able to perform its own transaction to be concurrent. 
 - 
abstract registerDatasetType(datasetType:lsst.daf.butler.DatasetType) → bool¶
- Add a new - DatasetTypeto the Registry.- It is not an error to register the same - DatasetTypetwice.- Parameters
- datasetTypeDatasetType
- The - DatasetTypeto be added.
 
- datasetType
- 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. 
 - 
abstract registerRun(name: str, doc: Optional[str] = None) → None¶
- Add a new run if one with the given name does not exist. - Parameters
 - Notes - This method cannot be called within transactions, as it needs to be able to perform its own transaction to be concurrent. 
 - 
abstract removeCollection(name: str) → None¶
- Completely remove the given collection. - Parameters
- namestr
- The name of the collection to remove. 
 
- name
- 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; the- CHAINEDcollection must be deleted or redefined first.
 - 
abstract removeDatasetType(name: str) → None¶
- Remove the named - DatasetTypefrom the registry.- Warning - Registry implementations can cache the dataset type definitions. This means that deleting the dataset type definition may result in unexpected behavior from other butler processes that are active that have not seen the deletion. - Parameters
- namestr
- Name of the type to be removed. 
 
- name
- Raises
- lsst.daf.butler.registry.OrphanedRecordError
- Raised if an attempt is made to remove the dataset type definition when there are already datasets associated with it. 
 
 - Notes - If the dataset type is not registered the method will return without action. 
 - 
abstract removeDatasets(refs: Iterable[lsst.daf.butler.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
- refsIterableofDatasetRef
- References to the datasets to be removed. Must include a valid - idattribute, and should be considered invalidated upon return.
 
- refs
- Raises
- AmbiguousDatasetError
- Raised if any - ref.idis- None.
- OrphanedRecordError
- Raised if any dataset is still present in any - Datastore.
 
 
 - 
resetConnectionPool() → None¶
- Reset connection pool for registry if relevant. - This operation can be used reset connections to servers when using registry with fork-based multiprocessing. This method should usually be called by the child process immediately after the fork. - The base class implementation is a no-op. 
 - 
abstract setCollectionChain(parent: str, children: Any, *, flatten: bool = False) → None¶
- Define or redefine a - CHAINEDcollection.- Parameters
- parentstr
- Name of the chained collection. Must have already been added via a call to - Registry.registerCollection.
- childrenAny
- An expression defining an ordered search of child collections, generally an iterable of - str; see Collection expressions for more information.
- flattenbool, optional
- If - True(- Falseis default), recursively flatten out any nested- CHAINEDcollections in- childrenfirst.
 
- parent
- Raises
 
 - 
abstract setCollectionDocumentation(collection: str, doc: Optional[str]) → None¶
- Set the documentation string for a collection. 
 - 
abstract syncDimensionData(element: Union[lsst.daf.butler.DimensionElement, str], row: Union[Mapping[str, Any],lsst.daf.butler.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
- elementDimensionElementorstr
- The - DimensionElementor name thereof that identifies the table records will be inserted into.
- rowdictorDimensionRecord
- The record to insert. 
- conformbool, optional
- If - False(- Trueis default) perform no checking or conversions, and assume that- elementis a- DimensionElementinstance and- datais a one or more- DimensionRecordinstances of the appropriate subclass.
 
- element
- Returns
- Raises
- ConflictingDefinitionError
- Raised if the record exists in the database (according to primary key lookup) but is inconsistent with the given one. 
 
 
 
-