diff --git a/tinydb/utils.py b/tinydb/utils.py index 85a224cc..e88b1c08 100644 --- a/tinydb/utils.py +++ b/tinydb/utils.py @@ -78,9 +78,10 @@ def __delitem__(self, key: K) -> None: del self.cache[key] def __getitem__(self, key) -> V: - value = self.get(key) - if value is None: + if key not in self.cache: raise KeyError(key) + value = self.cache[key] + self.cache.move_to_end(key, last=True) return value @@ -88,14 +89,12 @@ def __iter__(self) -> Iterator[K]: return iter(self.cache) def get(self, key: K, default: Optional[D] = None) -> Optional[Union[V, D]]: - value = self.cache.get(key) + if key not in self.cache: + return default + value = self.cache[key] + self.cache.move_to_end(key, last=True) - if value is not None: - self.cache.move_to_end(key, last=True) - - return value - - return default + return value def set(self, key: K, value: V): if key in self.cache: