diff --git a/stubs/cachetools/@tests/stubtest_allowlist.txt b/stubs/cachetools/@tests/stubtest_allowlist.txt new file mode 100644 index 000000000000..2273f0b16f68 --- /dev/null +++ b/stubs/cachetools/@tests/stubtest_allowlist.txt @@ -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__ diff --git a/stubs/cachetools/METADATA.toml b/stubs/cachetools/METADATA.toml new file mode 100644 index 000000000000..de720977e07a --- /dev/null +++ b/stubs/cachetools/METADATA.toml @@ -0,0 +1 @@ +version = "4.2" diff --git a/stubs/cachetools/cachetools/__init__.pyi b/stubs/cachetools/cachetools/__init__.pyi new file mode 100644 index 000000000000..58a119274f40 --- /dev/null +++ b/stubs/cachetools/cachetools/__init__.pyi @@ -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: ... diff --git a/stubs/cachetools/cachetools/cache.pyi b/stubs/cachetools/cachetools/cache.pyi new file mode 100644 index 000000000000..a9bd3f70f626 --- /dev/null +++ b/stubs/cachetools/cachetools/cache.pyi @@ -0,0 +1,2 @@ +# this module is deprecated +from . import Cache as Cache diff --git a/stubs/cachetools/cachetools/fifo.pyi b/stubs/cachetools/cachetools/fifo.pyi new file mode 100644 index 000000000000..c6b386ad455a --- /dev/null +++ b/stubs/cachetools/cachetools/fifo.pyi @@ -0,0 +1,2 @@ +# this module is deprecated +from . import FIFOCache as FIFOCache diff --git a/stubs/cachetools/cachetools/func.pyi b/stubs/cachetools/cachetools/func.pyi new file mode 100644 index 000000000000..d081d5166316 --- /dev/null +++ b/stubs/cachetools/cachetools/func.pyi @@ -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: ... diff --git a/stubs/cachetools/cachetools/keys.pyi b/stubs/cachetools/cachetools/keys.pyi new file mode 100644 index 000000000000..9effbe6e171f --- /dev/null +++ b/stubs/cachetools/cachetools/keys.pyi @@ -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, ...]: ... diff --git a/stubs/cachetools/cachetools/lfu.pyi b/stubs/cachetools/cachetools/lfu.pyi new file mode 100644 index 000000000000..9951e65e2841 --- /dev/null +++ b/stubs/cachetools/cachetools/lfu.pyi @@ -0,0 +1,2 @@ +# this module is deprecated +from . import LFUCache as LFUCache diff --git a/stubs/cachetools/cachetools/lru.pyi b/stubs/cachetools/cachetools/lru.pyi new file mode 100644 index 000000000000..4ea2d6413ca6 --- /dev/null +++ b/stubs/cachetools/cachetools/lru.pyi @@ -0,0 +1,2 @@ +# this module is deprecated +from . import LRUCache as LRUCache diff --git a/stubs/cachetools/cachetools/mru.pyi b/stubs/cachetools/cachetools/mru.pyi new file mode 100644 index 000000000000..b345f5262b04 --- /dev/null +++ b/stubs/cachetools/cachetools/mru.pyi @@ -0,0 +1,2 @@ +# this module is deprecated +from . import MRUCache as MRUCache diff --git a/stubs/cachetools/cachetools/rr.pyi b/stubs/cachetools/cachetools/rr.pyi new file mode 100644 index 000000000000..18e2098ceb66 --- /dev/null +++ b/stubs/cachetools/cachetools/rr.pyi @@ -0,0 +1,2 @@ +# this module is deprecated +from . import RRCache as RRCache diff --git a/stubs/cachetools/cachetools/ttl.pyi b/stubs/cachetools/cachetools/ttl.pyi new file mode 100644 index 000000000000..aee05857648a --- /dev/null +++ b/stubs/cachetools/cachetools/ttl.pyi @@ -0,0 +1,2 @@ +# this module is deprecated +from . import TTLCache as TTLCache