Shofel2_T124_python/venv/lib/python3.10/site-packages/dacite/cache.py

26 lines
593 B
Python
Raw Normal View History

2024-05-25 16:45:07 +00:00
from functools import lru_cache
from typing import TypeVar, Callable, Optional
T = TypeVar("T", bound=Callable)
__MAX_SIZE: Optional[int] = 2048
@lru_cache(maxsize=None)
def cache(function: T) -> T:
return lru_cache(maxsize=get_cache_size())(function) # type: ignore
def set_cache_size(size: Optional[int]) -> None:
global __MAX_SIZE # pylint: disable=global-statement
__MAX_SIZE = size
def get_cache_size() -> Optional[int]:
global __MAX_SIZE # pylint: disable=global-variable-not-assigned
return __MAX_SIZE
def clear_cache() -> None:
cache.cache_clear()