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

@ -285,18 +285,23 @@
<span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span>
<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
<span class="n">DATA_DIR</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;GONETS_DATA_DIR&quot;</span><span class="p">,</span> <span class="s2">&quot;/etc/gonets&quot;</span><span class="p">)</span>
<span class="n">DEFAULT_USERS_PATH</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;GONETS_USERS_PATH&quot;</span><span class="p">,</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">DATA_DIR</span><span class="p">,</span> <span class="s2">&quot;users.json&quot;</span><span class="p">))</span>
<div class="viewcode-block" id="JsonStorage">
<a class="viewcode-back" href="../../api/storage/json_storage.html#storage.json_storage.JsonStorage">[docs]</a>
<span class="k">class</span><span class="w"> </span><span class="nc">JsonStorage</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Хранилище пользователей в JSON-файле.</span>
<span class="sd"> Назначение:</span>
<span class="sd"> Обеспечивает простое файловое хранилище для учетных записей пользователей</span>
<span class="sd"> без полноценной СУБД. Подходит для встраиваемых окружений и сценариев,</span>
<span class="sd"> где важна минимальная зависимость от внешних сервисов.</span>
<span class="sd"> Формат данных:</span>
<span class="sd"> JSON-структура вида:</span>
<span class="sd"> - Обеспечивает простое файловое хранилище учетных записей без полноценной СУБД.</span>
<span class="sd"> - Подходит для встраиваемых окружений, где критична минимальная зависимость от внешних сервисов.</span>
<span class="sd"> Формат данных::</span>
<span class="sd"> {</span>
<span class="sd"> &quot;users&quot;: [</span>
<span class="sd"> {&quot;id&quot;: int, &quot;username&quot;: str, &quot;password_hash&quot;: str, &quot;is_admin&quot;: bool},</span>
@ -306,18 +311,17 @@
<span class="sd"> }</span>
<span class="sd"> Безопасность:</span>
<span class="sd"> Пароли никогда не сохраняются в открытом виде. Для хеширования используется</span>
<span class="sd"> `passlib.context.CryptContext` со схемой `bcrypt`. Файл создаётся с правами</span>
<span class="sd"> доступа `0o600` (только владелец).</span>
<span class="sd"> Ограничения и замечания:</span>
<span class="sd"> - Отсутствует конкурентный доступ/блокировки файла — при использовании в</span>
<span class="sd"> многопроцессной среде может потребоваться внешняя синхронизация.</span>
<span class="sd"> - Имя файла и каталог по умолчанию `/etc/gonets/users.json` предполагают</span>
<span class="sd"> наличие прав на запись и предварительную подготовку окружения.</span>
<span class="sd"> - Пароли никогда не сохраняются в открытом виде: используется `passlib.context.CryptContext` со схемой `bcrypt`.</span>
<span class="sd"> - Файл создаётся с правами доступа ``0o600`` (чтение/запись только владельцу).</span>
<span class="sd"> Ограничения:</span>
<span class="sd"> - Нет блокировок для конкурентного доступа — в многопроцессной среде требуется внешняя синхронизация.</span>
<span class="sd"> - Значение пути по умолчанию ``/etc/gonets/users.json`` предполагает наличие прав на запись и предварительную настройку окружения.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;/etc/gonets/users.json&quot;</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_path</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Инициализирует хранилище пользователей.</span>
<span class="sd"> Args:</span>
@ -327,7 +331,7 @@
<span class="sd"> Создаёт объект CryptContext для хеширования паролей и проверяет/создаёт</span>
<span class="sd"> файл, если он отсутствует.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">file_path</span> <span class="o">=</span> <span class="n">file_path</span>
<span class="bp">self</span><span class="o">.</span><span class="n">file_path</span> <span class="o">=</span> <span class="n">file_path</span> <span class="ow">or</span> <span class="n">DEFAULT_USERS_PATH</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pwd_context</span> <span class="o">=</span> <span class="n">CryptContext</span><span class="p">(</span><span class="n">schemes</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;bcrypt&quot;</span><span class="p">],</span> <span class="n">deprecated</span><span class="o">=</span><span class="s2">&quot;auto&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_ensure_file_exists</span><span class="p">()</span>

View file

@ -285,18 +285,23 @@
<span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span>
<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
<span class="n">DATA_DIR</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;GONETS_DATA_DIR&quot;</span><span class="p">,</span> <span class="s2">&quot;/etc/gonets&quot;</span><span class="p">)</span>
<span class="n">DEFAULT_SESSIONS_PATH</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">&quot;GONETS_SESSIONS_PATH&quot;</span><span class="p">,</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">DATA_DIR</span><span class="p">,</span> <span class="s2">&quot;sessions.json&quot;</span><span class="p">))</span>
<div class="viewcode-block" id="SessionStorage">
<a class="viewcode-back" href="../../api/storage/session_storage.html#storage.session_storage.SessionStorage">[docs]</a>
<span class="k">class</span><span class="w"> </span><span class="nc">SessionStorage</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Хранилище сессий пользователей в JSON-файле.</span>
<span class="sd"> Назначение:</span>
<span class="sd"> Лёгкое файловое хранилище для сессионных токенов, сопоставленных с</span>
<span class="sd"> `client_id` (например, IP клиента). Предназначено для сред без БД и</span>
<span class="sd"> persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших</span>
<span class="sd"> сессий.</span>
<span class="sd"> Формат данных:</span>
<span class="sd"> - Лёгкое файловое хранилище сессионных токенов, сопоставленных с ``client_id`` (например, IP клиента).</span>
<span class="sd"> - Предназначено для сред без БД и persistent-кэшей; обеспечивает простые операции и автоочистку истёкших сессий.</span>
<span class="sd"> Формат данных::</span>
<span class="sd"> {</span>
<span class="sd"> &quot;sessions&quot;: {</span>
<span class="sd"> &quot;&lt;session_id&gt;&quot;: {</span>
@ -311,15 +316,16 @@
<span class="sd"> }</span>
<span class="sd"> Политика TTL:</span>
<span class="sd"> Каждая сессия действует 30 минут. При создании/чтении/удалении вызывается</span>
<span class="sd"> `clean_expired_sessions()` для удаления протухших записей.</span>
<span class="sd"> - Каждая сессия действует 30 минут; метод ``clean_expired_sessions`` удаляет записи с истёкшим сроком.</span>
<span class="sd"> Ограничения:</span>
<span class="sd"> - Нет файловых блокировок: в многопроцессных конфигурациях возможны гонки.</span>
<span class="sd"> - Размещение по умолчанию `/etc/gonets/sessions.json` требует прав на запись.</span>
<span class="sd"> - Отсутствуют файловые блокировки — в многопроцессной среде возможны гонки.</span>
<span class="sd"> - Путь по умолчанию ``/etc/gonets/sessions.json`` требует прав на запись.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;/etc/gonets/sessions.json&quot;</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_path</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Инициализирует хранилище сессий.</span>
<span class="sd"> Args:</span>
@ -328,7 +334,7 @@
<span class="sd"> Создаёт файл и директории, если они отсутствуют, с правами доступа 600.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">file_path</span> <span class="o">=</span> <span class="n">file_path</span>
<span class="bp">self</span><span class="o">.</span><span class="n">file_path</span> <span class="o">=</span> <span class="n">file_path</span> <span class="ow">or</span> <span class="n">DEFAULT_SESSIONS_PATH</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_ensure_file_exists</span><span class="p">()</span>
<span class="k">def</span><span class="w"> </span><span class="nf">_ensure_file_exists</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>