EJIO.utils.serialization package

Inheritance diagram of EJIO.utils.serialization.serializable.Serializable, EJIO.utils.serialization.storable.Storable, EJIO.utils.serialization.encapsulatable.Encapsulatable, EJIO.utils.serialization.serializer.Serializer, EJIO.utils.serialization.serializer_registry.SerializerRegistry, EJIO.utils.serialization.implementations.json_serializer.JSONSerializer, EJIO.utils.serialization.implementations.toml_serializer.TOMLSerializer, EJIO.utils.serialization.implementations.yaml_serializer.YAMLSerializer, EJIO.utils.serialization.implementations.msgpack_serializer.MessagePackSerializer, EJIO.utils.serialization.implementations.ini_serializer.INISerializer, EJIO.utils.serialization.implementations.xml_serializer.XMLSerializer

Subpackages

Submodules

EJIO.utils.serialization.encapsulatable module

class EJIO.utils.serialization.encapsulatable.Encapsulatable(*args, **kwargs)[исходный код]

Базовые классы: Serializable, Storable, Protocol

Интерфейс сериализуемых и сохраняемых объектов, поддерживающий работу с любым сериализатором. Объекты должны уметь преобразовываться в/из словаря (Dictable), а также работать с внешним сериализатором.

EJIO.utils.serialization.err module

exception EJIO.utils.serialization.err.SerializationError(message: str)[исходный код]

Базовые классы: UtilsBaseError

Исключение, связанное с ошибками сериализации и десериализации.

EJIO.utils.serialization.operations module

EJIO.utils.serialization.operations.deserialize(target_cls: type[T], data: str, serializer_key: str = 'json', /, **kwargs: Any) → T[исходный код]
EJIO.utils.serialization.operations.deserialize(target_cls: None, data: str, serializer_key: str = 'json', /, **kwargs: Any) → dict[str, Any]

Десериализовать данные из строки, используя ключ зарегистрированного сериализатора. Поддерживает как объекты Serializable, так и простые словари.

Параметры:
  • target_cls – Класс восстанавливаемого объекта (должен быть наследником Serializable) либо None.

  • data – Сериализованная строка данных.

  • serializer_key – Строковый ключ сериализатора в глобальном регистре.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Новое состояние экземпляра класса target_cls, или словарь, если target_cls == None.

EJIO.utils.serialization.operations.load(target_cls: type[T], filename: str, serializer_key: str | None = None, /, **kwargs: Any) → T[исходный код]
EJIO.utils.serialization.operations.load(target_cls: None, filename: str, serializer_key: str | None = None, /, **kwargs: Any) → dict[str, Any]

Загрузить и восстановить данные из файла, используя ключ зарегистрированного сериализатора. Поддерживает как объекты Storable, так и простые словари. Автоматически определяет формат по расширению файла, если serializer_key не задан.

Параметры:
  • target_cls – Класс восстанавливаемого объекта (должен быть наследником Storable) либо None.

  • filename – Имя или путь к файлу.

  • serializer_key – Строковый ключ сериализатора в глобальном регистре.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Восстановленный экземпляр класса target_cls, или словарь, если target_cls == None.

EJIO.utils.serialization.operations.register_serializer_for_extension(extension: str, serializer_name: str) → None[исходный код]

Выставляет соответствие между расширением файла и сериализатором, ответственным за файлы с этим расширением.

Параметры:
  • extension – Расширение файла.

  • serializer_name – Имя сериализатора, под которым он зарегестрирован в реестре.

Исключение:

KeyError – Если соответствие для расширения уже задано.

EJIO.utils.serialization.operations.save(obj: type[T], filename: str, serializer_key: str | None = None, /, **kwargs: Any) → None[исходный код]
EJIO.utils.serialization.operations.save(obj: dict[str, Any], filename: str, serializer_key: str | None = None, /, **kwargs: Any) → None

Сохранить данные в файл, используя ключ зарегистрированного сериализатора. Поддерживает как объекты Storable, так и простые словари. Автоматически определяет формат по расширению файла, если serializer_key не задан.

Параметры:
  • obj – Объект, реализующий интерфейс Storable или словарь.

  • filename – Имя или путь к файлу.

  • serializer_key – Строковый ключ сериализатора в глобальном регистре.

  • kwargs – Ключевые параметры для сереализатора.

EJIO.utils.serialization.operations.serialize(obj: T, serializer_key: str = 'json', /, **kwargs: Any) → str[исходный код]
EJIO.utils.serialization.operations.serialize(obj: dict[str, Any], serializer_key: str = 'json', /, **kwargs: Any) → str

Сериализовать данные в строку, используя ключ зарегистрированного сериализатора. Поддерживает как объекты Serializable, так и простые словари.

Параметры:
  • obj – Объект, реализующий интерфейс Serializable или словарь.

  • serializer_key – Строковый ключ сериализатора в глобальном регистре.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Строка с сериализованными данными.

EJIO.utils.serialization.serializable module

class EJIO.utils.serialization.serializable.Serializable(*args, **kwargs)[исходный код]

Базовые классы: Dictable, Protocol

Интерфейс сериализуемых объектов, поддерживающий преобразование в строку и из строки с любым сериализатором. Объекты должны уметь преобразовываться в/из словаря (Dictable), а также работать с внешним сериализатором.

classmethod deserialize(data: str, serializer: type[Serializer], /, **kwargs: Any) → Self[исходный код]

Десериализовать объект из строки с использованием сериализатора.

Параметры:
  • data – сериализованная строка.

  • serializer – Класс сериализатора.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Новый экземпляр объекта.

Исключение:

SerializationError – В случае ошибок десериализации.

serialize(serializer: type[Serializer], /, **kwargs: Any) → str[исходный код]

Сериализовать объект с помощью переданного сериализатора.

Параметры:
  • serializer – Класс сериализатора (например, JSONSerializer).

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Строка с сериализованными данными.

Исключение:

SerializationError – В случае ошибок сериализации.

EJIO.utils.serialization.serializer module

class EJIO.utils.serialization.serializer.Serializer(*args, **kwargs)[исходный код]

Базовые классы: Protocol

Интерфейс для классов-сериализаторов. Определяет методы для преобразования словаря в строку и обратно.

abstractmethod static deserialize(data: str, /, **kwargs: Any) → dict[str, T][исходный код]

Десериализовать строку обратно в словарь.

Параметры:
  • data – Строка для десериализации.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из строки.

Исключение:

NotImplementedError – Должен быть реализован в подклассе.

abstractmethod static load(filename: str, /, **kwargs: Any) → dict[str, T][исходный код]

Загрузить словарь из файла.

Параметры:
  • filename – Путь к файлу для загрузки.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из строки.

Исключение:

NotImplementedError – Должен быть реализован в подклассе.

abstractmethod static save(data: dict[str, T], filename: str, /, **kwargs: Any) → None[исходный код]

Сохранить словарь в файл.

Параметры:
  • data – Словарь для сериализации.

  • filename – Путь к файлу для сохранения.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

NotImplementedError – Должен быть реализован в подклассе.

abstractmethod static serialize(data: dict[str, T], /, **kwargs: Any) → str[исходный код]

Сериализовать словарь в строку.

Параметры:
  • data – Словарь для сериализации.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Строка в формате, поддерживаемом реализующим классом.

Исключение:

NotImplementedError – Должен быть реализован в подклассе.

EJIO.utils.serialization.serializer_registry module

class EJIO.utils.serialization.serializer_registry.SerializerRegistry(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]

Базовые классы: Registry[Serializer]

Регистр сериализаторов, все сериализаторы должны наследовать интерфейс Serializer

EJIO.utils.serialization.serializer_registry.register_serializer(key: str) → Callable[[type[Any]], type[Any]]

Специализированный декоратор для регистрации классов в реестре SerializerRegistry.

Параметры:

key – Уникальный строковый ключ-идентификатор для регистрации.

Результат:

Возвращает исходный класс без изменений.

EJIO.utils.serialization.storable module

class EJIO.utils.serialization.storable.Storable(*args, **kwargs)[исходный код]

Базовые классы: Dictable, Protocol

Интерфейс сохраняемых объектов, поддерживающий сохранение в файл и загрузку из файла любым сериализатором. Объекты должны уметь преобразовываться в/из словаря (Dictable), а также работать с внешним сериализатором.

classmethod load(filename: str, serializer: type[Serializer], /, **kwargs: Any) → Self[исходный код]

Загрузить объект из файла.

Параметры:
  • filename – Имя файла.

  • serializer – Класс сериализатора.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Восстановленный объект.

Исключение:

SerializationError – Если не удалось десериализовать данные.

save(filename: str, serializer: type[Serializer], /, **kwargs: Any) → None[исходный код]

Сохранить объект в файл.

Параметры:
  • filename – Имя файла.

  • serializer – Класс сериализатора.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

SerializationError – Если не удалось сериализовать данные.

Module contents

class EJIO.utils.serialization.Encapsulatable(*args, **kwargs)[исходный код]

Базовые классы: Serializable, Storable, Protocol

Интерфейс сериализуемых и сохраняемых объектов, поддерживающий работу с любым сериализатором. Объекты должны уметь преобразовываться в/из словаря (Dictable), а также работать с внешним сериализатором.

class EJIO.utils.serialization.INISerializer(*args, **kwargs)[исходный код]

Базовые классы: Serializer

Реализация интерфейса Serializer для конфигурационного формата INI. Канонично использует статические методы и современный синтаксис дженериков Python 3.12+.

static deserialize(data: str, /, **kwargs: Any) → dict[str, T][исходный код]

Преобразовать INI-строку обратно в словарь. Если задействована только дефолтная секция, возвращает её в плоском виде.

Параметры:
  • data – INI-строка.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Десериализованный словарь.

Исключение:

SerializationError – При ошибках десериализации.

static load(filename: str, /, **kwargs: Any) → dict[str, T][исходный код]

Загрузить словарь из INI-файла.

Параметры:
  • filename – Путь к файлу для загрузки.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из файла.

Исключение:

SerializationError – При ошибках десериализации.

static save(data: dict[str, T], filename: str, /, **kwargs: Any) → None[исходный код]

Сохранить словарь в INI-файл.

Параметры:
  • data – Сериализуемый словарь.

  • filename – Путь к файлу для сохранения.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

SerializationError – При ошибках сериализации.

static serialize(data: dict[str, T], /, **kwargs: Any) → str[исходный код]

Преобразовать словарь в INI-строку. Если передан плоский словарь, данные автоматически упаковываются в секцию DEFAULT.

Параметры:
  • data – Сериализуемый словарь.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

INI-строка.

Исключение:

SerializationError – При ошибках сериализации.

class EJIO.utils.serialization.JSONSerializer(*args, **kwargs)[исходный код]

Базовые классы: Serializer

Реализация интерфейса Serializer для формата JSON.

static deserialize(data: str, /, **kwargs: Any) → dict[str, T][исходный код]

Преобразовать JSON-строку обратно в словарь.

Параметры:
  • data – JSON-строка.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из строки.

Исключение:

SerializationError – При ошибках десериализации.

static load(filename: str, /, **kwargs: Any) → dict[str, T][исходный код]

Загрузить словарь из JSON-файла.

Параметры:
  • filename – Путь к файлу для загрузки.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из строки.

Исключение:

SerializationError – При ошибках десериализации.

static save(data: dict[str, T], filename: str, /, **kwargs: Any) → None[исходный код]

Сохранить словарь в JSON-файл.

Параметры:
  • data – Сериализуемый словарь.

  • filename – Путь к файлу для сохранения.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

SerializationError – При ошибках сериализации.

static serialize(data: dict[str, T], /, **kwargs: Any) → str[исходный код]

Преобразовать словарь в JSON-строку.

Параметры:
  • data – Сериализуемый словарь.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

JSON-строка.

Исключение:

SerializationError – При ошибках сериализации.

class EJIO.utils.serialization.MessagePackSerializer(*args, **kwargs)[исходный код]

Базовые классы: Serializer

Реализация интерфейса Serializer для бинарного формата MessagePack.

static deserialize(data: str, /, **kwargs: Any) → dict[str, T][исходный код]

Преобразовать закодированную строку обратно в словарь.

Параметры:
  • data – Строковое представление байтового потока.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Десериализованный словарь.

Исключение:

SerializationError – При ошибках десериализации.

static load(filename: str, /, **kwargs: Any) → dict[str, T][исходный код]

Загрузить словарь из бинарного файла MessagePack.

Параметры:
  • filename – Путь к файлу для загрузки.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из файла.

Исключение:

SerializationError – При ошибках десериализации.

static save(data: dict[str, T], filename: str, /, **kwargs: Any) → None[исходный код]

Сохранить словарь в бинарный файл MessagePack.

Параметры:
  • data – Сериализуемый словарь.

  • filename – Путь к файлу для сохранения.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

SerializationError – При ошибках сериализации.

static serialize(data: dict[str, T], /, **kwargs: Any) → str[исходный код]

Преобразовать словарь в строку, закодированную через MessagePack.

Параметры:
  • data – Сериализуемый словарь.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Текстовое представление байтового потока.

Исключение:

SerializationError – При ошибках сериализации.

class EJIO.utils.serialization.Serializable(*args, **kwargs)[исходный код]

Базовые классы: Dictable, Protocol

Интерфейс сериализуемых объектов, поддерживающий преобразование в строку и из строки с любым сериализатором. Объекты должны уметь преобразовываться в/из словаря (Dictable), а также работать с внешним сериализатором.

classmethod deserialize(data: str, serializer: type[Serializer], /, **kwargs: Any) → Self[исходный код]

Десериализовать объект из строки с использованием сериализатора.

Параметры:
  • data – сериализованная строка.

  • serializer – Класс сериализатора.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Новый экземпляр объекта.

Исключение:

SerializationError – В случае ошибок десериализации.

serialize(serializer: type[Serializer], /, **kwargs: Any) → str[исходный код]

Сериализовать объект с помощью переданного сериализатора.

Параметры:
  • serializer – Класс сериализатора (например, JSONSerializer).

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Строка с сериализованными данными.

Исключение:

SerializationError – В случае ошибок сериализации.

class EJIO.utils.serialization.Serializer(*args, **kwargs)[исходный код]

Базовые классы: Protocol

Интерфейс для классов-сериализаторов. Определяет методы для преобразования словаря в строку и обратно.

abstractmethod static deserialize(data: str, /, **kwargs: Any) → dict[str, T][исходный код]

Десериализовать строку обратно в словарь.

Параметры:
  • data – Строка для десериализации.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из строки.

Исключение:

NotImplementedError – Должен быть реализован в подклассе.

abstractmethod static load(filename: str, /, **kwargs: Any) → dict[str, T][исходный код]

Загрузить словарь из файла.

Параметры:
  • filename – Путь к файлу для загрузки.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из строки.

Исключение:

NotImplementedError – Должен быть реализован в подклассе.

abstractmethod static save(data: dict[str, T], filename: str, /, **kwargs: Any) → None[исходный код]

Сохранить словарь в файл.

Параметры:
  • data – Словарь для сериализации.

  • filename – Путь к файлу для сохранения.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

NotImplementedError – Должен быть реализован в подклассе.

abstractmethod static serialize(data: dict[str, T], /, **kwargs: Any) → str[исходный код]

Сериализовать словарь в строку.

Параметры:
  • data – Словарь для сериализации.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Строка в формате, поддерживаемом реализующим классом.

Исключение:

NotImplementedError – Должен быть реализован в подклассе.

class EJIO.utils.serialization.SerializerRegistry(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]

Базовые классы: Registry[Serializer]

Регистр сериализаторов, все сериализаторы должны наследовать интерфейс Serializer

class EJIO.utils.serialization.Storable(*args, **kwargs)[исходный код]

Базовые классы: Dictable, Protocol

Интерфейс сохраняемых объектов, поддерживающий сохранение в файл и загрузку из файла любым сериализатором. Объекты должны уметь преобразовываться в/из словаря (Dictable), а также работать с внешним сериализатором.

classmethod load(filename: str, serializer: type[Serializer], /, **kwargs: Any) → Self[исходный код]

Загрузить объект из файла.

Параметры:
  • filename – Имя файла.

  • serializer – Класс сериализатора.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Восстановленный объект.

Исключение:

SerializationError – Если не удалось десериализовать данные.

save(filename: str, serializer: type[Serializer], /, **kwargs: Any) → None[исходный код]

Сохранить объект в файл.

Параметры:
  • filename – Имя файла.

  • serializer – Класс сериализатора.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

SerializationError – Если не удалось сериализовать данные.

class EJIO.utils.serialization.TOMLSerializer(*args, **kwargs)[исходный код]

Базовые классы: Serializer

Реализация интерфейса Serializer для формата TOML.

static deserialize(data: str, /, **kwargs: Any) → dict[str, T][исходный код]

Преобразовать TOML-строку обратно в словарь.

Параметры:
  • data – TOML-строка.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из строки.

Исключение:

SerializationError – При ошибках десериализации.

static load(filename: str, /, **kwargs: Any) → dict[str, T][исходный код]

Загрузить словарь из TOML-файла.

Параметры:
  • filename – Путь к файлу для загрузки.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из файла.

Исключение:

SerializationError – При ошибках десериализации.

static save(data: dict[str, T], filename: str, /, **kwargs: Any) → None[исходный код]

Сохранить словарь в TOML-файл.

Параметры:
  • data – Сериализуемый словарь.

  • filename – Путь к файлу для сохранения.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

SerializationError – При ошибках сериализации.

static serialize(data: dict[str, T], /, **kwargs: Any) → str[исходный код]

Преобразовать словарь в TOML-строку.

Параметры:
  • data – Сериализуемый словарь.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

TOML-строка.

Исключение:

SerializationError – При ошибках сериализации.

class EJIO.utils.serialization.XMLSerializer(*args, **kwargs)[исходный код]

Базовые классы: Serializer

Реализация интерфейса Serializer для формата XML на базе библиотеки xmltodict.

static deserialize(data: str, /, **kwargs: Any) → dict[str, T][исходный код]

Парсит XML строку обратно в словарь, очищая корневой тег root.

Параметры:
  • data – XML-строка.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Десериализованный словарь.

Исключение:

SerializationError – При ошибках десериализации.

static load(filename: str, /, **kwargs: Any) → dict[str, T][исходный код]

Загрузить словарь из XML-файла.

Параметры:
  • filename – Путь к файлу для загрузки.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из файла.

Исключение:

SerializationError – При ошибках десериализации.

static save(data: dict[str, T], filename: str, /, **kwargs: Any) → None[исходный код]

Сохранить словарь в XML-файл.

Параметры:
  • data – Сериализуемый словарь.

  • filename – Путь к файлу для сохранения.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

SerializationError – При ошибках сериализации.

static serialize(data: dict[str, T], /, **kwargs: Any) → str[исходный код]

Превращает словарь в XML строку, оборачивая её в корневой тег root.

Параметры:
  • data – Сериализуемый словарь.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

XML-строка.

Исключение:

SerializationError – При ошибках сериализации.

class EJIO.utils.serialization.YAMLSerializer(*args, **kwargs)[исходный код]

Базовые классы: Serializer

Реализация интерфейса Serializer для формата YAML.

static deserialize(data: str, /, **kwargs: Any) → dict[str, T][исходный код]

Преобразовать YAML-строку обратно в словарь.

Параметры:
  • data – YAML-строка.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из строки.

Исключение:

SerializationError – При ошибках десериализации.

static load(filename: str, /, **kwargs: Any) → dict[str, T][исходный код]

Загрузить словарь из YAML-файла.

Параметры:
  • filename – Путь к файлу для загрузки.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Словарь, полученный из файла.

Исключение:

SerializationError – При ошибках десериализации.

static save(data: dict[str, T], filename: str, /, **kwargs: Any) → None[исходный код]

Сохранить словарь в YAML-файл.

Параметры:
  • data – Сериализуемый словарь.

  • filename – Путь к файлу для сохранения.

  • kwargs – Ключевые параметры для сереализатора.

Исключение:

SerializationError – При ошибках сериализации.

static serialize(data: dict[str, T], /, **kwargs: Any) → str[исходный код]

Преобразовать словарь в YAML-строку.

Параметры:
  • data – Сериализуемый словарь.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

YAML-строка.

Исключение:

SerializationError – При ошибках сериализации.

EJIO.utils.serialization.deserialize(target_cls: type[T], data: str, serializer_key: str = 'json', /, **kwargs: Any) → T[исходный код]
EJIO.utils.serialization.deserialize(target_cls: None, data: str, serializer_key: str = 'json', /, **kwargs: Any) → dict[str, Any]

Десериализовать данные из строки, используя ключ зарегистрированного сериализатора. Поддерживает как объекты Serializable, так и простые словари.

Параметры:
  • target_cls – Класс восстанавливаемого объекта (должен быть наследником Serializable) либо None.

  • data – Сериализованная строка данных.

  • serializer_key – Строковый ключ сериализатора в глобальном регистре.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Новое состояние экземпляра класса target_cls, или словарь, если target_cls == None.

EJIO.utils.serialization.load(target_cls: type[T], filename: str, serializer_key: str | None = None, /, **kwargs: Any) → T[исходный код]
EJIO.utils.serialization.load(target_cls: None, filename: str, serializer_key: str | None = None, /, **kwargs: Any) → dict[str, Any]

Загрузить и восстановить данные из файла, используя ключ зарегистрированного сериализатора. Поддерживает как объекты Storable, так и простые словари. Автоматически определяет формат по расширению файла, если serializer_key не задан.

Параметры:
  • target_cls – Класс восстанавливаемого объекта (должен быть наследником Storable) либо None.

  • filename – Имя или путь к файлу.

  • serializer_key – Строковый ключ сериализатора в глобальном регистре.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Восстановленный экземпляр класса target_cls, или словарь, если target_cls == None.

EJIO.utils.serialization.register_serializer(key: str) → Callable[[type[Any]], type[Any]]

Специализированный декоратор для регистрации классов в реестре SerializerRegistry.

Параметры:

key – Уникальный строковый ключ-идентификатор для регистрации.

Результат:

Возвращает исходный класс без изменений.

EJIO.utils.serialization.register_serializer_for_extension(extension: str, serializer_name: str) → None[исходный код]

Выставляет соответствие между расширением файла и сериализатором, ответственным за файлы с этим расширением.

Параметры:
  • extension – Расширение файла.

  • serializer_name – Имя сериализатора, под которым он зарегестрирован в реестре.

Исключение:

KeyError – Если соответствие для расширения уже задано.

EJIO.utils.serialization.save(obj: type[T], filename: str, serializer_key: str | None = None, /, **kwargs: Any) → None[исходный код]
EJIO.utils.serialization.save(obj: dict[str, Any], filename: str, serializer_key: str | None = None, /, **kwargs: Any) → None

Сохранить данные в файл, используя ключ зарегистрированного сериализатора. Поддерживает как объекты Storable, так и простые словари. Автоматически определяет формат по расширению файла, если serializer_key не задан.

Параметры:
  • obj – Объект, реализующий интерфейс Storable или словарь.

  • filename – Имя или путь к файлу.

  • serializer_key – Строковый ключ сериализатора в глобальном регистре.

  • kwargs – Ключевые параметры для сереализатора.

EJIO.utils.serialization.serialize(obj: T, serializer_key: str = 'json', /, **kwargs: Any) → str[исходный код]
EJIO.utils.serialization.serialize(obj: dict[str, Any], serializer_key: str = 'json', /, **kwargs: Any) → str

Сериализовать данные в строку, используя ключ зарегистрированного сериализатора. Поддерживает как объекты Serializable, так и простые словари.

Параметры:
  • obj – Объект, реализующий интерфейс Serializable или словарь.

  • serializer_key – Строковый ключ сериализатора в глобальном регистре.

  • kwargs – Ключевые параметры для сереализатора.

Результат:

Строка с сериализованными данными.