Покрытие кода 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,31 @@ logger = logging.getLogger(__name__)
class JsonStorage:
"""Хранилище пользователей в JSON-файле.
Предоставляет методы для создания, чтения и проверки данных пользователей,
используя шифрование паролей с помощью bcrypt.
Назначение:
Обеспечивает простое файловое хранилище для учетных записей пользователей
без полноценной СУБД. Подходит для встраиваемых окружений и сценариев,
где важна минимальная зависимость от внешних сервисов.
Формат данных:
JSON‑структура вида:
{
"users": [
{"id": int, "username": str, "password_hash": str, "is_admin": bool},
...
],
"next_id": int
}
Безопасность:
Пароли никогда не сохраняются в открытом виде. Для хеширования используется
`passlib.context.CryptContext` со схемой `bcrypt`. Файл создаётся с правами
доступа `0o600` (только владелец).
Ограничения и замечания:
- Отсутствует конкурентный доступ/блокировки файла — при использовании в
многопроцессной среде может потребоваться внешняя синхронизация.
- Имя файла и каталог по умолчанию `/etc/gonets/users.json` предполагают
наличие прав на запись и предварительную подготовку окружения.
"""
def __init__(self, file_path: str = "/etc/gonets/users.json"):