Sh3ll
OdayForums


Server : LiteSpeed
System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : claqxcrl ( 523)
PHP Version : 8.1.32
Disable Function : NONE
Directory :  /opt/hc_python/lib/python3.12/site-packages/sentry_sdk/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/hc_python/lib/python3.12/site-packages/sentry_sdk/_lru_cache.py
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())

ZeroDay Forums Mini