EJIO.utils.resource package

Inheritance diagram of EJIO.utils.resource.manager.resource, EJIO.utils.resource.registry.GlobalResourceRegistry

Submodules

EJIO.utils.resource.manager module

class EJIO.utils.resource.manager.resource(key: str, *, is_global: bool = False)[исходный код]

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

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

Поддерживает работу в режиме менеджера контекста (with) и в режиме прямой фабрики.

classmethod get_or_create(key: str, factory: Callable[[...], Any], *args: Any, is_global: bool = False, **kwargs: Any) → Any[исходный код]

Функция-обертка: атомарно проверяет кэш, и если ресурса нет — сама запускает фабрику, кэширует результат и возвращает его.

Параметры:
  • key – Ключ под которым хранится ресурс.

  • factory – Функция, генерирующая ресурс.

  • is_global – Какое хранилище использовать. Если True, то глобальное, иначе - локальное.

  • args – Аргументы для функции-генератора.

  • kwargs – Ключевые аргументы для функции-генератора.

Результат:

Ресурс.

classmethod remove(key: str, *, is_global: bool = False) → bool[исходный код]

Принудительно и потокобезопасно удаляет ресурс из кэша по его ключу. Полезно для инвалидации кэша, когда данные изменились.

Параметры:
  • key – Текстовый маркер ресурса.

  • is_global – Где искать ресурс — в глобальном реестре или локальном контексте.

Результат:

True, если ресурс был успешно найден и удален, иначе False.

property value: Any

Возвращает значение удерживаемого ресурса (None, если он еще не создан).

Результат:

Значение ресурса, или None.

EJIO.utils.resource.registry module

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

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

Статическое изолированное хранилище для тяжелых глобальных ресурсов (кэш между экранами и окнами).

Module contents

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

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

Статическое изолированное хранилище для тяжелых глобальных ресурсов (кэш между экранами и окнами).

class EJIO.utils.resource.resource(key: str, *, is_global: bool = False)[исходный код]

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

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

Поддерживает работу в режиме менеджера контекста (with) и в режиме прямой фабрики.

classmethod get_or_create(key: str, factory: Callable[[...], Any], *args: Any, is_global: bool = False, **kwargs: Any) → Any[исходный код]

Функция-обертка: атомарно проверяет кэш, и если ресурса нет — сама запускает фабрику, кэширует результат и возвращает его.

Параметры:
  • key – Ключ под которым хранится ресурс.

  • factory – Функция, генерирующая ресурс.

  • is_global – Какое хранилище использовать. Если True, то глобальное, иначе - локальное.

  • args – Аргументы для функции-генератора.

  • kwargs – Ключевые аргументы для функции-генератора.

Результат:

Ресурс.

classmethod remove(key: str, *, is_global: bool = False) → bool[исходный код]

Принудительно и потокобезопасно удаляет ресурс из кэша по его ключу. Полезно для инвалидации кэша, когда данные изменились.

Параметры:
  • key – Текстовый маркер ресурса.

  • is_global – Где искать ресурс — в глобальном реестре или локальном контексте.

Результат:

True, если ресурс был успешно найден и удален, иначе False.

property value: Any

Возвращает значение удерживаемого ресурса (None, если он еще не создан).

Результат:

Значение ресурса, или None.