diff options
author | Thomas Kemmer <tkemmer@computer.org> | 2020-09-08 09:52:27 +0200 |
---|---|---|
committer | Thomas Kemmer <tkemmer@computer.org> | 2020-12-09 23:38:17 +0100 |
commit | 992c42327b993a96853cfed8dd9a0b196a0c18c4 (patch) | |
tree | c812c6156302757b25b3016be2ae697bb714732c | |
parent | 26afdc4b6c50e56801df55ba47f487d228cb425d (diff) | |
download | cachetools-992c42327b993a96853cfed8dd9a0b196a0c18c4.tar.gz |
Remove DefaultMapping abstract base class.
-rw-r--r-- | cachetools/abc.py | 46 | ||||
-rw-r--r-- | cachetools/cache.py | 32 |
2 files changed, 30 insertions, 48 deletions
diff --git a/cachetools/abc.py b/cachetools/abc.py deleted file mode 100644 index b61e49b..0000000 --- a/cachetools/abc.py +++ /dev/null @@ -1,46 +0,0 @@ -from abc import abstractmethod -from collections.abc import MutableMapping - - -class DefaultMapping(MutableMapping): - - __slots__ = () - - @abstractmethod - def __contains__(self, key): # pragma: nocover - return False - - @abstractmethod - def __getitem__(self, key): # pragma: nocover - if hasattr(self.__class__, '__missing__'): - return self.__class__.__missing__(self, key) - else: - raise KeyError(key) - - def get(self, key, default=None): - if key in self: - return self[key] - else: - return default - - __marker = object() - - def pop(self, key, default=__marker): - if key in self: - value = self[key] - del self[key] - elif default is self.__marker: - raise KeyError(key) - else: - value = default - return value - - def setdefault(self, key, default=None): - if key in self: - value = self[key] - else: - self[key] = value = default - return value - - -DefaultMapping.register(dict) diff --git a/cachetools/cache.py b/cachetools/cache.py index 4354ca6..ed3d268 100644 --- a/cachetools/cache.py +++ b/cachetools/cache.py @@ -1,7 +1,10 @@ -from .abc import DefaultMapping +from collections.abc import MutableMapping class _DefaultSize(object): + + __slots__ = () + def __getitem__(self, _): return 1 @@ -12,9 +15,11 @@ class _DefaultSize(object): return 1 -class Cache(DefaultMapping): +class Cache(MutableMapping): """Mutable mapping to serve as a simple cache or cache base class.""" + __marker = object() + __size = _DefaultSize() def __init__(self, maxsize, getsizeof=None): @@ -73,6 +78,29 @@ class Cache(DefaultMapping): def __len__(self): return len(self.__data) + def get(self, key, default=None): + if key in self: + return self[key] + else: + return default + + def pop(self, key, default=__marker): + if key in self: + value = self[key] + del self[key] + elif default is self.__marker: + raise KeyError(key) + else: + value = default + return value + + def setdefault(self, key, default=None): + if key in self: + value = self[key] + else: + self[key] = value = default + return value + @property def maxsize(self): """The maximum size of the cache.""" |