DatasetRef¶
- class lsst.daf.butler.DatasetRef(datasetType: DatasetType, dataId: DataCoordinate, run: str, *, id: UUID | None = None, conform: bool = True, id_generation_mode: DatasetIdGenEnum = DatasetIdGenEnum.UNIQUE, datastore_records: Mapping[str, list[lsst.daf.butler.datastore.stored_file_info.StoredDatastoreItemInfo]] | None = None)¶
- Bases: - object- Reference to a Dataset in a - Registry.- A - DatasetRefmay point to a Dataset that currently does not yet exist (e.g., because it is a predicted input for provenance).- Parameters:
- datasetTypeDatasetType
- The - DatasetTypefor this Dataset.
- dataIdDataCoordinate
- A mapping of dimensions that labels the Dataset within a Collection. 
- runstr
- The name of the run this dataset was associated with when it was created. 
- idDatasetId, optional
- The unique identifier assigned when the dataset is created. If - idis not specified, a new unique ID will be created.
- conformbool, optional
- If - True(default), call- DataCoordinate.standardizeto ensure that the data ID’s dimensions are consistent with the dataset type’s.- DatasetRefinstances for which those dimensions are not equal should not be created in new code, but are still supported for backwards compatibility. New code should only pass- Falseif it can guarantee that the dimensions are already consistent.
- id_generation_modeDatasetIdGenEnum
- ID generation option. - UNIQUEmakes a random UUID4-type ID.- DATAID_TYPEmakes a deterministic UUID5-type ID based on a dataset type name and- dataId.- DATAID_TYPE_RUNmakes a deterministic UUID5-type ID based on a dataset type name, run collection name, and- dataId.
- datastore_recordsDatasetDatastoreRecordsorNone
- Datastore records to attach. 
 
- datasetType
 - Notes - See also Organizing and identifying datasets - Attributes Summary - A mapping of - Dimensionprimary key values that labels the dataset within a Collection (- DataCoordinate).- The definition of this dataset ( - DatasetType).- Dimensions associated with the underlying - DatasetType.- Primary key of the dataset ( - DatasetId).- The name of the run that produced the dataset. - Methods Summary - expanded(dataId)- Return a new - DatasetRefwith the given expanded data ID.- from_json(json_str[, universe, registry])- Convert from JSON to a pydantic model. - from_simple(simple[, universe, registry, ...])- Construct a new object from simplified form. - groupByType(refs)- Group an iterable of - DatasetRefby- DatasetType.- Indicate whether this - DatasetRefrefers to a component.- Boolean indicating whether this - DatasetRefis a composite type.- is_compatible_with(other)- Determine if the given - DatasetRefis compatible with this one.- iter_by_type(refs)- Group an iterable of - DatasetRefby- DatasetTypewith special hooks for custom iterables that can do this efficiently.- makeComponentRef(name)- Create a - DatasetRefthat corresponds to a component.- Create a - DatasetRefof the composite from a component ref.- overrideStorageClass(storageClass)- Create a new - DatasetReffrom this one, but with a modified- DatasetTypethat has a different- StorageClass.- replace(*[, id, run, storage_class, ...])- Create a new - DatasetReffrom this one, but with some modified attributes.- to_json([minimal])- Convert this class to JSON assuming that the - to_simple()returns a pydantic model.- to_simple([minimal])- Convert this class to a simple python type. - Attributes Documentation - dataId: DataCoordinate¶
- A mapping of - Dimensionprimary key values that labels the dataset within a Collection (- DataCoordinate).- Cannot be changed after a - DatasetRefis constructed.
 - datasetType: DatasetType¶
- The definition of this dataset ( - DatasetType).- Cannot be changed after a - DatasetRefis constructed.
 - dimensions¶
- Dimensions associated with the underlying - DatasetType.
 - id¶
- Primary key of the dataset ( - DatasetId).- Cannot be changed after a - DatasetRefis constructed.
 - run: str¶
- The name of the run that produced the dataset. - Cannot be changed after a - DatasetRefis constructed.
 - Methods Documentation - expanded(dataId: DataCoordinate) DatasetRef¶
- Return a new - DatasetRefwith the given expanded data ID.- Parameters:
- dataIdDataCoordinate
- Data ID for the new - DatasetRef. Must compare equal to the original data ID.
 
- dataId
- Returns:
- refDatasetRef
- A new - DatasetRefwith the given data ID.
 
- ref
 
 - classmethod from_json(json_str: str, universe: DimensionUniverse | None = None, registry: Registry | None = None) SupportsSimple¶
- Convert from JSON to a pydantic model. - Parameters:
- cls_typeofSupportsSimple
- The Python type being created. 
- json_strstr
- The JSON string representing this object. 
- universeDimensionUniverseorNone, optional
- The universe required to instantiate some models. Required if - registryis- None.
- registryRegistryorNone, optional
- Registry from which to obtain the dimension universe if an explicit universe has not been given. 
 
- cls_
- Returns:
- modelSupportsSimple
- Pydantic model constructed from JSON and validated. 
 
- model
 
 - classmethod from_simple(simple: SerializedDatasetRef, universe: DimensionUniverse | None = None, registry: Registry | None = None, datasetType: DatasetType | None = None) DatasetRef¶
- Construct a new object from simplified form. - Generally this is data returned from the - to_simplemethod.- Parameters:
- simpledictof [str,Any]
- The value returned by - to_simple().
- universeDimensionUniverse
- The special graph of all known dimensions. Can be - Noneif a registry is provided.
- registrylsst.daf.butler.Registry, optional
- Registry to use to convert simple form of a DatasetRef to a full - DatasetRef. Can be- Noneif a full description of the type is provided along with a universe.
- datasetTypeDatasetType, optional
- If datasetType is supplied, this will be used as the datasetType object in the resulting DatasetRef instead of being read from the - SerializedDatasetRef. This is useful when many refs share the same type as memory can be saved. Defaults to None.
 
- simple
- Returns:
- refDatasetRef
- Newly-constructed object. 
 
- ref
 
 - static groupByType(refs: Iterable[DatasetRef]) NamedKeyDict[DatasetType, list[lsst.daf.butler._dataset_ref.DatasetRef]]¶
- Group an iterable of - DatasetRefby- DatasetType.- Parameters:
- refsIterable[DatasetRef]
- DatasetRefinstances to group.
 
- refs
- Returns:
- groupedNamedKeyDict[DatasetType,list[DatasetRef] ]
- Grouped - DatasetRefinstances.
 
- grouped
 - Notes - When lazy item-iterables are acceptable instead of a full mapping, - iter_by_typecan in some cases be far more efficient.
 - isComponent() bool¶
- Indicate whether this - DatasetRefrefers to a component.- Returns:
- isComponentbool
- Trueif this- DatasetRefis a component,- Falseotherwise.
 
- isComponent
 
 - isComposite() bool¶
- Boolean indicating whether this - DatasetRefis a composite type.- Returns:
- isCompositebool
- Trueif this- DatasetRefis a composite type,- Falseotherwise.
 
- isComposite
 
 - is_compatible_with(other: DatasetRef) bool¶
- Determine if the given - DatasetRefis compatible with this one.- Parameters:
- otherDatasetRef
- Dataset ref to check. 
 
- other
- Returns:
 - Notes - Compatibility requires that the dataId and dataset ID match and the - DatasetTypeis compatible. Compatibility is defined as the storage class associated with the dataset type of the other ref can be converted to this storage class.- Specifically this means that if you have done: - new_ref = ref.overrideStorageClass(sc) - and this is successful, then the guarantee is that: - assert ref.is_compatible_with(new_ref) is True - since we know that the python type associated with the new ref can be converted to the original python type. The reverse is not guaranteed and depends on whether bidirectional converters have been registered. 
 - static iter_by_type(refs: Iterable[DatasetRef]) Iterable[tuple[lsst.daf.butler._dataset_type.DatasetType, collections.abc.Iterable[lsst.daf.butler._dataset_ref.DatasetRef]]]¶
- Group an iterable of - DatasetRefby- DatasetTypewith special hooks for custom iterables that can do this efficiently.- Parameters:
- refsIterable[DatasetRef]
- DatasetRefinstances to group. If this satisfies the- _DatasetRefGroupedIterableprotocol, its- _iter_by_dataset_typemethod will be called.
 
- refs
- Returns:
- groupedIterable[tuple[DatasetType,Iterable[DatasetRef] ]]
- Grouped - DatasetRefinstances.
 
- grouped
 
 - makeComponentRef(name: str) DatasetRef¶
- Create a - DatasetRefthat corresponds to a component.- Parameters:
- namestr
- Name of the component. 
 
- name
- Returns:
- refDatasetRef
- A - DatasetRefwith a dataset type that corresponds to the given component, and the same ID and run (which may be- None, if they are- Nonein- self).
 
- ref
 
 - makeCompositeRef() DatasetRef¶
- Create a - DatasetRefof the composite from a component ref.- Requires that this - DatasetRefis a component.- Returns:
- refDatasetRef
- A - DatasetRefwith a dataset type that corresponds to the composite parent of this component, and the same ID and run (which may be- None, if they are- Nonein- self).
 
- ref
 
 - overrideStorageClass(storageClass: str | StorageClass) DatasetRef¶
- Create a new - DatasetReffrom this one, but with a modified- DatasetTypethat has a different- StorageClass.- Parameters:
- storageClassstrorStorageClass
- The new storage class. 
 
- storageClass
- Returns:
- modifiedDatasetRef
- A new dataset reference that is the same as the current one but with a different storage class in the - DatasetType.
 
- modified
 
 - replace(*, id: DatasetId | None = None, run: str | None = None, storage_class: str | StorageClass | None = None, datastore_records: DatasetDatastoreRecords | None | Literal[False] = False) DatasetRef¶
- Create a new - DatasetReffrom this one, but with some modified attributes.- Parameters:
- idDatasetIdorNone
- If not - Nonethen update dataset ID.
- runstrorNone
- If not - Nonethen update run collection name. If- dataset_idis- Nonethen this will also cause new dataset ID to be generated.
- storage_classstrorStorageClassorNone
- The new storage class. If not - None, replaces existing storage class.
- datastore_recordsDatasetDatastoreRecordsorNone
- New datastore records. If - Noneremove all records. By default datastore records are preserved.
 
- id
- Returns:
- modifiedDatasetRef
- A new dataset reference with updated attributes. 
 
- modified
 
 - to_json(minimal: bool = False) str¶
- Convert this class to JSON assuming that the - to_simple()returns a pydantic model.- Parameters:
- minimalbool
- Return minimal possible representation. 
 
- minimal
 
 - to_simple(minimal: bool = False) SerializedDatasetRef¶
- Convert this class to a simple python type. - This makes it suitable for serialization.