"""Funcoes auxiliares da interface web local. Entradas: Estrutura padrao do projeto e web_app.py. Saidas: Inicializacao local da interface em http://127.0.0.1:8050 quando chamado diretamente. Papel no pipeline: Facilita acesso ao app Python com interface web local. """ from __future__ import annotations import importlib import subprocess import sys config = importlib.import_module("01_config") io_utils = importlib.import_module("02_io_utils") def comando_python_app() -> list[str]: """Retorna comando portavel para iniciar a interface web local.""" pythonw = config.PROJECT_ROOT / ".venv" / "Scripts" / "pythonw.exe" python = config.PROJECT_ROOT / ".venv" / "Scripts" / "python.exe" exe = pythonw if pythonw.exists() else python if python.exists() else sys.executable return [str(exe), str(config.PROJECT_ROOT / "web_app.py")] def abrir_app() -> None: """Inicia o app em segundo plano sem janela de console quando possível.""" io_utils.configurar_ambiente() subprocess.Popen(comando_python_app(), cwd=config.PROJECT_ROOT) def main() -> None: abrir_app() print("Interface web local iniciada em http://127.0.0.1:8050") if __name__ == "__main__": main()