EJIO.utils.interface package

Inheritance diagram of EJIO.utils.interface.dictable.Dictable, EJIO.utils.interface.listable.Listable, EJIO.utils.interface.tupleable.Tupleable, EJIO.utils.interface.singleton.Singleton, EJIO.utils.interface.prototype.Prototype, EJIO.utils.interface.prototype.ThreadSafePrototypeMixin, EJIO.utils.interface.static_class.StaticClass, EJIO.utils.interface.static_class.StaticClassMeta, EJIO.utils.interface.isolated_storage.IsolatedStorageMixin, EJIO.utils.interface.read_only_class.ReadOnlyMeta, EJIO.utils.interface.mutable_static_class.MutableStaticMeta, EJIO.utils.interface.mutable_static_class.static_property, EJIO.utils.interface.disposable.Disposable, EJIO.utils.interface.disposable.DisposableMeta

Submodules

EJIO.utils.interface.dictable module

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

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

Интерфейс объектов, которые поддерживают преобразование в/из словаря (dict). Используется для сериализации и десериализации объектов.

abstractmethod classmethod from_dict(data: dict[str, T]) → Self[исходный код]

Восстановить объект из словаря.

Параметры:

data – Словарь с данными.

Результат:

Новый объект, созданный из этого словаря.

Исключение:

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

abstractmethod to_dict() → dict[str, T][исходный код]

Преобразовать объект в словарь.

Результат:

Словарь, отражающий состояние объекта.

Исключение:

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

EJIO.utils.interface.disposable module

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

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

Единый интерфейс-протокол для всех долгоживущих рантайм-структур. Гарантирует автоматическую очистку памяти при завершении работы приложения.

clear() → None[исходный код]

Метод полной очистки внутреннего хранилища/состояния.

Исключение:

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

destroy() → None[исходный код]

Метод полной очистки внутреннего хранилища/состояния.

Исключение:

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

class EJIO.utils.interface.disposable.DisposableMeta(name: str, bases: tuple[type, ...], attrs: dict[str, Any])[исходный код]

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

Метакласс для автоматического рантайм-учета всех уничтожаемых и очищаемых структур.

classmethod dispose_all() → None[исходный код]

Централизованно и каскадно уничтожает и очищает абсолютно все зарегистрированные структуры.

EJIO.utils.interface.isolated_storage module

class EJIO.utils.interface.isolated_storage.IsolatedStorageMixin[исходный код]

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

Миксин, автоматически предоставляющий каждому подклассу собственное изолированное и потокобезопасное хранилище.

EJIO.utils.interface.listable module

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

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

Интерфейс объектов, которые поддерживают преобразование в/из списка (list).

abstractmethod classmethod from_list(data: list[T]) → Self[исходный код]

Восстановить объект из списка.

Параметры:

data – Список с данными.

Результат:

Новый объект, созданный из этого списка.

Исключение:

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

abstractmethod to_list() → list[T][исходный код]

Преобразовать объект в список.

Результат:

Список, отражающий состояние объекта.

Исключение:

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

EJIO.utils.interface.mutable_static_class module

class EJIO.utils.interface.mutable_static_class.MutableStaticMeta(name: str, bases: tuple[type, ...], attrs: dict[str, Any])[исходный код]

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

Метакласс для изменяемых статических структур конфигурации. Запрещает создание экземпляров, но разрешает чтение функций класса как вычисляемых свойств (property) без круглых скобок.

class EJIO.utils.interface.mutable_static_class.static_property(func: Callable[[...], Any])[исходный код]

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

Кастомный маркер-дескриптор для объявления вычисляемых свойств внутри изменяемых статических структур.

EJIO.utils.interface.prototype module

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

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

Протокол, реализующий методы для копирования себя.

clone() → Self[исходный код]

Поверхностное копирование (вложенные объекты остаются общими).

Результат:

Поверхностную копию объекта.

deep_clone() → Self[исходный код]

Глубокое копирование (вложенные объекты тоже дублируются).

Результат:

Полную копию объекта.

class EJIO.utils.interface.prototype.ThreadSafePrototypeMixin(*args: object, **kwargs: object)[исходный код]

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

Миксин-реализация для создания потокобезопасных прототипов. Использует Threading Lock для предотвращения состояния гонки при чтении/копировании.

clone() → Self[исходный код]

Потокобезопасное поверхностное копирование.

Результат:

Поверхностную копию объекта.

deep_clone() → Self[исходный код]

Потокобезопасное глубокое копирование.

Результат:

Полную копию объекта.

EJIO.utils.interface.read_only_class module

class EJIO.utils.interface.read_only_class.ReadOnlyMeta(name: str, bases: tuple[type, ...], attrs: dict[str, Any])[исходный код]

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

Метакласс, реализующий свойства только для чтения на уровне самого класса и полностью запрещающий создание экземпляров.

EJIO.utils.interface.singleton module

class EJIO.utils.interface.singleton.Singleton(*args: object, **kwargs: object)[исходный код]

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

Базовый класс Singleton.

EJIO.utils.interface.static_class module

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

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

Интерфейс-миксин для создания строго статических классов. Запрещает создание любых экземпляров данного класса или его наследников.

class EJIO.utils.interface.static_class.StaticClassMeta(name: str, bases: tuple[type, ...], attrs: dict[str, Any])[исходный код]

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

Метакласс, запрещающий создание экземпляров.

EJIO.utils.interface.tupleable module

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

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

Интерфейс объектов, которые поддерживают преобразование в/из кортеж (tuple).

abstractmethod classmethod from_tuple(data: list[T]) → Self[исходный код]

Восстановить объект из кортежа.

Параметры:

data – Кортеж с данными.

Результат:

Новый объект, созданный из этого кортежа.

Исключение:

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

abstractmethod to_tuple() → list[T][исходный код]

Преобразовать объект в кортеж.

Результат:

Кортеж, отражающий состояние объекта.

Исключение:

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

Module contents

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

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

Интерфейс объектов, которые поддерживают преобразование в/из словаря (dict). Используется для сериализации и десериализации объектов.

abstractmethod classmethod from_dict(data: dict[str, T]) → Self[исходный код]

Восстановить объект из словаря.

Параметры:

data – Словарь с данными.

Результат:

Новый объект, созданный из этого словаря.

Исключение:

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

abstractmethod to_dict() → dict[str, T][исходный код]

Преобразовать объект в словарь.

Результат:

Словарь, отражающий состояние объекта.

Исключение:

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

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

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

Единый интерфейс-протокол для всех долгоживущих рантайм-структур. Гарантирует автоматическую очистку памяти при завершении работы приложения.

clear() → None[исходный код]

Метод полной очистки внутреннего хранилища/состояния.

Исключение:

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

destroy() → None[исходный код]

Метод полной очистки внутреннего хранилища/состояния.

Исключение:

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

class EJIO.utils.interface.DisposableMeta(name: str, bases: tuple[type, ...], attrs: dict[str, Any])[исходный код]

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

Метакласс для автоматического рантайм-учета всех уничтожаемых и очищаемых структур.

classmethod dispose_all() → None[исходный код]

Централизованно и каскадно уничтожает и очищает абсолютно все зарегистрированные структуры.

class EJIO.utils.interface.IsolatedStorageMixin[исходный код]

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

Миксин, автоматически предоставляющий каждому подклассу собственное изолированное и потокобезопасное хранилище.

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

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

Интерфейс объектов, которые поддерживают преобразование в/из списка (list).

abstractmethod classmethod from_list(data: list[T]) → Self[исходный код]

Восстановить объект из списка.

Параметры:

data – Список с данными.

Результат:

Новый объект, созданный из этого списка.

Исключение:

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

abstractmethod to_list() → list[T][исходный код]

Преобразовать объект в список.

Результат:

Список, отражающий состояние объекта.

Исключение:

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

class EJIO.utils.interface.MutableStaticMeta(name: str, bases: tuple[type, ...], attrs: dict[str, Any])[исходный код]

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

Метакласс для изменяемых статических структур конфигурации. Запрещает создание экземпляров, но разрешает чтение функций класса как вычисляемых свойств (property) без круглых скобок.

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

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

Протокол, реализующий методы для копирования себя.

clone() → Self[исходный код]

Поверхностное копирование (вложенные объекты остаются общими).

Результат:

Поверхностную копию объекта.

deep_clone() → Self[исходный код]

Глубокое копирование (вложенные объекты тоже дублируются).

Результат:

Полную копию объекта.

class EJIO.utils.interface.ReadOnlyMeta(name: str, bases: tuple[type, ...], attrs: dict[str, Any])[исходный код]

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

Метакласс, реализующий свойства только для чтения на уровне самого класса и полностью запрещающий создание экземпляров.

class EJIO.utils.interface.Singleton(*args: object, **kwargs: object)[исходный код]

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

Базовый класс Singleton.

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

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

Интерфейс-миксин для создания строго статических классов. Запрещает создание любых экземпляров данного класса или его наследников.

class EJIO.utils.interface.StaticClassMeta(name: str, bases: tuple[type, ...], attrs: dict[str, Any])[исходный код]

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

Метакласс, запрещающий создание экземпляров.

class EJIO.utils.interface.ThreadSafePrototypeMixin(*args: object, **kwargs: object)[исходный код]

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

Миксин-реализация для создания потокобезопасных прототипов. Использует Threading Lock для предотвращения состояния гонки при чтении/копировании.

clone() → Self[исходный код]

Потокобезопасное поверхностное копирование.

Результат:

Поверхностную копию объекта.

deep_clone() → Self[исходный код]

Потокобезопасное глубокое копирование.

Результат:

Полную копию объекта.

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

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

Интерфейс объектов, которые поддерживают преобразование в/из кортеж (tuple).

abstractmethod classmethod from_tuple(data: list[T]) → Self[исходный код]

Восстановить объект из кортежа.

Параметры:

data – Кортеж с данными.

Результат:

Новый объект, созданный из этого кортежа.

Исключение:

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

abstractmethod to_tuple() → list[T][исходный код]

Преобразовать объект в кортеж.

Результат:

Кортеж, отражающий состояние объекта.

Исключение:

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

class EJIO.utils.interface.static_property(func: Callable[[...], Any])[исходный код]

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

Кастомный маркер-дескриптор для объявления вычисляемых свойств внутри изменяемых статических структур.