Понятно, где лежат настройки

Правки в app/config.py не действуют и теряются при обновлении: это код,
а настройки читаются из config.toml. Теперь при старте печатается путь
к нему и что фактически применилось - задан ли токен и сколько адресов
разрешено. В самом модуле - предупреждение вверху файла.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vladimir Bryzgalov
2026-08-15 22:08:28 +05:00
co-authored by Claude Opus 5
parent c704fb5068
commit 13cccb18d1
4 changed files with 28 additions and 2 deletions
+6 -1
View File
@@ -1,4 +1,9 @@
"""Настройки сервиса: читаются из config.toml рядом с исполняемым файлом."""
"""Чтение настроек сервиса.
ЭТО КОД, А НЕ НАСТРОЙКИ. Править нужно файл config.toml рядом со start.bat -
он создаётся при первом запуске и обновлением не затрагивается. Правки в этом
файле не подействуют (config.toml уже существует) и пропадут при обновлении.
"""
import os
import secrets
import tomllib
+5
View File
@@ -219,6 +219,11 @@ def run() -> None:
print("\n Модели не найдены. Сначала запустите download_models.bat"
"\n Сервис поднимется, но принимать записи не сможет.\n")
nets = len(allowlist)
access = f"только с {nets} адресов" if nets else "со ВСЕХ адресов"
print(f"\n Настройки: {settings.base_dir / 'config.toml'}"
f"\n Токен: {'задан' if settings.token else 'НЕ ЗАДАН, сервис никого не пустит'}"
f"\n Доступ: {access}")
print(f"\n talkscore-asr слушает http://{settings.host}:{settings.port}"
f"\n Потоков: {settings.effective_threads()}"
f"\n Проверка: curl http://localhost:{settings.port}/health"
+1 -1
View File
@@ -1 +1 @@
__version__ = "0.1.5"
__version__ = "0.1.6"
+16
View File
@@ -148,3 +148,19 @@ class TestHealthDiagnostics:
"""Список разрешённых адресов - не для посторонних глаз."""
body = client.get("/health").json()
assert "allow_ips" not in body and "allowlist" not in body
class TestConfigFileIsNotCode:
"""Настройки правятся в config.toml; app/config.py - код и обновляется."""
def test_update_archive_never_carries_user_config(self):
from app.updater import USER_FILES
assert "config.toml" in USER_FILES
def test_config_module_warns_it_is_not_settings(self):
from pathlib import Path
src = Path(__file__).resolve().parent.parent / "app" / "config.py"
text = src.read_text(encoding="utf-8")
assert "ЭТО КОД, А НЕ НАСТРОЙКИ" in text