Spaces:
Running
Running
| """Simple TTL-based in-memory cache for API responses.""" | |
| import time as _time | |
| _cache_store: dict[str, tuple[float, dict]] = {} | |
| CACHE_TTL = 300 # 5 minutes default | |
| def cache_get(key: str) -> dict | None: | |
| """Get value from cache if within TTL.""" | |
| entry = _cache_store.get(key) | |
| if entry and _time.time() - entry[0] < CACHE_TTL: | |
| return entry[1] | |
| if entry: | |
| del _cache_store[key] | |
| return None | |
| def cache_set(key: str, data: dict) -> None: | |
| """Set value in cache.""" | |
| _cache_store[key] = (_time.time(), data) | |
| def cache_key(symbol: str, prefix: str = "stock-catalysts") -> str: | |
| """Generate a namespaced cache key for a symbol.""" | |
| return f"{prefix}:{symbol.upper()}" | |