Unicode repair
This commit is contained in:
parent
2b8eff58ac
commit
e264750187
49 changed files with 107 additions and 107 deletions
|
|
@ -280,7 +280,7 @@
|
|||
|
||||
<span class="sd">Модуль инкапсулирует добавление middleware `CORSMiddleware` со списком</span>
|
||||
<span class="sd">разрешённых источников (origins), характерных для локальной разработки и</span>
|
||||
<span class="sd">типовых портов фронтенда (например, Vite/React на 5173/5174, dev‑серверы).</span>
|
||||
<span class="sd">типовых портов фронтенда (например, Vite/React на 5173/5174, dev-серверы).</span>
|
||||
|
||||
<span class="sd">Использование:</span>
|
||||
<span class="sd"> cors_config = CORSMiddlewareConfig(app)</span>
|
||||
|
|
|
|||
|
|
@ -282,7 +282,7 @@
|
|||
<div class="viewcode-block" id="CLIExecutor">
|
||||
<a class="viewcode-back" href="../../api/core/cli_executor.html#core.cli_executor.CLIExecutor">[docs]</a>
|
||||
<span class="k">class</span><span class="w"> </span><span class="nc">CLIExecutor</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Утилита для безопасного выполнения CLI‑команд.</span>
|
||||
<span class="w"> </span><span class="sd">"""Утилита для безопасного выполнения CLI-команд.</span>
|
||||
|
||||
<span class="sd"> Назначение:</span>
|
||||
<span class="sd"> Инкапсулирует вызов `subprocess.run` и приводит результат к удобному</span>
|
||||
|
|
|
|||
|
|
@ -280,18 +280,18 @@
|
|||
|
||||
<span class="sd">Назначение:</span>
|
||||
|
||||
<span class="sd">- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP‑запросов от имени выбранного интерфейса.</span>
|
||||
<span class="sd">- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP-запросов от имени выбранного интерфейса.</span>
|
||||
<span class="sd">- Помощь сервисам более высокого уровня (например, IPService) при проверке занятости адресов перед применением конфигураций.</span>
|
||||
|
||||
<span class="sd">Особенности реализации:</span>
|
||||
|
||||
<span class="sd">- Определяет подключённые сети интерфейса через `netifaces` и строит CIDR для сканирования.</span>
|
||||
<span class="sd">- Формирует ARP‑пакеты с помощью `scapy` (Ether/ARP) и отправляет их с таймаутом.</span>
|
||||
<span class="sd">- Формирует ARP-пакеты с помощью `scapy` (Ether/ARP) и отправляет их с таймаутом.</span>
|
||||
<span class="sd">- Добавляет локальный адрес интерфейса в результирующий список клиентов.</span>
|
||||
|
||||
<span class="sd">Требования/ограничения:</span>
|
||||
|
||||
<span class="sd">- Для отправки ARP‑кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</span>
|
||||
<span class="sd">- Для отправки ARP-кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span><span class="w"> </span><span class="nn">fastapi</span><span class="w"> </span><span class="kn">import</span> <span class="n">Depends</span>
|
||||
<span class="kn">from</span><span class="w"> </span><span class="nn">scapy.layers.l2</span><span class="w"> </span><span class="kn">import</span> <span class="n">ARP</span><span class="p">,</span> <span class="n">Ether</span>
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<h1>Source code for services.connect_service</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Сервис управления подключениями Wi‑Fi через `nmcli`.</span>
|
||||
<span class="sd">Сервис управления подключениями Wi-Fi через `nmcli`.</span>
|
||||
|
||||
<span class="sd">Назначение:</span>
|
||||
|
||||
|
|
@ -284,7 +284,7 @@
|
|||
|
||||
<span class="sd">Поведение:</span>
|
||||
|
||||
<span class="sd">- Автоматически определяет активный Wi‑Fi‑интерфейс.</span>
|
||||
<span class="sd">- Автоматически определяет активный Wi-Fi-интерфейс.</span>
|
||||
<span class="sd">- Валидирует наличие SSID в листинге перед подключением и интерпретирует частые ошибки `nmcli` (неверный пароль, отсутствующая сеть и т.п.).</span>
|
||||
|
||||
<span class="sd">Ограничения:</span>
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<h1>Source code for services.firewalld_service</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Сервис для управления firewalld через D‑Bus.</span>
|
||||
<span class="sd">Сервис для управления firewalld через D-Bus.</span>
|
||||
|
||||
<span class="sd">Назначение:</span>
|
||||
<span class="sd">- Обёртка над интерфейсами `org.fedoraproject.FirewallD1` для выполнения</span>
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<h1>Source code for services.ip_service</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Сервис проверки и применения IP‑настроек через NetworkManager (D‑Bus).</span>
|
||||
<span class="sd">Сервис проверки и применения IP-настроек через NetworkManager (D-Bus).</span>
|
||||
|
||||
<span class="sd">Назначение:</span>
|
||||
<span class="sd">- Перед применением конфигурации проверяет занятость IP адреса, сканируя сегмент</span>
|
||||
|
|
@ -285,7 +285,7 @@
|
|||
<span class="sd"> выполняет переподключение интерфейса.</span>
|
||||
|
||||
<span class="sd">Требования/ограничения:</span>
|
||||
<span class="sd">- Доступ к системной шине D‑Bus и права на изменения сетевых профилей.</span>
|
||||
<span class="sd">- Доступ к системной шине D-Bus и права на изменения сетевых профилей.</span>
|
||||
<span class="sd">- Структура входных данных должна соответствовать схеме `ipv4_updates` для</span>
|
||||
<span class="sd"> корректного обновления вложенных полей у профиля.</span>
|
||||
<span class="sd">"""</span>
|
||||
|
|
|
|||
|
|
@ -276,16 +276,16 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<h1>Source code for services.network_service</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Сервис чтения сетевого состояния через NetworkManager (D‑Bus).</span>
|
||||
<span class="sd">Сервис чтения сетевого состояния через NetworkManager (D-Bus).</span>
|
||||
|
||||
<span class="sd">Назначение:</span>
|
||||
<span class="sd">- Предоставляет асинхронные методы для сборки унифицированных моделей</span>
|
||||
<span class="sd"> сетевых интерфейсов (Ethernet/Wi‑Fi), их IP‑конфигураций, а также получения</span>
|
||||
<span class="sd"> имени хоста. Используется API‑слоем для визуализации и управления.</span>
|
||||
<span class="sd"> сетевых интерфейсов (Ethernet/Wi-Fi), их IP-конфигураций, а также получения</span>
|
||||
<span class="sd"> имени хоста. Используется API-слоем для визуализации и управления.</span>
|
||||
|
||||
<span class="sd">Особенности:</span>
|
||||
<span class="sd">- Фильтрация loopback и явно неактивных интерфейсов.</span>
|
||||
<span class="sd">- Адаптация данных D‑Bus в pydantic‑модели (`NetworkInterface`, `WiFiDevice`,</span>
|
||||
<span class="sd">- Адаптация данных D-Bus в pydantic-модели (`NetworkInterface`, `WiFiDevice`,</span>
|
||||
<span class="sd"> `NetworkInterfacesContainer`).</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">Union</span><span class="p">,</span> <span class="n">Optional</span>
|
||||
|
|
|
|||
|
|
@ -328,7 +328,7 @@
|
|||
|
||||
<span class="sd"> Назначение:</span>
|
||||
<span class="sd"> Обнаруживает активные устройства в локальной сети, отправляя широковещательные</span>
|
||||
<span class="sd"> ARP‑запросы по указанной подсети и собирая ответы (IP, MAC).</span>
|
||||
<span class="sd"> ARP-запросы по указанной подсети и собирая ответы (IP, MAC).</span>
|
||||
|
||||
<span class="sd"> Детали реализации:</span>
|
||||
<span class="sd"> - Использует `scapy` (`Ether` + `ARP`) для генерации пакетов и `srp` для</span>
|
||||
|
|
@ -393,7 +393,7 @@
|
|||
<span class="w"> </span><span class="sd">"""Класс для сканирования открытых портов на устройствах.</span>
|
||||
|
||||
<span class="sd"> Назначение:</span>
|
||||
<span class="sd"> Плейсхолдер для будущего функционала активного сканирования TCP/UDP‑портов</span>
|
||||
<span class="sd"> Плейсхолдер для будущего функционала активного сканирования TCP/UDP-портов</span>
|
||||
<span class="sd"> у обнаруженных узлов. В текущей версии возвращает пустой список.</span>
|
||||
|
||||
<span class="sd"> План развития:</span>
|
||||
|
|
@ -438,7 +438,7 @@
|
|||
<span class="sd"> Источники данных:</span>
|
||||
<span class="sd"> - MacLookup: сопоставление префикса MAC (OUI) с названием производителя.</span>
|
||||
<span class="sd"> - DNS: `gethostbyaddr` с малым таймаутом для обратного разрешения имени.</span>
|
||||
<span class="sd"> - NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS‑имён.</span>
|
||||
<span class="sd"> - NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS-имён.</span>
|
||||
|
||||
<span class="sd"> Политика кэширования:</span>
|
||||
<span class="sd"> - Результаты `get_vendor` кэшируются с помощью `functools.lru_cache`.</span>
|
||||
|
|
@ -552,13 +552,13 @@
|
|||
<span class="w"> </span><span class="sd">"""Класс для хранения и управления данными об устройствах.</span>
|
||||
|
||||
<span class="sd"> Формат файла подсети:</span>
|
||||
<span class="sd"> JSON‑структура вида</span>
|
||||
<span class="sd"> JSON-структура вида</span>
|
||||
<span class="sd"> {</span>
|
||||
<span class="sd"> "devices": [Device, ...]</span>
|
||||
<span class="sd"> }</span>
|
||||
|
||||
<span class="sd"> Политика очистки:</span>
|
||||
<span class="sd"> - Метод `_clean_old_devices` удаляет оффлайн‑устройства, не наблюдавшиеся</span>
|
||||
<span class="sd"> - Метод `_clean_old_devices` удаляет оффлайн-устройства, не наблюдавшиеся</span>
|
||||
<span class="sd"> более 7 дней, чтобы поддерживать актуальность списка.</span>
|
||||
<span class="sd"> """</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">base_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"storage/subnets"</span><span class="p">,</span> <span class="n">translations</span><span class="p">:</span> <span class="n">Translations</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
|
||||
|
|
@ -699,8 +699,8 @@
|
|||
<span class="sd"> 1) Определение подсети (вручную или авто по интерфейсу).</span>
|
||||
<span class="sd"> 2) Загрузка ранее сохранённых устройств подсети.</span>
|
||||
<span class="sd"> 3) Добавление локального устройства (если принадлежит подсети).</span>
|
||||
<span class="sd"> 4) ARP‑сканирование и параллельная обработка узлов (обогащение данных).</span>
|
||||
<span class="sd"> 5) Маркировка оффлайн‑узлов из кэша, не встреченных в текущем скане.</span>
|
||||
<span class="sd"> 4) ARP-сканирование и параллельная обработка узлов (обогащение данных).</span>
|
||||
<span class="sd"> 5) Маркировка оффлайн-узлов из кэша, не встреченных в текущем скане.</span>
|
||||
<span class="sd"> 6) Сортировка по IP и сохранение объединённого списка в JSON.</span>
|
||||
<span class="sd"> """</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">translations</span><span class="p">:</span> <span class="n">Translations</span><span class="p">):</span>
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@
|
|||
<div class="viewcode-block" id="WifiStorage">
|
||||
<a class="viewcode-back" href="../../api/services/wifi_service.html#services.wifi_service.WifiStorage">[docs]</a>
|
||||
<span class="k">class</span><span class="w"> </span><span class="nc">WifiStorage</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для хранения данных о Wi‑Fi сетях и их заметках по SSID.</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для хранения данных о Wi-Fi сетях и их заметках по SSID.</span>
|
||||
|
||||
<span class="sd"> Формат:</span>
|
||||
<span class="sd"> {</span>
|
||||
|
|
@ -359,7 +359,7 @@
|
|||
<div class="viewcode-block" id="WifiService">
|
||||
<a class="viewcode-back" href="../../api/services/wifi_service.html#services.wifi_service.WifiService">[docs]</a>
|
||||
<span class="k">class</span><span class="w"> </span><span class="nc">WifiService</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Сервис для сканирования текущих Wi‑Fi точек доступа и заметок.</span>
|
||||
<span class="w"> </span><span class="sd">"""Сервис для сканирования текущих Wi-Fi точек доступа и заметок.</span>
|
||||
|
||||
<span class="sd"> Источники данных:</span>
|
||||
<span class="sd"> - `pywifi` для базового сканирования и получения списка AP.</span>
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@
|
|||
<span class="sd"> где важна минимальная зависимость от внешних сервисов.</span>
|
||||
|
||||
<span class="sd"> Формат данных:</span>
|
||||
<span class="sd"> JSON‑структура вида:</span>
|
||||
<span class="sd"> JSON-структура вида:</span>
|
||||
<span class="sd"> {</span>
|
||||
<span class="sd"> "users": [</span>
|
||||
<span class="sd"> {"id": int, "username": str, "password_hash": str, "is_admin": bool},</span>
|
||||
|
|
|
|||
|
|
@ -293,7 +293,7 @@
|
|||
<span class="sd"> Назначение:</span>
|
||||
<span class="sd"> Лёгкое файловое хранилище для сессионных токенов, сопоставленных с</span>
|
||||
<span class="sd"> `client_id` (например, IP клиента). Предназначено для сред без БД и</span>
|
||||
<span class="sd"> persistent‑кэшей. Обеспечивает базовые операции и авто‑очистку протухших</span>
|
||||
<span class="sd"> persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших</span>
|
||||
<span class="sd"> сессий.</span>
|
||||
|
||||
<span class="sd"> Формат данных:</span>
|
||||
|
|
|
|||
|
|
@ -280,8 +280,8 @@
|
|||
|
||||
<span class="sd">Содержимое модуля:</span>
|
||||
<span class="sd"> - `get_translations()`: фабрика зависимости FastAPI, считывающая локаль из</span>
|
||||
<span class="sd"> query‑параметра `locale`, cookie `locale` или заголовка `Accept-Language`</span>
|
||||
<span class="sd"> (по приоритету), с дефолтом `ru`. Возвращает функцию‑зависимость, которая</span>
|
||||
<span class="sd"> query-параметра `locale`, cookie `locale` или заголовка `Accept-Language`</span>
|
||||
<span class="sd"> (по приоритету), с дефолтом `ru`. Возвращает функцию-зависимость, которая</span>
|
||||
<span class="sd"> подгружает `babel.support.Translations` из каталога `SRV/locales`.</span>
|
||||
<span class="sd"> - `_()`: удобная обёртка для получения перевода строки с использованием</span>
|
||||
<span class="sd"> текущей локали (или дефолтного `ru`, если контекст запроса не передан).</span>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue