import time from typing import Generic, TypeVar K = TypeVar("K") V = TypeVar("V") class TTLCache(Generic[K, V]): def __init__(self, ttl_seconds: int = 3600) -> None: self.ttl: int = ttl_seconds self.__cache: dict[K, tuple[V, float]] = {} def get(self, key: K) -> V | None: if key in self.__cache: value, timestamp = self.__cache[key] if time.time() - timestamp < self.ttl: return value else: del self.__cache[key] return None def set(self, key: K, value: V) -> None: self.__cache[key] = (value, time.time()) def clear(self) -> None: self.__cache.clear()