/
TurGG
/
AI-Assistant
Обзор
Документация
Войти
/
TurGG
/
AI-Assistant
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cache.py
61 строка
2 KB
molodoybishkek
Первая загрузка кода ИИ-агента.
03 мар 2026, 22:10
03 мар 2026, 22:10
15b5eb5
Код
Авторство
О чём код?
# =========================================================== # cache.py — Компонент кэширования # =========================================================== # Инкапсулированная логика кэширования с TTL # =========================================================== from datetime import datetime, timedelta from typing import Optional, List, Dict, Any class Cache: """ Кэш с временем жизни (TTL). Инкапсулирует состояние кэша, устраняя глобальные переменные. """ def __init__(self, ttl_seconds: int = 30): self._ttl = timedelta(seconds=ttl_seconds) self._data: Optional[List[Dict[str, Any]]] = None self._timestamp: Optional[datetime] = None def get(self) -> Optional[List[Dict[str, Any]]]: """ Получить данные из кэша, если не истёк TTL. Returns: Данные или None если кэш устарел """ if self._data is None or self._timestamp is None: return None age = datetime.now() - self._timestamp if age < self._ttl: return self._data return None def set(self, data: List[Dict[str, Any]]) -> None: """ Сохранить данные в кэш. Args: data: Данные для кэширования """ self._data = data self._timestamp = datetime.now() def invalidate(self) -> None: """Очистить кэш.""" self._data = None self._timestamp = None def is_valid(self) -> bool: """ Проверить валидность кэша. Returns: True если кэш валиден """ return self.get() is not None