DatasetType¶
- class lsst.daf.butler.DatasetType(name: str, dimensions: Union[DimensionGraph, Iterable[Dimension]], storageClass: Union[StorageClass, str], parentStorageClass: Optional[Union[StorageClass, str]] = None, *, universe: Optional[DimensionUniverse] = None, isCalibration: bool = False)¶
Bases:
objectA named category of Datasets.
Defines how they are organized, related, and stored.
A concrete, final class whose instances represent
DatasetTypes.DatasetTypeinstances may be constructed without aRegistry, but they must be registered viaRegistry.registerDatasetType()before corresponding Datasets may be added.DatasetTypeinstances are immutable.- Parameters:
- name
str A string name for the Dataset; must correspond to the same
DatasetTypeacross all Registries. Names must start with an upper or lowercase letter, and may contain only letters, numbers, and underscores. Component dataset types should contain a single period separating the base dataset type name from the component name (and may be recursive).- dimensions
DimensionGraphor iterable ofDimension Dimensions used to label and relate instances of this
DatasetType. If not aDimensionGraph,universemust be provided as well.- storageClass
StorageClassorstr Instance of a
StorageClassor name ofStorageClassthat defines how thisDatasetTypeis persisted.- parentStorageClass
StorageClassorstr, optional Instance of a
StorageClassor name ofStorageClassthat defines how the composite parent is persisted. Must beNoneif this is not a component. Mandatory if it is a component but can be the special temporary placeholder (DatasetType.PlaceholderParentStorageClass) to allow construction with an intent to finalize later.- universe
DimensionUniverse, optional Set of all known dimensions, used to normalize
dimensionsif it is not already aDimensionGraph.- isCalibration
bool, optional If
True, this dataset type may be included inCALIBRATIONcollections.
- name
Attributes Summary
Placeholder StorageClass that can be used temporarily for a component.
Return the
Dimensions fir this dataset type.Return a string name for the Dataset.
Return the storage class of the composite containing this component.
Return
StorageClassinstance associated with this dataset type.Methods Summary
Return the component name (if defined).
componentTypeName(component)Derive a component dataset type from a composite.
finalizeParentStorageClass(newParent)Finalize the parent storage class definition.
from_json(json_str[, universe, registry])Convert from JSON to a pydantic model.
from_simple(simple[, universe, registry])Construct a new object from the simplified form.
Return if datasets of this type can be in calibration collections.
Return whether this
DatasetTyperefers to a component.Return whether this
DatasetTypeis a composite.Return all component dataset types for this composite.
makeComponentDatasetType(component)Return a component dataset type from a composite.
Return a composite dataset type from the component.
Return the root name of this dataset type and any component.
nameWithComponent(datasetTypeName, componentName)Form a valid DatasetTypeName from a parent and component.
splitDatasetTypeName(datasetTypeName)Return the root name and the component from a composite name.
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
- PlaceholderParentStorageClass = StorageClass('PlaceHolder')¶
Placeholder StorageClass that can be used temporarily for a component.
This can be useful in pipeline construction where we are creating dataset types without a registry.
- VALID_NAME_REGEX = re.compile('^[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*$')¶
- dimensions¶
Return the
Dimensions fir this dataset type.The dimensions label and relate instances of this
DatasetType(DimensionGraph).
- name¶
Return a string name for the Dataset.
Mmust correspond to the same
DatasetTypeacross all Registries.
- parentStorageClass¶
Return the storage class of the composite containing this component.
Note that if DatasetType was constructed with a name of a StorageClass then Butler has to be initialized before using this property. Can be
Noneif this is not a component of a composite. Must be defined if this is a component.
- storageClass¶
Return
StorageClassinstance associated with this dataset type.The
StorageClassdefines how thisDatasetTypeis persisted. Note that if DatasetType was constructed with a name of a StorageClass then Butler has to be initialized before using this property.
Methods Documentation
- component() Optional[str]¶
Return the component name (if defined).
- Returns:
- comp
str Name of component part of DatasetType name.
Noneif thisDatasetTypeis not associated with a component.
- comp
- componentTypeName(component: str) str¶
Derive a component dataset type from a composite.
- Parameters:
- component
str Name of component
- component
- Returns:
- derived
str Compound name of this
DatasetTypeand the component.
- derived
- Raises:
- KeyError
Requested component is not supported by this
DatasetType.
- finalizeParentStorageClass(newParent: StorageClass) None¶
Finalize the parent storage class definition.
Replaces the current placeholder parent storage class with the real parent.
- Parameters:
- newParent
StorageClass The new parent to be associated with this composite dataset type. This replaces the temporary placeholder parent that was specified during construction.
- newParent
- Raises:
- ValueError
Raised if this dataset type is not a component of a composite. Raised if a StorageClass is not given. Raised if the parent currently associated with the dataset type is not a placeholder.
- classmethod from_json(json_str: str, universe: Optional[DimensionUniverse] = None, registry: Optional[Registry] = None) SupportsSimple¶
Convert from JSON to a pydantic model.
- classmethod from_simple(simple: SerializedDatasetType, universe: Optional[DimensionUniverse] = None, registry: Optional[Registry] = None) DatasetType¶
Construct a new object from the simplified form.
This is usally data returned from the
to_simplemethod.- Parameters:
- simple
SerializedDatasetType The value returned by
to_simple().- universe
DimensionUniverse The special graph of all known dimensions of which this graph will be a subset. Can be
Noneif a registry is provided.- registry
lsst.daf.butler.Registry, optional Registry to use to convert simple name of a DatasetType to a full
DatasetType. Can beNoneif a full description of the type is provided along with a universe.
- simple
- Returns:
- datasetType
DatasetType Newly-constructed object.
- datasetType
- isComponent() bool¶
Return whether this
DatasetTyperefers to a component.- Returns:
- isComponent
bool Trueif thisDatasetTypeis a component,Falseotherwise.
- isComponent
- isComposite() bool¶
Return whether this
DatasetTypeis a composite.- Returns:
- isComposite
bool Trueif thisDatasetTypeis a composite type,Falseotherwise.
- isComposite
- makeAllComponentDatasetTypes() List[DatasetType]¶
Return all component dataset types for this composite.
- Returns:
- all
listofDatasetType All the component dataset types. If this is not a composite then returns an empty list.
- all
- makeComponentDatasetType(component: str) DatasetType¶
Return a component dataset type from a composite.
Assumes the same dimensions as the parent.
- Parameters:
- component
str Name of component
- component
- Returns:
- datasetType
DatasetType A new DatasetType instance.
- datasetType
- makeCompositeDatasetType() DatasetType¶
Return a composite dataset type from the component.
- Returns:
- composite
DatasetType The composite dataset type.
- composite
- Raises:
- RuntimeError
Raised if this dataset type is not a component dataset type.
- nameAndComponent() Tuple[str, Optional[str]]¶
Return the root name of this dataset type and any component.
- Returns:
- rootName
str Root name for this
DatasetTypewithout any components.- componentName
str The component if it has been specified, else
None.
- rootName
- static nameWithComponent(datasetTypeName: str, componentName: str) str¶
Form a valid DatasetTypeName from a parent and component.
No validation is performed.
- static splitDatasetTypeName(datasetTypeName: str) Tuple[str, Optional[str]]¶
Return the root name and the component from a composite name.
- Parameters:
- datasetTypeName
str The name of the dataset type, can include a component using a “.”-separator.
- datasetTypeName
- Returns:
Notes
If the dataset type name is
a.b.cthis method will return a root name ofaand a component name ofb.c.
- to_json(minimal: bool = False) str¶
Convert this class to JSON assuming that the
to_simple()returns a pydantic model.
- to_simple(minimal: bool = False) SerializedDatasetType¶
Convert this class to a simple python type.
This makes it suitable for serialization.
- Parameters:
- minimal
bool, optional Use minimal serialization. Requires Registry to convert back to a full type.
- minimal
- Returns:
- simple
SerializedDatasetType The object converted to a class suitable for serialization.
- simple