Registry¶
- 
class lsst.daf.butler.Registry(registryConfig, schemaConfig=None, dimensionConfig=None, create=False)¶
- Bases: - object- Registry interface. - Parameters: - registryConfig : RegistryConfig
- Registry configuration. 
- schemaConfig : SchemaConfig, optional
- Schema configuration. 
- dimensionConfig : DimensionConfigorConfigor
- DimensionGraphconfiguration.
 - Attributes Summary - defaultConfigFile- Path to configuration defaults. - limited- If True, this Registry does not maintain Dimension metadata or relationships ( - bool).- pixelization- Object that interprets SkyPix Dimension values ( - lsst.sphgeom.Pixelization).- Methods Summary - addDataset(datasetType, dataId, run[, …])- Adds a Dataset entry to the - Registry- addDatasetLocation(ref, datastoreName)- Add datastore name locating a given dataset. - addDimensionEntry(dimension[, dataId, entry])- Add a new - Dimensionentry.- addExecution(execution)- Add a new - Executionto the- Registry.- addQuantum(quantum)- Add a new - Quantumto the- Registry.- addRun(run)- Add a new - Runto the- Registry.- associate(collection, refs)- Add existing Datasets to a collection, possibly creating the collection in the process. - attachComponent(name, parent, component)- Attach a component to a dataset. - disassociate(collection, refs[, remove])- Remove existing Datasets from a collection. - ensureRun(run)- Conditionally add a new - Runto the- Registry.- expandDataId([dataId, dimension, metadata, …])- Expand a data ID to include additional information. - find(collection, datasetType[, dataId])- Lookup a dataset. - findDimensionEntry(dimension[, dataId])- Return a - Dimensionentry corresponding to a- DataId.- fromConfig(registryConfig[, schemaConfig, …])- Create - Registrysubclass instance from- config.- getDataset(id)- Retrieve a Dataset entry. - getDatasetLocations(ref)- Retrieve datastore locations for a given dataset. - getDatasetType(name)- Get the - DatasetType.- getExecution(id)- Retrieve an Execution. - getQuantum(id)- Retrieve an Quantum. - getRun([id, collection])- Get a - Runcorresponding to its collection or id- makeDatabaseDict(table, types, key, value)- Construct a DatabaseDict backed by a table in the same database as this Registry. - makeRun(collection)- Create a new - Runin the- Registryand return it.- markInputUsed(quantum, ref)- Record the given - DatasetRefas an actual (not just predicted) input of the given- Quantum.- registerDatasetType(datasetType)- Add a new - DatasetTypeto the Registry.- removeDatasetLocation(datastoreName, ref)- Remove datastore location associated with this dataset. - selectDimensions(originInfo, expression, …)- Evaluate a filter expression and lists of - DatasetTypesand return a set of data unit values.- setConfigRoot(root, config, full)- Set any filesystem-dependent config options for this Registry to be appropriate for a new empty repository with the given root. - setDimensionRegion([dataId, update, region])- Set the region field for a Dimension instance or a combination thereof and update associated spatial join tables. - transaction()- Optionally implemented in - Registrysubclasses to provide exception safety guarantees in case an exception is raised in the enclosed block.- Attributes Documentation - 
defaultConfigFile= None¶
- Path to configuration defaults. Relative to $DAF_BUTLER_DIR/config or absolute path. Can be None if no defaults specified. 
 - 
pixelization¶
- Object that interprets SkyPix Dimension values ( - lsst.sphgeom.Pixelization).- Nonefor limited registries.
 - Methods Documentation - 
addDataset(datasetType, dataId, run, producer=None, recursive=False, **kwds)¶
- Adds a Dataset entry to the - Registry- This always adds a new Dataset; to associate an existing Dataset with a new collection, use - associate.- Parameters: - datasetType : DatasetTypeorstr
- A - DatasetTypeor the name of one.
- dataId : dictorDataId
- A - dict-like object containing the- Dimensionlinks that identify the dataset within a collection.
- run : Run
- The - Runinstance that produced the Dataset. Ignored if- produceris passed (- producer.runis then used instead). A Run must be provided by one of the two arguments.
- producer : Quantum
- Unit of work that produced the Dataset. May be - Noneto store no provenance information, but if present the- Quantummust already have been added to the Registry.
- recursive : bool
- If True, recursively add Dataset and attach entries for component Datasets as well. 
- kwds
- Additional keyword arguments passed to the - DataIdconstructor to convert- dataIdto a true- DataIdor augment an existing one.
 - Returns: - ref : DatasetRef
- A newly-created - DatasetRefinstance.
 - Raises: - ValueError
- If a Dataset with the given - DatasetRefalready exists in the given collection.
- Exception
- If - dataIdcontains unknown or invalid- Dimensionentries.
 
- datasetType : 
 - 
addDatasetLocation(ref, datastoreName)¶
- Add datastore name locating a given dataset. - Typically used by - Datastore.- Parameters: - ref : DatasetRef
- A reference to the dataset for which to add storage information. 
- datastoreName : str
- Name of the datastore holding this dataset. 
 
- ref : 
 - 
addDimensionEntry(dimension, dataId=None, entry=None, **kwds)¶
- Add a new - Dimensionentry.- dimension : strorDimension
- Either a Dimensionobject or the name of one.
- dataId : dictorDataId, optional
- A dict-like object containing theDimensionlinks that form the primary key of the row to insert. If this is a fullDataIdobject,dataId.entries[dimension]will be updated withentryand then inserted into theRegistry.
- entry : dict
- Dictionary that maps column name to column value.
- kwds
- Additional keyword arguments passed to the DataIdconstructor to convertdataIdto a trueDataIdor augment an existing one.
 - If - valuesincludes a “region” key,- setDimensionRegionwill automatically be called to set it any associated spatial join tables. Region fields associated with a combination of Dimensions must be explicitly set separately.- Returns: - dataId : DataId
- A Data ID for exactly the given dimension that includes the added entry. 
 - Raises: 
- dimension : 
 - 
addExecution(execution)¶
- Add a new - Executionto the- Registry.- If - execution.idis- Nonethe- Registrywill update it to that of the newly inserted entry.- Parameters: - Raises: - Exception
- If - Executionis already present in the- Registry.
 
 - 
addQuantum(quantum)¶
- Add a new - Quantumto the- Registry.- Parameters: - quantum : Quantum
- Instance to add to the - Registry. The given- Quantummust not already be present in the- Registry(or any other), therefore its:- runattribute must be set to an existing- Run.
- predictedInputsattribute must be fully populated with- DatasetRefs, and its.
- actualInputsand- outputswill be ignored.
 
 
- quantum : 
 - 
addRun(run)¶
- Add a new - Runto the- Registry.- Parameters: - Raises: - ValueError
- If a run already exists with this collection. 
 
 - 
associate(collection, refs)¶
- Add existing Datasets to a collection, possibly creating the collection in the process. - Parameters: - collection : str
- Indicates the collection the Datasets should be associated with. 
- refs : listofDatasetRef
- A - listof- DatasetRefinstances that already exist in this- Registry.
 
- collection : 
 - 
attachComponent(name, parent, component)¶
- Attach a component to a dataset. - Parameters: - name : str
- Name of the component. 
- parent : DatasetRef
- A reference to the parent dataset. Will be updated to reference the component. 
- component : DatasetRef
- A reference to the component dataset. 
 
- name : 
 - 
disassociate(collection, refs, remove=True)¶
- Remove existing Datasets from a collection. - collectionand- refcombinations that are not currently associated are silently ignored.- Parameters: - collection : str
- The collection the Datasets should no longer be associated with. 
- refs : listofDatasetRef
- A - listof- DatasetRefinstances that already exist in this- Registry.
- remove : bool
- If - True, remove Datasets from the- Registryif they are not associated with any collection (including via any composites).
 - Returns: - removed : listofDatasetRef
- If - removeis- True, the- listof- DatasetRefs that were removed.
 
- collection : 
 - 
ensureRun(run)¶
- Conditionally add a new - Runto the- Registry.- If the - run.idis- Noneor a- Runwith this- iddoesn’t exist in the- Registryyet, add it. Otherwise, ensure the provided run is identical to the one already in the registry.- Parameters: - Raises: - ValueError
- If - runalready exists, but is not identical.
 
 - 
expandDataId(dataId=None, *, dimension=None, metadata=None, region=False, update=False, **kwds)¶
- Expand a data ID to include additional information. - expandDataIdalways returns a true- DataIdand ensures that its- entriesdict contains (at least) values for all implied dependencies.- Parameters: - dataId : dictorDataId
- A - dict-like object containing the- Dimensionlinks that include the primary keys of the rows to query. If this is a true- DataId, the object will be updated in-place.
- dimension : Dimensionorstr
- A dimension passed to the - DataIdconstructor to create a true- DataIdor augment an existing one.
- metadata : collections.abc.Mapping, optional
- A mapping from - Dimensionor- strname to column name, indicating fields to read into- dataId.entries. If- dimensionis provided, may instead be a sequence of column names for that dimension.
- region : bool
- If - Trueand the given- DataIdis uniquely associated with a region on the sky, obtain that region from the- Registryand attach it as- dataId.region.
- update : bool
- If - True, assume existing entries and regions in the given- DataIdare out-of-date and should be updated by values in the database. If- False, existing values will be assumed to be correct and database queries will only be executed if they are missing.
- kwds
- Additional keyword arguments passed to the - DataIdconstructor to convert- dataIdto a true- DataIdor augment an existing one.
 - Returns: - dataId : DataId
- A Data ID with its - regionattribute set.
 - Raises: 
- dataId : 
 - 
find(collection, datasetType, dataId=None, **kwds)¶
- Lookup a dataset. - This can be used to obtain a - DatasetRefthat permits the dataset to be read from a- Datastore.- Parameters: - collection : str
- Identifies the collection to search. 
- datasetType : DatasetTypeorstr
- A - DatasetTypeor the name of one.
- dataId : dictorDataId, optional
- A - dict-like object containing the- Dimensionlinks that identify the dataset within a collection.
- kwds
- Additional keyword arguments passed to the - DataIdconstructor to convert- dataIdto a true- DataIdor augment an existing one.
 - Returns: - ref : DatasetRef
- A ref to the Dataset, or - Noneif no matching Dataset was found.
 - Raises: - ValueError
- If dataId is invalid. 
 
- collection : 
 - 
findDimensionEntry(dimension, dataId=None, **kwds)¶
- Return a - Dimensionentry corresponding to a- DataId.- Parameters: - dimension : strorDimension
- Either a - Dimensionobject or the name of one.
- dataId : dictorDataId, optional
- A - dict-like object containing the- Dimensionlinks that form the primary key of the row to retreive. If this is a full- DataIdobject,- dataId.entries[dimension]will be updated with the entry obtained from the- Registry.
- kwds
- Additional keyword arguments passed to the - DataIdconstructor to convert- dataIdto a true- DataIdor augment an existing one.
 - Returns: - Raises: 
- dimension : 
 - 
static fromConfig(registryConfig, schemaConfig=None, dimensionConfig=None, create=False)¶
- Create - Registrysubclass instance from- config.- Uses - registry.clsfrom- configto determine which subclass to instantiate.- Parameters: - registryConfig : ButlerConfig,RegistryConfig,Configorstr
- Registry configuration 
- schemaConfig : SchemaConfig,Configorstr, optional.
- Schema configuration. Can be read from supplied registryConfig if the relevant component is defined and - schemaConfigis- None.
- dimensionConfig : DimensionConfigorConfigor
- str, optional.- DimensionGraphconfiguration. Can be read from supplied registryConfig if the relevant component is defined and- dimensionConfigis- None.
- create : bool
- Assume empty Registry and create a new one. 
 - Returns: 
- registryConfig : 
 - 
getDataset(id)¶
- Retrieve a Dataset entry. - Parameters: - id : int
- The unique identifier for the Dataset. 
 - Returns: - ref : DatasetRef
- A ref to the Dataset, or - Noneif no matching Dataset was found.
 
- id : 
 - 
getDatasetLocations(ref)¶
- Retrieve datastore locations for a given dataset. - Typically used by - Datastore.- Parameters: - ref : DatasetRef
- A reference to the dataset for which to retrieve storage information. 
 - Returns: 
- ref : 
 - 
getDatasetType(name)¶
- 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 : 
 - 
getExecution(id)¶
- Retrieve an Execution. - Parameters: - id : int
- The unique identifier for the Execution. 
 
- id : 
 - 
getRun(id=None, collection=None)¶
- Get a - Runcorresponding to its collection or id- Parameters: - Returns: - Raises: - ValueError
- Must supply one of - collectionor- id.
 
 - 
makeDatabaseDict(table, types, key, value)¶
- Construct a DatabaseDict backed by a table in the same database as this Registry. - Parameters: - table : table
- Name of the table that backs the returned DatabaseDict. If this table already exists, its schema must include at least everything in - types.
- types : dict
- A dictionary mapping - strfield names to type objects, containing all fields to be held in the database.
- key : str
- The name of the field to be used as the dictionary key. Must not be present in - value._fields.
- value : type
- The type used for the dictionary’s values, typically a - namedtuple. Must have a- _fieldsclass attribute that is a tuple of field names (i.e. as defined by- namedtuple); these field names must also appear in the- typesarg, and a- _makeattribute to construct it from a sequence of values (again, as defined by- namedtuple).
 
- table : 
 - 
makeRun(collection)¶
- Create a new - Runin the- Registryand return it.- If a run with this collection already exists, return that instead. - Parameters: - Returns: 
 - 
markInputUsed(quantum, ref)¶
- Record the given - DatasetRefas an actual (not just predicted) input of the given- Quantum.- This updates both the - Registry”s- Quantumtable and the Python- Quantum.actualInputsattribute.- Parameters: - quantum : Quantum
- Producer to update. Will be updated in this call. 
- ref : DatasetRef
- To set as actually used input. 
 - Raises: - KeyError
- If - quantumis not a predicted consumer for- ref.
 
- quantum : 
 - 
registerDatasetType(datasetType)¶
- 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
- DatasetType is not valid for this registry or is already registered but not identical. 
 
- datasetType : 
 - 
removeDatasetLocation(datastoreName, ref)¶
- Remove datastore location associated with this dataset. - Typically used by - Datastorewhen a dataset is removed.- Parameters: - datastoreName : str
- Name of this - Datastore.
- ref : DatasetRef
- A reference to the dataset for which information is to be removed. 
 
- datastoreName : 
 - 
selectDimensions(originInfo, expression, neededDatasetTypes, futureDatasetTypes)¶
- Evaluate a filter expression and lists of - DatasetTypesand return a set of data unit values.- Returned set consists of combinations of units participating in data transformation from - neededDatasetTypesto- futureDatasetTypes, restricted by existing data and filter expression.- Parameters: - originInfo : DatasetOriginInfo
- Object which provides names of the input/output collections. 
- expression : str
- An expression that limits the - Dimensionsand (indirectly) the Datasets returned.
- neededDatasetTypes : listofDatasetTypeorstr
- The - listof- DatasetTypeswhose Dimensions will be included in the returned column set. Output is limited to the the Datasets of these DatasetTypes which already exist in the registry.
- futureDatasetTypes : listofDatasetTypeorstr
- The - listof- DatasetTypeswhose Dimensions will be included in the returned column set. It is expected that Datasets for these DatasetTypes do not exist in the registry, but presently this is not checked.
 - Yields: - row : PreFlightUnitsRow
- Single row is a unique combination of units in a transform. 
 - Raises: 
- originInfo : 
 - 
classmethod setConfigRoot(root, config, full)¶
- Set any filesystem-dependent config options for this Registry to be appropriate for a new empty repository with the given root. - Parameters: - root : str
- Filesystem path to the root of the data repository. 
- config : Config
- A - Configto update. Only the subset understood by this component will be updated. Will not expand defaults.
- full : Config
- A complete config with all defaults expanded that can be converted to a - RegistryConfig. Read-only and will not be modified by this method. Repository-specific options that should not be obtained from defaults when Butler instances are constructed should be copied from- fullto- Config.
 
- root : 
 - 
setDimensionRegion(dataId=None, *, update=True, region=None, **kwds)¶
- Set the region field for a Dimension instance or a combination thereof and update associated spatial join tables. - Parameters: - dataId : dictorDataId
- A - dict-like object containing the- Dimensionlinks that form the primary key of the row to insert or update. If this is a full- DataId,- dataId.regionwill be set to- region(if- regionis not- None) and then used to update or insert into the- Registry.
- update : bool
- If True, existing region information for these Dimensions is being replaced. This is usually required because Dimension entries are assumed to be pre-inserted prior to calling this function. 
- region : lsst.sphgeom.ConvexPolygon, optional
- The region to update or insert into the - Registry. If not present- dataId.regionmust not be- None.
- kwds
- Additional keyword arguments passed to the - DataIdconstructor to convert- dataIdto a true- DataIdor augment an existing one.
 - Returns: - dataId : DataId
- A Data ID with its - regionattribute set.
 - Raises: 
- dataId : 
 - 
transaction()¶
- Optionally implemented in - Registrysubclasses to provide exception safety guarantees in case an exception is raised in the enclosed block.- This context manager may be nested (e.g. any implementation by a - Registrysubclass must nest properly).- Warning - The level of exception safety is not guaranteed by this API. It may implement stong exception safety and roll back any changes leaving the state unchanged, or it may do nothing leaving the underlying - Registrycorrupted. Depending on the implementation in the subclass.
 
- registryConfig :