SqlRegistry¶
- 
class lsst.daf.butler.registries.sqlRegistry.SqlRegistry(registryConfig, schemaConfig, dimensionConfig, create=False)¶
- Bases: - lsst.daf.butler.Registry- Registry backed by a SQL database. - Parameters: - registryConfig : SqlRegistryConfigorstr
- Load configuration 
- schemaConfig : SchemaConfigorstr
- Definition of the schema to use. 
- dimensionConfig : DimensionConfigorConfigor
- DimensionGraphconfiguration.
- create : bool
- Assume registry is empty and create a new one. 
 - 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- SqlRegistry.- addQuantum(quantum)- Add a new - Quantumto the- SqlRegistry.- addRun(run)- Add a new - Runto the- SqlRegistry.- 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- SqlRegistry.- 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- SqlRegistryand return it.- markInputUsed(quantum, ref)- Record the given - DatasetRefas an actual (not just predicted) input of the given- Quantum.- query(sql, **params)- Execute a SQL SELECT statement directly. - queryDataId([dataId, dimension, metadata, …])- Expand a data ID to include additional information. - registerDatasetType(datasetType)- Add a new - DatasetTypeto the SqlRegistry.- 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()- Context manager that implements SQL transactions. - 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- SqlRegistry.- If - execution.idis- Nonethe- SqlRegistrywill update it to that of the newly inserted entry.- Parameters: - execution : Execution
- Instance to add to the - SqlRegistry. The given- Executionmust not already be present in the- SqlRegistry.
 - Raises: - Exception
- If - Executionis already present in the- SqlRegistry.
 
- execution : 
 - 
addQuantum(quantum)¶
- Add a new - Quantumto the- SqlRegistry.- Parameters: - quantum : Quantum
- Instance to add to the - SqlRegistry. The given- Quantummust not already be present in the- SqlRegistry(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- SqlRegistry.- Parameters: - run : Run
- Instance to add to the - SqlRegistry. The given- Runmust not already be present in the- SqlRegistry(or any other). Therefore its- idmust be- Noneand its- collectionmust not be associated with any existing- Run.
 - Raises: - ValueError
- If a run already exists with this collection. 
 
- run : 
 - 
associate(collection, refs)¶
- Add existing Datasets to a collection, possibly creating the collection in the process. - If a DatasetRef with the same exact - dataset_id`is already in a collection nothing is changed. If a DatasetRef with the same DatasetType and dimension values but with different- dataset_idexists in a collection then exception is raised.- Parameters: - collection : str
- Indicates the collection the Datasets should be associated with. 
- refs : listofDatasetRef
- A - listof- DatasetRefinstances that already exist in this- SqlRegistry.
 - Raises: - ValueError
- If a Dataset with the given - DatasetRefalready exists in the given collection.
 
- 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- SqlRegistry.
- remove : bool
- If - True, remove Datasets from the- SqlRegistryif they are not associated with any collection (including via any composites).
 - Returns: 
- collection : 
 - 
ensureRun(run)¶
- Conditionally add a new - Runto the- SqlRegistry.- 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: - run : Run
- Instance to add to the - SqlRegistry.
 - Raises: - ValueError
- If - runalready exists, but is not identical.
 
- run : 
 - 
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: - registry : Registry(subclass)
- A new - Registrysubclass instance.
 
- 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: - run : Run
- The - Runinstance.
 - Raises: - ValueError
- Must supply one of - collectionor- id.
 
- run : 
 - 
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- SqlRegistryand return it.- If a run with this collection already exists, return that instead. - Parameters: - collection : str
- The collection used to identify all inputs and outputs of the - Run.
 - Returns: - run : Run
- A new - Runinstance.
 
- collection : 
 - 
markInputUsed(quantum, ref)¶
- Record the given - DatasetRefas an actual (not just predicted) input of the given- Quantum.- This updates both the - SqlRegistry”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 : 
 - 
query(sql, **params)¶
- Execute a SQL SELECT statement directly. - Named parameters are specified in the SQL query string by preceeding them with a colon. Parameter values are provided as additional keyword arguments. For example: registry.query(“SELECT * FROM Instrument WHERE instrument=:name”, name=”HSC”)- Parameters: - sql : str
- SQL query string. Must be a SELECT statement. 
- **params
- Parameter name-value pairs to insert into the query. 
 - Yields: - row : dict
- The next row result from executing the query. 
 
- sql : 
 - 
queryDataId(dataId=None, *, dimension=None, metadata=None, region=False, **kwds)¶
- Expand a data ID to include additional information. - 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.
- 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 : 
 - 
registerDatasetType(datasetType)¶
- Add a new - DatasetTypeto the SqlRegistry.- 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()¶
- Context manager that implements SQL transactions. - Will roll back any changes to the - SqlRegistrydatabase in case an exception is raised in the enclosed block.- This context manager may be nested. 
 
- registryConfig :