Source code for tempor.models.clairvoyance2.data._utils

# mypy: ignore-errors

from typing import TypeVar

from .dataformat import TimeSeries, TimeSeriesSamples

THasTimeIndex = TypeVar("THasTimeIndex", TimeSeries, TimeSeriesSamples)


[docs]def time_index_equal(a: THasTimeIndex, b: THasTimeIndex) -> bool: if isinstance(a, TimeSeries): return _time_index_equal__time_series(a, b) # type: ignore elif isinstance(a, TimeSeriesSamples): return _time_index_equal__time_series_samples(a, b) # type: ignore else: raise TypeError(f"Unexpected type encountered: {type(a)}")
def _time_index_equal__time_series(a: TimeSeries, b: TimeSeries) -> bool: if len(a.time_index) != len(b.time_index): return False else: return (a.time_index == b.time_index).all() # type: ignore def _time_index_equal__time_series_samples(a: TimeSeriesSamples, b: TimeSeriesSamples) -> bool: if a.sample_indices != b.sample_indices: return False return all(_time_index_equal__time_series(a_, b_) for a_, b_ in zip(a, b))