Initial project import

This commit is contained in:
Lucas
2026-06-26 18:07:04 -03:00
commit 6443c0e2dc
48 changed files with 3948 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
"""Teste rapido de instalacao do Planejador Missao.
Entradas:
Ambiente Python atual, dependencias instaladas e arquivos em dados/.
Saidas:
Diagnostico amigavel no terminal e log em logs/execucao.log.
Papel no pipeline:
Permite verificar rapidamente se o computador esta pronto para executar o
planejador e o solver HiGHS/scipy.optimize.milp.
"""
from __future__ import annotations
import importlib
import sys
import numpy as np
from scipy.optimize import Bounds, LinearConstraint, milp
config = importlib.import_module("01_config")
io_utils = importlib.import_module("02_io_utils")
def testar_solver_minimo() -> None:
"""Resolve um MILP minimo para comprovar que scipy.optimize.milp funciona."""
c = np.array([-1.0, -2.0])
integrality = np.ones(2)
bounds = Bounds([0, 0], [1, 1])
constraints = [LinearConstraint([[1, 1]], -np.inf, 1)]
result = milp(c=c, integrality=integrality, bounds=bounds, constraints=constraints)
if not result.success:
raise RuntimeError(f"Erro: teste minimo do solver falhou: {result.message}")
def main() -> None:
"""Executa todas as verificacoes de ambiente."""
logger = io_utils.configurar_logger("teste_instalacao")
print(f"Python encontrado: {sys.version.split()[0]}")
for pacote in ["pandas", "numpy", "openpyxl", "scipy"]:
importlib.import_module(pacote)
print(f"Biblioteca OK: {pacote}")
config.garantir_diretorios()
for diretorio in [config.DADOS_DIR, config.RESULTADOS_DIR, config.SRC_DIR, config.LOGS_DIR, config.TEMP_DIR]:
if not diretorio.exists():
raise RuntimeError(f"Erro: diretorio obrigatorio ausente: {diretorio}")
print(f"Diretorio OK: {diretorio.name}")
cadastro = config.ARQUIVO_CADASTRO_LOCAL if config.ARQUIVO_CADASTRO_LOCAL.exists() else config.ARQUIVO_CADASTRO_ORIGINAL
io_utils.exigir_arquivos([cadastro, *config.ARQUIVOS_ENTRADA_OBRIGATORIOS])
print("Arquivos de entrada OK")
testar_solver_minimo()
print("Solver scipy.optimize.milp/HiGHS OK")
logger.info("Teste de instalacao concluido com sucesso.")
print("Ambiente OK para executar o Planejador Missao.")
if __name__ == "__main__":
main()