DimensionRecord

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

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) Return new class from JSON string.
from_simple(simple, Any], 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 form.
to_simple(minimal) Convert this class to a simple python type.

Attributes Documentation

dataId

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

Methods Documentation

classmethod from_json(json_str: str, universe: Optional[DimensionUniverse] = None, registry: Optional[Registry] = None) → SupportsSimple

Return new class from JSON string.

Converts a JSON string created by to_json and return something of the supplied class.

Parameters:
json_str : str

Representation of the dimensions in JSON format as created by to_json().

universe : DimensionUniverse, optional

The special graph of all known dimensions. Passed directly to from_simple().

registry : lsst.daf.butler.Registry, optional

Registry to use to convert simple name of a DatasetType to a full DatasetType. Passed directly to from_simple().

Returns:
constructed : Any

Newly-constructed object.

classmethod from_simple(simple: Dict[str, Any], universe: Optional[DimensionUniverse] = None, registry: Optional[Registry] = None) → DimensionRecord

Construct a new object from the simplified form.

This is generally data returned from the to_simple method.

Parameters:
simple : dict of str

Value return from to_simple.

universe : DimensionUniverse

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

registry : lsst.daf.butler.Registry, optional

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

Returns:
graph : DimensionGraph

Newly-constructed object.

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

Return a vanilla dict representation of this record.

Parameters:
splitTimespan : bool, 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 form.

The class type is not recorded in the JSON so the JSON decoder must know which class is represented.

Parameters:
minimal : bool, optional

Use minimal serialization. Requires Registry to convert back to a full type.

Returns:
json : str

The class in JSON string format.

to_simple(minimal: bool = False) → Dict[str, Any]

Convert this class to a simple python type.

This makes it suitable for serialization.

Parameters:
minimal : bool, optional

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

Returns:
names : list

The names of the dimensions.