Download rtme/lib/python3.10/site-packages/sentry_sdk/_lru_cache.py from ckadirt/backup_rtme: direct link, hf CLI and curl.
- Browser
- Download file 1.23 kB
-
https://huggingface.co/ckadirt/backup_rtme/resolve/main/rtme/lib/python3.10/site-packages/sentry_sdk/_lru_cache.py
- Command line
-
hf download hf://ckadirt/backup_rtme/rtme/lib/python3.10/site-packages/sentry_sdk/_lru_cache.py
-
curl -L -o _lru_cache.py https://huggingface.co/ckadirt/backup_rtme/resolve/main/rtme/lib/python3.10/site-packages/sentry_sdk/_lru_cache.py
1.23 kB
| from typing import TYPE_CHECKING | |
| if TYPE_CHECKING: | |
| from typing import Any | |
| _SENTINEL = object() | |
| class LRUCache: | |
| def __init__(self, max_size): | |
| # type: (int) -> None | |
| if max_size <= 0: | |
| raise AssertionError(f"invalid max_size: {max_size}") | |
| self.max_size = max_size | |
| self._data = {} # type: dict[Any, Any] | |
| self.hits = self.misses = 0 | |
| self.full = False | |
| def set(self, key, value): | |
| # type: (Any, Any) -> None | |
| current = self._data.pop(key, _SENTINEL) | |
| if current is not _SENTINEL: | |
| self._data[key] = value | |
| elif self.full: | |
| self._data.pop(next(iter(self._data))) | |
| self._data[key] = value | |
| else: | |
| self._data[key] = value | |
| self.full = len(self._data) >= self.max_size | |
| def get(self, key, default=None): | |
| # type: (Any, Any) -> Any | |
| try: | |
| ret = self._data.pop(key) | |
| except KeyError: | |
| self.misses += 1 | |
| ret = default | |
| else: | |
| self.hits += 1 | |
| self._data[key] = ret | |
| return ret | |
| def get_all(self): | |
| # type: () -> list[tuple[Any, Any]] | |
| return list(self._data.items()) | |