DimensionRecord

class lsst.daf.butler.DimensionRecord(**kwargs: Any)

Bases: object

Base class for the Python representation of database records.

Parameters:
**kwargs

Field values for this record. Unrecognized keys are ignored. If this is the record for a Dimension, its primary key value may be provided with the actual name of the field (e.g. “id” or “name”), the name of the Dimension, or both. If this record class has a “timespan” attribute, “datetime_begin” and “datetime_end” keyword arguments may be provided instead of a single “timespan” keyword argument (but are ignored if a “timespan” argument is provided).

Notes

DimensionRecord subclasses are created dynamically for each DimensionElement in a DimensionUniverse, and are accessible via the DimensionElement.RecordClass attribute. The DimensionRecord base class itself is pure abstract, but does not use the abc module to indicate this because it does not have overridable methods.

Record classes have attributes that correspond exactly to the standard fields in the related database table, plus “region” and “timespan” attributes for spatial and/or temporal elements (respectively).

Instances are usually obtained from a Registry, but can be constructed directly from Python as well.

DimensionRecord instances are immutable.

Attributes Summary

dataId

A dict-like identifier for this record's primary keys (DataCoordinate).

Methods Summary

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.

toDict([splitTimespan])

Return a vanilla dict representation of this record.

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 dict-like identifier for this record’s primary keys (DataCoordinate).

Methods Documentation

classmethod from_json(json_str: str, universe: DimensionUniverse | None = None, registry: Registry | None = None) SupportsSimple

Convert from JSON to a pydantic model.

classmethod from_simple(simple: SerializedDimensionRecord, universe: DimensionUniverse | None = None, registry: Registry | None = None, cacheKey: Hashable | None = None) DimensionRecord

Construct a new object from the simplified form.

This is generally data returned from the to_simple method.

Parameters:
simpleSerializedDimensionRecord

Value return from to_simple.

universeDimensionUniverse

The special graph of all known dimensions of which this graph will be a subset. Can be None if Registry is provided.

registrylsst.daf.butler.Registry, optional

Registry from which a universe can be extracted. Can be None if universe is provided explicitly.

cacheKeyHashable or None

If this is not None, it will be used as a key for any cached reconstruction instead of calculating a value from the serialized format.

Returns:
recordDimensionRecord

Newly-constructed object.

toDict(splitTimespan: bool = False) dict[str, Any]

Return a vanilla dict representation of this record.

Parameters:
splitTimespanbool, optional

If True (False is default) transform any “timespan” key value from a Timespan instance into a pair of regular (“datetime_begin”, “datetime_end”) fields.

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) SerializedDimensionRecord

Convert this class to a simple python type.

This makes it suitable for serialization.

Parameters:
minimalbool, optional

Use minimal serialization. Has no effect on for this class.

Returns:
nameslist

The names of the dimensions.