Source code for tad.cdata

# src/tad/data/cdata.py
from __future__ import annotations

from abc import ABC
from typing import Any, Optional, Sequence

import numpy as np

from .adata import AData


[docs] class CData(AData, ABC): """ Abstract base class for computational/simulation data sources. CData provides a place to store explicit time vectors and model outputs, but keeps the core contract defined by AData: export to a Raster. """ def __init__( self, fsample: float, channel_ids: Sequence[Any], electrode_labels: Optional[Sequence[Any]] = None, mask: Optional[Sequence[bool]] = None, time_vector: Optional[np.ndarray] = None, model_name: Optional[str] = None, ) -> None: super().__init__( fsample=fsample, channel_ids=channel_ids, electrode_labels=electrode_labels, mask=mask, ) self.time_vector: Optional[np.ndarray] = None if time_vector is None else np.asarray(time_vector) if self.time_vector is not None and self.time_vector.ndim != 1: raise ValueError("time_vector must be a 1D numpy array (seconds).") self.model_name: Optional[str] = model_name # Optional container for arbitrary simulation outputs (trajectories, spikes, etc.) self.model_output: Any = None