EJIO.utils.serialization package¶

Subpackages¶
- EJIO.utils.serialization.implementations package
- Submodules
- EJIO.utils.serialization.implementations.ini_serializer module
- EJIO.utils.serialization.implementations.json_serializer module
- EJIO.utils.serialization.implementations.msgpack_serializer module
- EJIO.utils.serialization.implementations.toml_serializer module
- EJIO.utils.serialization.implementations.xml_serializer module
- EJIO.utils.serialization.implementations.yaml_serializer module
- Module contents
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 – Ключевые параметры для сереализатора.
- Результат:
Строка с сериализованными данными.