74 lines
2.5 KiB
Python
74 lines
2.5 KiB
Python
"""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()
|