MK_Quant_Monitor / cache.py
maxkru92's picture
feat: crash_monitor module
5394ce7 verified
Raw
History Blame Contribute Delete
793 Bytes
import time
from typing import Any
class Cache:
def __init__(self, ttl: int = 60):
self._ttl = ttl
self._store: dict[str, tuple[Any, float]] = {}
def set(self, key: str, value: Any) -> None:
self._store[key] = (value, time.time())
def get(self, key: str) -> Any | None:
if key not in self._store:
return None
value, ts = self._store[key]
if time.time() - ts > self._ttl:
return None
return value
def get_stale(self, key: str) -> Any | None:
"""Return cached value even if expired (stale-if-error fallback)."""
if key not in self._store:
return None
return self._store[key][0]
def invalidate(self, key: str) -> None:
self._store.pop(key, None)