Покрытие кода docstrings

This commit is contained in:
Merelden 2025-10-14 11:42:57 +05:00
parent 4e92aba2a2
commit 8f48df2cf5
19 changed files with 2324 additions and 1839 deletions

View file

@ -11,8 +11,33 @@ logger = logging.getLogger(__name__)
class SessionStorage:
"""Хранилище сессий пользователей в JSON-файле.
Предоставляет методы для создания, получения, удаления и очистки сессий с
учётом срока действия.
Назначение:
Лёгкое файловое хранилище для сессионных токенов, сопоставленных с
`client_id` (например, IP клиента). Предназначено для сред без БД и
persistent‑кэшей. Обеспечивает базовые операции и авто‑очистку протухших
сессий.
Формат данных:
{
"sessions": {
"<session_id>": {
"username": str,
"token": str,
"client_id": str,
"created_at": ISO8601 str,
"expiry": ISO8601 str
},
...
}
}
Политика TTL:
Каждая сессия действует 30 минут. При создании/чтении/удалении вызывается
`clean_expired_sessions()` для удаления протухших записей.
Ограничения:
- Нет файловых блокировок: в многопроцессных конфигурациях возможны гонки.
- Размещение по умолчанию `/etc/gonets/sessions.json` требует прав на запись.
"""
def __init__(self, file_path: str = "/etc/gonets/sessions.json"):