Исходный код EJIO.utils.dataset.dataset_storage
## /utils/dataset/dataset_storage.py
from abc import abstractmethod
from typing import Protocol, Any
__all__ = [
'DatasetStorage',
]
[документация]
class DatasetStorage(Protocol):
"""
Интерфейс для классов-хранилищ табличных наборов данных (датасетов).
"""
__slots__ = ()
[документация]
@staticmethod
@abstractmethod
def save[T](data: list[dict[str, T]], filename: str, **kwargs: Any) -> None:
"""
Сохранить массив табличных строк в файл.
:param data: Список словарей для сериализации.
:param filename: Путь к файлу для сохранения.
:param kwargs: Ключевые параметры для хранилища данных.
:raises NotImplementedError: Должен быть реализован в подклассе.
"""
raise NotImplementedError
[документация]
@staticmethod
@abstractmethod
def load[T](filename: str, **kwargs: Any) -> list[dict[str, T]]:
"""
Загрузить массив табличных строк из файла.
:param filename: Путь к файлу для загрузки.
:param kwargs: Ключевые параметры для хранилища данных.
:return: Список словарей, полученный из строки.
:raises NotImplementedError: Должен быть реализован в подклассе.
"""
raise NotImplementedError