Исходный код EJIO.utils.interface.dictable

## /utils/interface/dictable.py

from abc import abstractmethod
from typing import Protocol, Self

__all__ = [
    'Dictable',
]


[документация] class Dictable(Protocol): """ Интерфейс объектов, которые поддерживают преобразование в/из словаря (dict). Используется для сериализации и десериализации объектов. """ __slots__ = ()
[документация] @abstractmethod def to_dict[T](self) -> dict[str, T]: """ Преобразовать объект в словарь. :return: Словарь, отражающий состояние объекта. :raises NotImplementedError: Должен быть реализован в подклассе. """ raise NotImplementedError
[документация] @classmethod @abstractmethod def from_dict[T](cls, data: dict[str, T]) -> Self: """ Восстановить объект из словаря. :param data: Словарь с данными. :return: Новый объект, созданный из этого словаря. :raises NotImplementedError: Должен быть реализован в подклассе. """ raise NotImplementedError