ursa.temporal

Ursa subclasses of the core temporaldata primitives.

These classes shadow the upstream names so callers do from ursa import Data, IrregularTimeSeries, RegularTimeSeries and get drop-in replacements that carry catalog-row metadata. With metadata=None each class is behaviorally identical to its upstream parent.

Future cloud-streaming subclasses (R2 Zarr / Lance — ENG-899) will subclass these classes, inheriting the metadata slot for free.

Storage convention follows upstream’s pattern (_sampling_ratesampling_rate property): the row is stored as the private attribute _metadata so it bypasses ArrayDict.__setattr__’s ndarray check, and exposed via a read-only metadata property. The single slice override per class is needed because upstream’s slice builds the result via __class__.__new__ and only copies the private attrs it knows about (_sampling_rate, _timekeys, _domain).

Module Contents

Classes

Data

temporaldata.Data carrying optional :class:RecordingRow metadata.

IrregularTimeSeries

temporaldata.IrregularTimeSeries carrying optional :class:ModalityRow metadata.

RegularTimeSeries

temporaldata.RegularTimeSeries carrying optional :class:ModalityRow metadata.

Functions

Data

API

ursa.temporal._check_metadata(value: Any, expected_type: type, owner_name: str) None[source]
class ursa.temporal.Data(*, metadata: ursa.catalog.schemas.RecordingRow | None = None, **kwargs: Any)[source]

Bases: temporaldata.Data

temporaldata.Data carrying optional :class:RecordingRow metadata.

Initialization

property metadata: ursa.catalog.schemas.RecordingRow | None
slice(start: float, end: float, reset_origin: bool = True) ursa.temporal.Data[source]
class ursa.temporal.IrregularTimeSeries(timestamps: numpy.ndarray, *, metadata: ursa.catalog.schemas.ModalityRow | None = None, **kwargs: Any)[source]

Bases: temporaldata.IrregularTimeSeries

temporaldata.IrregularTimeSeries carrying optional :class:ModalityRow metadata.

Initialization

property metadata: ursa.catalog.schemas.ModalityRow | None
slice(start: float, end: float, reset_origin: bool = True) ursa.temporal.IrregularTimeSeries[source]
class ursa.temporal.RegularTimeSeries(*, metadata: ursa.catalog.schemas.ModalityRow | None = None, **kwargs: Any)[source]

Bases: temporaldata.RegularTimeSeries

temporaldata.RegularTimeSeries carrying optional :class:ModalityRow metadata.

Initialization

property metadata: ursa.catalog.schemas.ModalityRow | None
slice(start: float, end: float, reset_origin: bool = True) ursa.temporal.RegularTimeSeries[source]
ursa.temporal.__all__

[‘Data’, ‘IrregularTimeSeries’, ‘RegularTimeSeries’]