diff --git a/third_party/2and3/cachetools/__init__.pyi b/third_party/2and3/cachetools/__init__.pyi new file mode 100644 index 000000000..c6a9eaa95 --- /dev/null +++ b/third_party/2and3/cachetools/__init__.pyi @@ -0,0 +1,6 @@ +from .cache import Cache as Cache +from .decorators import cached as cached, cachedmethod as cachedmethod +from .lfu import LFUCache as LFUCache +from .lru import LRUCache as LRUCache +from .rr import RRCache as RRCache +from .ttl import TTLCache as TTLCache diff --git a/third_party/2and3/cachetools/abc.pyi b/third_party/2and3/cachetools/abc.pyi new file mode 100644 index 000000000..a1f0fbbdb --- /dev/null +++ b/third_party/2and3/cachetools/abc.pyi @@ -0,0 +1,7 @@ +from abc import ABCMeta +from typing import MutableMapping, TypeVar + +_KT = TypeVar("_KT") +_VT = TypeVar("_VT") + +class DefaultMapping(MutableMapping[_KT, _VT], metaclass=ABCMeta): ... diff --git a/third_party/2and3/cachetools/cache.pyi b/third_party/2and3/cachetools/cache.pyi new file mode 100644 index 000000000..f79bbd21b --- /dev/null +++ b/third_party/2and3/cachetools/cache.pyi @@ -0,0 +1,20 @@ +from typing import Callable, Generic, Iterator, Optional, TypeVar + +from .abc import DefaultMapping as DefaultMapping + +_KT = TypeVar("_KT") +_VT = TypeVar("_VT") + +class Cache(DefaultMapping[_KT, _VT], Generic[_KT, _VT]): + def __init__(self, maxsize: int, getsizeof: Optional[Callable[[_VT], int]] = ...) -> 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) -> int: ... + @property + def currsize(self) -> int: ... + @staticmethod + def getsizeof(value: _VT) -> int: ... diff --git a/third_party/2and3/cachetools/decorators.pyi b/third_party/2and3/cachetools/decorators.pyi new file mode 100644 index 000000000..20ac979f0 --- /dev/null +++ b/third_party/2and3/cachetools/decorators.pyi @@ -0,0 +1,11 @@ +from typing import Any, Callable, ContextManager, Optional, TypeVar + +from .cache import Cache + +_KT = TypeVar("_KT") +_VT = TypeVar("_VT") +_T = TypeVar("_T", bound=Callable[..., Any]) +_T_co = TypeVar("_T_co", covariant=True) + +def cached(cache: Cache[_KT, _VT], key: _KT = ..., lock: Optional[ContextManager[_T_co]] = ...) -> Callable[[_T], _T]: ... +def cachedmethod(cache: Cache[_KT, _VT], key: _KT = ..., lock: Optional[ContextManager[_T_co]] = ...) -> Callable[[_T], _T]: ... diff --git a/third_party/2and3/cachetools/func.pyi b/third_party/2and3/cachetools/func.pyi new file mode 100644 index 000000000..5fcb68fda --- /dev/null +++ b/third_party/2and3/cachetools/func.pyi @@ -0,0 +1,8 @@ +from typing import Callable, Optional, Sequence, TypeVar + +_T = TypeVar("_T") + +def lfu_cache(maxsize: int = ..., typed: bool = ...) -> None: ... +def lru_cache(maxsize: int = ..., typed: bool = ...) -> None: ... +def rr_cache(maxsize: int = ..., choice: Optional[Callable[[Sequence[_T]], _T]] = ..., typed: bool = ...) -> None: ... +def ttl_cache(maxsize: int = ..., ttl: int = ..., timer: float = ..., typed: bool = ...) -> None: ... diff --git a/third_party/2and3/cachetools/lfu.pyi b/third_party/2and3/cachetools/lfu.pyi new file mode 100644 index 000000000..5673027c9 --- /dev/null +++ b/third_party/2and3/cachetools/lfu.pyi @@ -0,0 +1,14 @@ +from typing import Callable, Iterator, Optional, TypeVar + +from .cache import Cache + +_KT = TypeVar("_KT") +_VT = TypeVar("_VT") + +class LFUCache(Cache[_KT, _VT]): + def __init__(self, maxsize: int, getsizeof: Optional[Callable[[_VT], int]] = ...) -> 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: ... diff --git a/third_party/2and3/cachetools/lru.pyi b/third_party/2and3/cachetools/lru.pyi new file mode 100644 index 000000000..7fa865ac2 --- /dev/null +++ b/third_party/2and3/cachetools/lru.pyi @@ -0,0 +1,13 @@ +from typing import Callable, Iterator, Optional, TypeVar + +from .cache import Cache as Cache + +_KT = TypeVar("_KT") +_VT = TypeVar("_VT") + +class LRUCache(Cache[_KT, _VT]): + def __init__(self, maxsize: int, getsizeof: Optional[Callable[[_VT], int]] = ...) -> 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]: ... diff --git a/third_party/2and3/cachetools/rr.pyi b/third_party/2and3/cachetools/rr.pyi new file mode 100644 index 000000000..8b34c3950 --- /dev/null +++ b/third_party/2and3/cachetools/rr.pyi @@ -0,0 +1,21 @@ +from typing import Callable, Iterator, Optional, Sequence, TypeVar + +from .cache import Cache as Cache + +_KT = TypeVar("_KT") +_VT = TypeVar("_VT") + +class RRCache(Cache[_KT, _VT]): + def __init__( + self, + maxsize: int, + choice: Optional[Callable[[Sequence[_KT]], _KT]] = ..., + getsizeof: Optional[Callable[[_VT], int]] = ..., + ) -> 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 choice(self) -> Callable[[Sequence[_KT]], _KT]: ... diff --git a/third_party/2and3/cachetools/ttl.pyi b/third_party/2and3/cachetools/ttl.pyi new file mode 100644 index 000000000..753e4e99b --- /dev/null +++ b/third_party/2and3/cachetools/ttl.pyi @@ -0,0 +1,23 @@ +from typing import Callable, Iterator, Optional, TypeVar + +from .cache import Cache + +_KT = TypeVar("_KT") +_VT = TypeVar("_VT") + +class TTLCache(Cache[_KT, _VT]): + def __init__( + self, maxsize: int, ttl: int, timer: Callable[[], float] = ..., getsizeof: Optional[Callable[[_VT], int]] = ... + ) -> 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) -> int: ... + @property + def timer(self) -> Callable[[], float]: ... + @property + def ttl(self) -> int: ... + def expire(self, time: Optional[Callable[[], float]] = ...) -> None: ...