Source code for qualia_core.dataset.Dataset

from __future__ import annotations

import sys
from abc import ABC, abstractmethod
from typing import Generic

from qualia_core.datamodel.DataModel import DataModel

if sys.version_info >= (3, 13):
    from typing import TypeVar
else:
    from typing_extensions import TypeVar

T = TypeVar('T')
# Dataset.import_data() may return a different DataModel than Dataset.__call__(), e.g., non-chunked
U = TypeVar('U', default=T)


[docs] class Dataset(ABC, Generic[T, U]): sets: list[str] def __init__(self, sets: list[str] | None = None) -> None: super().__init__() self.sets = sets if sets is not None else list(DataModel.Sets.fieldnames()) @abstractmethod def __call__(self) -> DataModel[T, U]: ...
[docs] @abstractmethod def import_data(self) -> DataModel[U] | None: ...
@property def name(self) -> str: return f'{self.__class__.__name__}'