"""Пути, доступные до завершения фоновой инициализации (миграции Alembic).""" from __future__ import annotations from typing import FrozenSet, Tuple # Префиксы: startup status, health, статика, API киоска (JSON, не редирект на /starting). STARTUP_GATE_PREFIXES: Tuple[str, ...] = ( "/api/startup/", "/api/health", "/api/kiosk/", "/static/", ) # Точные пути: экран загрузки, весы и legacy-эндпоинты (без HTML-редиректа на /starting). STARTUP_GATE_ALLOWED_PATHS: FrozenSet[str] = frozenset( { "/starting", "/favicon.ico", "/scales", "/calibration", "/db_check", "/component_loader", "/duplicate", "/unloading", "/current_weight", "/current_raw_data", "/stream_weight", "/tare", } ) def is_path_allowed_during_startup(path: str) -> bool: if not path: return False if path in STARTUP_GATE_ALLOWED_PATHS: return True for prefix in STARTUP_GATE_PREFIXES: if path.startswith(prefix): return True return False