Skip to content
20 changes: 20 additions & 0 deletions stubs/cachetools/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
cachetools.Cache.get
cachetools.LFUCache.__delitem__
cachetools.LFUCache.__getitem__
cachetools.LFUCache.__setitem__
cachetools.LRUCache.__delitem__
cachetools.LRUCache.__getitem__
cachetools.LRUCache.__setitem__
cachetools.TTLCache.__delitem__
cachetools.TTLCache.__getitem__
cachetools.TTLCache.__setitem__
cachetools.cache.Cache.get
cachetools.lfu.LFUCache.__delitem__
cachetools.lfu.LFUCache.__getitem__
cachetools.lfu.LFUCache.__setitem__
cachetools.lru.LRUCache.__delitem__
cachetools.lru.LRUCache.__getitem__
cachetools.lru.LRUCache.__setitem__
cachetools.ttl.TTLCache.__delitem__
cachetools.ttl.TTLCache.__getitem__
cachetools.ttl.TTLCache.__setitem__
1 change: 1 addition & 0 deletions stubs/cachetools/METADATA.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
version = "4.2"
78 changes: 78 additions & 0 deletions stubs/cachetools/cachetools/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
from _typeshed import IdentityFunction
from collections.abc import Iterator, Sequence
from typing import Any, Callable, ContextManager, Generic, MutableMapping, TypeVar

_KT = TypeVar("_KT")
_VT = TypeVar("_VT")

class Cache(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
def __init__(self, maxsize: float, getsizeof: Callable[[_VT], float] | None = ...) -> None: ...
def __getitem__(self, key: _KT) -> _VT: ...
def __setitem__(self, key: _KT, value: _VT) -> None: ...
def __delitem__(self, key: _KT) -> None: ...
def __iter__(self) -> Iterator[_KT]: ...
def __len__(self) -> int: ...
@property
def maxsize(self) -> float: ...
@property
def currsize(self) -> float: ...
@staticmethod
def getsizeof(value: _VT) -> float: ...

class FIFOCache(Cache[_KT, _VT]):
def __init__(self, maxsize: float, getsizeof: Callable[[_VT], float] | None = ...) -> None: ...
# TODO: add types to these, currently using what is defined in superclass
# def __setitem__(self, key, value, cache_setitem=...) -> None: ...
# def __delitem__(self, key, cache_delitem=...) -> None: ...
# def popitem(self): ...

class LFUCache(Cache[_KT, _VT]):
def __init__(self, maxsize: float, getsizeof: Callable[[_VT], float] | None = ...) -> None: ...
def __getitem__(self, key: _KT, cache_getitem: Callable[[_KT], _VT] = ...) -> _VT: ...
def __setitem__(self, key: _KT, value: _VT, cache_setitem: Callable[[_KT, _VT], None] = ...) -> None: ...
def __delitem__(self, key: _KT, cache_delitem: Callable[[_KT], None] = ...) -> None: ...

class LRUCache(Cache[_KT, _VT]):
def __init__(self, maxsize: float, getsizeof: Callable[[_VT], float] | None = ...) -> None: ...
def __getitem__(self, key: _KT, cache_getitem: Callable[[_KT], _VT] = ...) -> _VT: ...
def __setitem__(self, key: _KT, value: _VT, cache_setitem: Callable[[_KT, _VT], None] = ...) -> None: ...
def __delitem__(self, key: _KT, cache_delitem: Callable[[_KT], None] = ...) -> None: ...

class MRUCache(Cache[_KT, _VT]):
def __init__(self, maxsize: float, getsizeof: Callable[[_VT], float] | None = ...) -> None: ...
# TODO: add types to these, currently using what is defined in superclass
# def __getitem__(self, key, cache_getitem=...): ...
# def __setitem__(self, key, value, cache_setitem=...) -> None: ...
# def __delitem__(self, key, cache_delitem=...) -> None: ...
# def popitem(self): ...

class RRCache(Cache[_KT, _VT]):
def __init__(
self, maxsize: float, choice: Callable[[Sequence[_KT]], _KT] | None = ..., getsizeof: Callable[[_VT], float] | None = ...
) -> None: ...
@property
def choice(self) -> Callable[[Sequence[_KT]], _KT]: ...

class TTLCache(Cache[_KT, _VT]):
def __init__(
self, maxsize: float, ttl: float, timer: Callable[[], float] = ..., getsizeof: Callable[[_VT], float] | None = ...
) -> None: ...
def __getitem__(self, key: _KT, cache_getitem: Callable[[_KT], _VT] = ...) -> _VT: ...
def __setitem__(self, key: _KT, value: _VT, cache_setitem: Callable[[_KT, _VT], None] = ...) -> None: ...
def __delitem__(self, key: _KT, cache_delitem: Callable[[_KT], None] = ...) -> None: ...
def __iter__(self) -> Iterator[_KT]: ...
def __len__(self) -> int: ...
@property
def currsize(self) -> float: ...
@property
def timer(self) -> Callable[[], float]: ...
@property
def ttl(self) -> float: ...
def expire(self, time: float | None = ...) -> None: ...

def cached(
cache: MutableMapping[_KT, Any] | None, key: Callable[..., _KT] = ..., lock: ContextManager[Any] | None = ...
) -> IdentityFunction: ...
def cachedmethod(
cache: Callable[[Any], MutableMapping[_KT, Any] | None], key: Callable[..., _KT] = ..., lock: ContextManager[Any] | None = ...
) -> IdentityFunction: ...
2 changes: 2 additions & 0 deletions stubs/cachetools/cachetools/cache.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this module is deprecated
from . import Cache as Cache
2 changes: 2 additions & 0 deletions stubs/cachetools/cachetools/fifo.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this module is deprecated
from . import FIFOCache as FIFOCache
13 changes: 13 additions & 0 deletions stubs/cachetools/cachetools/func.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from _typeshed import IdentityFunction
from typing import Callable, Sequence, TypeVar

_T = TypeVar("_T")

def fifo_cache(maxsize: float = ..., typed: bool = ...) -> IdentityFunction: ...
def lfu_cache(maxsize: float = ..., typed: bool = ...) -> IdentityFunction: ...
def lru_cache(maxsize: float = ..., typed: bool = ...) -> IdentityFunction: ...
def mru_cache(maxsize: float = ..., typed: bool = ...) -> IdentityFunction: ...
def rr_cache(maxsize: float = ..., choice: Callable[[Sequence[_T]], _T] | None = ..., typed: bool = ...) -> IdentityFunction: ...
def ttl_cache(
maxsize: float = ..., ttl: float = ..., timer: Callable[[], float] = ..., typed: bool = ...
) -> IdentityFunction: ...
4 changes: 4 additions & 0 deletions stubs/cachetools/cachetools/keys.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from typing import Hashable, Tuple

def hashkey(*args: Hashable, **kwargs: Hashable) -> Tuple[Hashable, ...]: ...
def typedkey(*args: Hashable, **kwargs: Hashable) -> Tuple[Hashable, ...]: ...
2 changes: 2 additions & 0 deletions stubs/cachetools/cachetools/lfu.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this module is deprecated
from . import LFUCache as LFUCache
2 changes: 2 additions & 0 deletions stubs/cachetools/cachetools/lru.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this module is deprecated
from . import LRUCache as LRUCache
2 changes: 2 additions & 0 deletions stubs/cachetools/cachetools/mru.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this module is deprecated
from . import MRUCache as MRUCache
2 changes: 2 additions & 0 deletions stubs/cachetools/cachetools/rr.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this module is deprecated
from . import RRCache as RRCache
2 changes: 2 additions & 0 deletions stubs/cachetools/cachetools/ttl.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this module is deprecated
from . import TTLCache as TTLCache