Исходный код EJIO.utils.interface.isolated_storage
## /utils/interface/isolated_storage.py
from threading import Lock
from typing import ClassVar
__all__ = [
'IsolatedStorageMixin',
]
[документация]
class IsolatedStorageMixin[T]:
"""
Миксин, автоматически предоставляющий каждому подклассу
собственное изолированное и потокобезопасное хранилище.
"""
__slots__ = ()
_STORAGE: ClassVar[dict[str, type[T]]]
_LOCK: ClassVar[Lock]
def __init_subclass__(cls, **kwargs: object) -> None:
"""
Автоматически вызывается при создании любого подкласса.
Инициализирует уникальные и независимые объекты словаря и лока в памяти.
:param kwargs: Аргументы для инициализации класса.
"""
super().__init_subclass__(**kwargs)
cls._STORAGE = {}
cls._LOCK = Lock()