Initial project import
This commit is contained in:
73
scripts/03_preparar_dados.py
Normal file
73
scripts/03_preparar_dados.py
Normal 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()
|
||||
Reference in New Issue
Block a user