DatasetIdFactory

class lsst.daf.butler.DatasetIdFactory

Bases: object

Factory for dataset IDs (UUIDs).

For now the logic is hard-coded and is controlled by the user-provided value of DatasetIdGenEnum. In the future we may implement a configurable logic that can guess DatasetIdGenEnum value from other parameters.

Attributes Summary

NS_UUID Namespace UUID used for UUID5 generation.

Methods Summary

makeDatasetId(run, datasetType, dataId, …) Generate dataset ID for a dataset.
resolveRef(ref, run, idGenerationMode) Generate resolved dataset reference for predicted datasets.

Attributes Documentation

NS_UUID = UUID('840b31d9-05cd-5161-b2c8-00d32b280d0f')

Namespace UUID used for UUID5 generation. Do not change. This was produced by uuid.uuid5(uuid.NAMESPACE_DNS, "lsst.org").

Methods Documentation

makeDatasetId(run: str, datasetType: lsst.daf.butler.core.datasets.type.DatasetType, dataId: lsst.daf.butler.core.dimensions._coordinate.DataCoordinate, idGenerationMode: lsst.daf.butler.registry.interfaces._datasets.DatasetIdGenEnum) → uuid.UUID

Generate dataset ID for a dataset.

Parameters:
run : str

Name of the RUN collection for the dataset.

datasetType : DatasetType

Dataset type.

dataId : DataCoordinate

Expanded data ID for the dataset.

idGenerationMode : DatasetIdGenEnum

ID generation option. UNIQUE makes a random UUID4-type ID. DATAID_TYPE makes a deterministic UUID5-type ID based on a dataset type name and dataId. DATAID_TYPE_RUN makes a deterministic UUID5-type ID based on a dataset type name, run collection name, and dataId.

Returns:
datasetId : uuid.UUID

Dataset identifier.

resolveRef(ref: lsst.daf.butler.core.datasets.ref.DatasetRef, run: str, idGenerationMode: lsst.daf.butler.registry.interfaces._datasets.DatasetIdGenEnum = <DatasetIdGenEnum.UNIQUE: 0>) → lsst.daf.butler.core.datasets.ref.DatasetRef

Generate resolved dataset reference for predicted datasets.

Parameters:
ref : DatasetRef

Dataset ref, can be already resolved.

run : str

Name of the RUN collection for the dataset.

idGenerationMode : DatasetIdGenEnum

ID generation option. UNIQUE makes a random UUID4-type ID. DATAID_TYPE makes a deterministic UUID5-type ID based on a dataset type name and dataId. DATAID_TYPE_RUN makes a deterministic UUID5-type ID based on a dataset type name, run collection name, and dataId.

Returns:
resolved : DatasetRef

Resolved dataset ref, if input reference is already resolved it is returned without modification.

Notes

This method can only be used for predicted dataset references that do not exist yet in the database. It does not resolve existing dataset references already stored in registry.