--- /dev/null
+import abc
+from typing import Any
+
+ConnectionError: Any
+
+class GlobalCache(metaclass=abc.ABCMeta):
+ __metaclass__: Any
+ transient_errors: Any
+ strict_read: bool
+ strict_write: bool
+ @abc.abstractmethod
+ def get(self, keys): ...
+ @abc.abstractmethod
+ def set(self, items, expires: Any | None = ...): ...
+ @abc.abstractmethod
+ def delete(self, keys): ...
+ @abc.abstractmethod
+ def watch(self, keys): ...
+ @abc.abstractmethod
+ def unwatch(self, keys): ...
+ @abc.abstractmethod
+ def compare_and_swap(self, items, expires: Any | None = ...): ...
+ @abc.abstractmethod
+ def clear(self): ...
+
+class _InProcessGlobalCache(GlobalCache):
+ cache: Any
+ def __init__(self) -> None: ...
+ def get(self, keys): ...
+ def set(self, items, expires: Any | None = ...) -> None: ...
+ def delete(self, keys) -> None: ...
+ def watch(self, keys) -> None: ...
+ def unwatch(self, keys) -> None: ...
+ def compare_and_swap(self, items, expires: Any | None = ...): ...
+ def clear(self) -> None: ...
+
+class RedisCache(GlobalCache):
+ transient_errors: Any
+ @classmethod
+ def from_environment(cls, strict_read: bool = ..., strict_write: bool = ...): ...
+ redis: Any
+ strict_read: Any
+ strict_write: Any
+ def __init__(self, redis, strict_read: bool = ..., strict_write: bool = ...) -> None: ...
+ @property
+ def pipes(self): ...
+ def get(self, keys): ...
+ def set(self, items, expires: Any | None = ...) -> None: ...
+ def delete(self, keys) -> None: ...
+ def watch(self, keys) -> None: ...
+ def unwatch(self, keys) -> None: ...
+ def compare_and_swap(self, items, expires: Any | None = ...): ...
+ def clear(self) -> None: ...
+
+class MemcacheCache(GlobalCache):
+ class KeyNotSet(Exception):
+ key: Any
+ def __init__(self, key) -> None: ...
+ def __eq__(self, other): ...
+ transient_errors: Any
+ @classmethod
+ def from_environment(cls, max_pool_size: int = ..., strict_read: bool = ..., strict_write: bool = ...): ...
+ client: Any
+ strict_read: Any
+ strict_write: Any
+ def __init__(self, client, strict_read: bool = ..., strict_write: bool = ...) -> None: ...
+ @property
+ def caskeys(self): ...
+ def get(self, keys): ...
+ def set(self, items, expires: Any | None = ...): ...
+ def delete(self, keys) -> None: ...
+ def watch(self, keys) -> None: ...
+ def unwatch(self, keys) -> None: ...
+ def compare_and_swap(self, items, expires: Any | None = ...): ...
+ def clear(self) -> None: ...