DatasetRef¶
-
class
lsst.daf.butler.DatasetRef(datasetType: lsst.daf.butler.core.datasets.type.DatasetType, dataId: lsst.daf.butler.core.dimensions._coordinate.DataCoordinate, *, id: Optional[int] = None, run: Optional[str] = None, hasParentId: bool = False, conform: bool = True)¶ Bases:
objectReference 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: - datasetType :
DatasetType The
DatasetTypefor this Dataset.- dataId :
DataCoordinate A mapping of dimensions that labels the Dataset within a Collection.
- id :
int, optional The unique integer identifier assigned when the dataset is created.
- run :
str, optional The name of the run this dataset was associated with when it was created. Must be provided if
idis.- conform :
bool, optional If
True(default), callDataCoordinate.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 passFalseif it can guarantee that the dimensions are already consistent.- hasParentId :
bool, optional If
TruethisDatasetRefis a component that has theidof the composite parent.
Raises: - ValueError
Raised if
runis provided butidis not, or ifidis provided butrunis not.
Attributes Summary
dataIdA mapping of Dimensionprimary key values that labels the dataset within a Collection (DataCoordinate).datasetTypeThe definition of this dataset ( DatasetType).dimensionsThe dimensions associated with the underlying DatasetTypehasParentIdidPrimary key of the dataset ( intorNone).runThe name of the run that produced the dataset. Methods Summary
expanded(dataId)Return a new DatasetRefwith the given expanded data ID.getCheckedId()Return self.id, or raise if it isNone.groupByType(refs)Group an iterable of DatasetRefbyDatasetType.isComponent()Boolean indicating whether this DatasetRefrefers to a component of a composite.isComposite()Boolean indicating whether this DatasetRefis a composite type.makeComponentRef(name)Create a DatasetRefthat corresponds to a component of this dataset.resolved(id, run)Return a new DatasetRefwith the same data ID and dataset type and the given ID and run.unresolved()Return a new DatasetRefwith the same data ID and dataset type, but no ID or run.Attributes Documentation
-
dataId¶ A mapping of
Dimensionprimary key values that labels the dataset within a Collection (DataCoordinate).Cannot be changed after a
DatasetRefis constructed.
-
datasetType¶ The definition of this dataset (
DatasetType).Cannot be changed after a
DatasetRefis constructed.
-
dimensions¶ The dimensions associated with the underlying
DatasetType
-
hasParentId¶
-
id¶ Primary key of the dataset (
intorNone).Cannot be changed after a
DatasetRefis constructed; useresolvedorunresolvedto add or remove this information when creating a newDatasetRef.
-
run¶ The name of the run that produced the dataset.
Cannot be changed after a
DatasetRefis constructed; useresolvedorunresolvedto add or remove this information when creating a newDatasetRef.
Methods Documentation
-
expanded(dataId: lsst.daf.butler.core.dimensions._coordinate.DataCoordinate) → lsst.daf.butler.core.datasets.ref.DatasetRef¶ Return a new
DatasetRefwith the given expanded data ID.Parameters: - dataId :
DataCoordinate Data ID for the new
DatasetRef. Must compare equal to the original data ID.
Returns: - ref :
DatasetRef A new
DatasetRefwith the given data ID.
- dataId :
-
getCheckedId() → int¶ Return
self.id, or raise if it isNone.This trivial method exists to allow operations that would otherwise be natural list comprehensions to check that the ID is not
Noneas well.Returns: Raises: - AmbiguousDatasetError
Raised if
ref.idisNone.
-
static
groupByType(refs: Iterable[lsst.daf.butler.core.datasets.ref.DatasetRef]) → lsst.daf.butler.core.named.NamedKeyDict[lsst.daf.butler.core.datasets.type.DatasetType, typing.List[lsst.daf.butler.core.datasets.ref.DatasetRef]][lsst.daf.butler.core.datasets.type.DatasetType, List[lsst.daf.butler.core.datasets.ref.DatasetRef]]¶ Group an iterable of
DatasetRefbyDatasetType.Parameters: - refs :
Iterable[DatasetRef] DatasetRefinstances to group.
Returns: - grouped :
NamedKeyDict[DatasetType,list[DatasetRef] ] Grouped
DatasetRefinstances.
- refs :
-
isComponent() → bool¶ Boolean indicating whether this
DatasetRefrefers to a component of a composite.Returns: - isComponent :
bool Trueif thisDatasetRefis a component,Falseotherwise.
- isComponent :
-
isComposite() → bool¶ Boolean indicating whether this
DatasetRefis a composite type.Returns: - isComposite :
bool Trueif thisDatasetRefis a composite type,Falseotherwise.
- isComposite :
-
makeComponentRef(name: str) → lsst.daf.butler.core.datasets.ref.DatasetRef¶ Create a
DatasetRefthat corresponds to a component of this dataset.Parameters: - name :
str Name of the component.
Returns: - ref :
DatasetRef A
DatasetRefwith a dataset type that corresponds to the given component, withhasParentId=True, and the same ID and run (which may beNone, if they areNoneinself).
- name :
-
resolved(id: int, run: str) → lsst.daf.butler.core.datasets.ref.DatasetRef¶ Return a new
DatasetRefwith the same data ID and dataset type and the given ID and run.Parameters: Returns: - ref :
DatasetRef A new
DatasetRef.
- ref :
-
unresolved() → lsst.daf.butler.core.datasets.ref.DatasetRef¶ Return a new
DatasetRefwith the same data ID and dataset type, but no ID or run.Returns: - ref :
DatasetRef A new
DatasetRef.
Notes
This can be used to compare only the data ID and dataset type of a pair of
DatasetRefinstances, regardless of whether either is resolved:if ref1.unresolved() == ref2.unresolved(): ...
- ref :
- datasetType :