Source code for gptcache.manager.eviction.manager

# pylint: disable=import-outside-toplevel
from typing import Callable, List, Any

from gptcache.utils.error import NotFoundError


[docs]class EvictionBase: """ EvictionBase to evict the cache data. """ def __init__(self): raise EnvironmentError( "EvictionBase is designed to be instantiated, " "please using the `EvictionBase.get(name, policy, maxsize, clean_size)`." )
[docs] @staticmethod def get( name: str, policy: str, maxsize: int, clean_size: int = 0, on_evict: Callable[[List[Any]], None] = None, **kwargs ): if not clean_size: clean_size = int(maxsize * 0.2) if name in "memory": from gptcache.manager.eviction.memory_cache import MemoryCacheEviction eviction_base = MemoryCacheEviction( policy, maxsize, clean_size, on_evict, **kwargs ) else: raise NotFoundError("eviction base", name) return eviction_base