DatasetType¶
-
class
lsst.daf.butler.DatasetType(name: str, dimensions: Union[DimensionGraph, Iterable[Union[Dimension, str]]], 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 ofDimensionorstr 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.- 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.
See also
Attributes Summary
VALID_NAME_REGEXdimensionsReturn the Dimensions fir this dataset type.nameReturn a string name for the Dataset. parentStorageClassReturn the storage class of the composite containing this component. storageClassReturn StorageClassinstance associated with this dataset type.Methods Summary
component()Return the component name (if defined). componentTypeName(component)Derive a component dataset type from a composite. 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. isCalibration()Return if datasets of this type can be in calibration collections. isComponent()Return whether this DatasetTyperefers to a component.isComposite()Return whether this DatasetTypeis a composite.is_compatible_with(other)Determine if the given DatasetTypeis compatible with this one.makeAllComponentDatasetTypes()Return all component dataset types for this composite. makeComponentDatasetType(component)Return a component dataset type from a composite. makeCompositeDatasetType()Return a composite dataset type from the component. nameAndComponent()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
-
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.
Must 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, None]¶ 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
Returns: - derived :
str Compound name of this
DatasetTypeand the component.
Raises: - KeyError
Requested component is not supported by this
DatasetType.
- component :
-
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 usually 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.
Returns: - datasetType :
DatasetType Newly-constructed object.
- simple :
-
isCalibration() → bool¶ Return if datasets of this type can be in calibration collections.
Returns:
-
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 :
-
is_compatible_with(other: lsst.daf.butler.core.datasets.type.DatasetType) → bool¶ Determine if the given
DatasetTypeis compatible with this one.Compatibility requires a matching name and dimensions and a storage class for this dataset type that can convert the python type associated with the other storage class to this python type.
Parameters: - other :
DatasetType Dataset type to check.
Returns: - other :
-
makeAllComponentDatasetTypes() → List[lsst.daf.butler.core.datasets.type.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) → lsst.daf.butler.core.datasets.type.DatasetType¶ Return a component dataset type from a composite.
Assumes the same dimensions as the parent.
Parameters: - component :
str Name of component
Returns: - datasetType :
DatasetType A new DatasetType instance.
- component :
-
makeCompositeDatasetType() → lsst.daf.butler.core.datasets.type.DatasetType¶ Return a composite dataset type from the component.
Returns: - composite :
DatasetType The composite dataset type.
Raises: - RuntimeError
Raised if this dataset type is not a component dataset type.
- composite :
-
nameAndComponent() → Tuple[str, Optional[str, None]]¶ 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.
Parameters: Returns: - compTypeName :
str Name to use for component DatasetType.
- compTypeName :
-
static
splitDatasetTypeName(datasetTypeName: str) → Tuple[str, Optional[str, None]]¶ 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.
Returns: Notes
If the dataset type name is
a.b.cthis method will return a root name ofaand a component name ofb.c.- datasetTypeName :
-
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) → lsst.daf.butler.core.datasets.type.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.
Returns: - simple :
SerializedDatasetType The object converted to a class suitable for serialization.
- minimal :
- name :