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,73 @@
"""Preparacao das bases operacionais do Planejador Missao.
Entradas:
Planilhas e CSVs em dados/: cadastro, catalogo de OIs, indisponibilidades,
progresso, historico, aeronaves, tripulantes disponiveis e rotas acionadas.
Saidas:
Dicionario com DataFrames normalizados para geracao de colunas candidatas.
Papel no pipeline:
Concentra a leitura e a preparacao antes do MILP, mantendo rastreavel quais
arquivos alimentam cada execucao.
"""
from __future__ import annotations
import importlib
from pathlib import Path
config = importlib.import_module("01_config")
io_utils = importlib.import_module("02_io_utils")
def carregar_bases(base_dir: Path = config.PROJECT_ROOT) -> dict:
"""Le e normaliza todas as bases necessarias ao planejamento diario."""
io_utils.configurar_ambiente()
io_utils.exigir_arquivos(config.ARQUIVOS_ENTRADA_OBRIGATORIOS)
from src.planejador_missao.data_io import (
carregar_aeronaves,
carregar_cadastro,
carregar_catalogo_ois,
carregar_historico,
carregar_indisponibilidades,
carregar_parametros,
carregar_progresso_ois,
carregar_rotas,
carregar_tripulantes_disponiveis,
)
from src.planejador_missao.rules import combinar_progresso_com_historico
parametros = carregar_parametros(base_dir)
historico = carregar_historico(base_dir)
cadastro = carregar_cadastro(base_dir, historico)
catalogo = carregar_catalogo_ois(base_dir)
indisponibilidades = carregar_indisponibilidades(base_dir)
progresso = combinar_progresso_com_historico(carregar_progresso_ois(base_dir), historico, catalogo)
return {
"parametros": parametros,
"historico": historico,
"cadastro": cadastro,
"catalogo": catalogo,
"indisponibilidades": indisponibilidades,
"progresso": progresso,
"aeronaves": carregar_aeronaves(base_dir),
"disponiveis": carregar_tripulantes_disponiveis(base_dir),
"rotas": carregar_rotas(base_dir),
}
def main() -> None:
"""Executa uma leitura de diagnostico das bases."""
logger = io_utils.configurar_logger("preparar_dados")
bases = carregar_bases()
logger.info("Tripulantes no cadastro: %s", len(bases["cadastro"]))
logger.info("Tripulantes disponiveis: %s", len(bases["disponiveis"]))
logger.info("Aeronaves informadas: %s", len(bases["aeronaves"]))
logger.info("Rotas acionadas: %s", len(bases["rotas"]))
if __name__ == "__main__":
main()