Repair docs (html, md). Update docstrings

This commit is contained in:
parent e264750187
commit 6a4ad48577
125 changed files with 3706 additions and 4913 deletions

View file

@ -8,16 +8,21 @@ from datetime import datetime, timedelta
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
DATA_DIR = os.getenv("GONETS_DATA_DIR", "/etc/gonets")
DEFAULT_SESSIONS_PATH = os.getenv("GONETS_SESSIONS_PATH",
os.path.join(DATA_DIR, "sessions.json"))
class SessionStorage:
"""Хранилище сессий пользователей в JSON-файле.
Назначение:
Лёгкое файловое хранилище для сессионных токенов, сопоставленных с
`client_id` (например, IP клиента). Предназначено для сред без БД и
persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших
сессий.
Формат данных:
- Лёгкое файловое хранилище сессионных токенов, сопоставленных с ``client_id`` (например, IP клиента).
- Предназначено для сред без БД и persistent-кэшей; обеспечивает простые операции и автоочистку истёкших сессий.
Формат данных::
{
"sessions": {
"<session_id>": {
@ -32,15 +37,16 @@ class SessionStorage:
}
Политика TTL:
Каждая сессия действует 30 минут. При создании/чтении/удалении вызывается
`clean_expired_sessions()` для удаления протухших записей.
- Каждая сессия действует 30 минут; метод ``clean_expired_sessions`` удаляет записи с истёкшим сроком.
Ограничения:
- Нет файловых блокировок: в многопроцессных конфигурациях возможны гонки.
- Размещение по умолчанию `/etc/gonets/sessions.json` требует прав на запись.
- Отсутствуют файловые блокировки — в многопроцессной среде возможны гонки.
- Путь по умолчанию ``/etc/gonets/sessions.json`` требует прав на запись.
"""
def __init__(self, file_path: str = "/etc/gonets/sessions.json"):
def __init__(self, file_path: Optional[str] = None):
"""Инициализирует хранилище сессий.
Args:
@ -49,7 +55,7 @@ class SessionStorage:
Создаёт файл и директории, если они отсутствуют, с правами доступа 600.
"""
self.file_path = file_path
self.file_path = file_path or DEFAULT_SESSIONS_PATH
self._ensure_file_exists()
def _ensure_file_exists(self):
@ -263,4 +269,4 @@ class SessionStorage:
logger.error(
f"Ошибка при очистке истекших сессий: {type(e).__name__} - {str(e)}"
)
raise
raise