73 lines
2.2 KiB
Python
73 lines
2.2 KiB
Python
"""Configuração central dos scripts do Planejador Missão.
|
|
|
|
Entradas:
|
|
Estrutura padrão do projeto, com pastas dados/, src/ e resultados/.
|
|
|
|
Saídas:
|
|
Constantes de caminho, parâmetros operacionais, nomes de arquivos e pesos
|
|
usados pelos scripts de execução, validação e teste.
|
|
|
|
Papel no pipeline:
|
|
Evita caminhos absolutos e concentra convencoes para que o projeto rode em
|
|
qualquer computador mantendo a mesma estrutura de diretorios.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
SCRIPTS_DIR = PROJECT_ROOT / "scripts"
|
|
SRC_DIR = PROJECT_ROOT / "src"
|
|
DADOS_DIR = PROJECT_ROOT / "dados"
|
|
RESULTADOS_DIR = PROJECT_ROOT / "resultados"
|
|
VALIDACAO_DIR = RESULTADOS_DIR / "validacao"
|
|
LOGS_DIR = PROJECT_ROOT / "logs"
|
|
TEMP_DIR = PROJECT_ROOT / "temp"
|
|
|
|
ARQUIVO_PARAMETROS = DADOS_DIR / "parametros_missao.csv"
|
|
ARQUIVO_CADASTRO_LOCAL = DADOS_DIR / "Modelagem_C98_ETA2_local.xlsx"
|
|
ARQUIVO_CADASTRO_ORIGINAL = DADOS_DIR / "Modelagem C98 ETA2.xlsx"
|
|
ARQUIVO_CATALOGO_OIS = DADOS_DIR / "catalogo_ois.xlsx"
|
|
ARQUIVO_INDISPONIBILIDADES = DADOS_DIR / "indisponibilidades_2026.xlsx"
|
|
ARQUIVO_HISTORICO = DADOS_DIR / "historico_horas_voadas.csv"
|
|
ARQUIVO_QUADRO_VOO_2025 = DADOS_DIR / "Quadro de Voo 2025 (2).xlsx"
|
|
ARQUIVO_VOOS_2025 = DADOS_DIR / "validacao" / "voos_2025.csv"
|
|
|
|
LOG_EXECUCAO = LOGS_DIR / "execucao.log"
|
|
|
|
AERONAVES = ["C98", "C97", "C95"]
|
|
META_HORAS_PADRAO = 50.0
|
|
VALIDACAO_TEMPO_LIMITE_SEGUNDOS = 180.0
|
|
VALIDACAO_GAP_RELATIVO = 0.05
|
|
|
|
PESOS_OBJETIVO = {
|
|
"rota_acionada": 100000,
|
|
"missao_local": 1000,
|
|
"sobreaviso": 0,
|
|
"meta_50": 100,
|
|
"meta_110": 100,
|
|
"beneficio_paop": 10,
|
|
"custo_financeiro": -0.05,
|
|
}
|
|
|
|
ABAS = {
|
|
"cadastro": "BANCO DE DADOS 2026",
|
|
"catalogo_ois": "catalogo_ois",
|
|
"voos_2025": "VOOS",
|
|
"relatorio_diario": "ESCALA DIARIA",
|
|
}
|
|
|
|
ARQUIVOS_ENTRADA_OBRIGATORIOS = [
|
|
ARQUIVO_CATALOGO_OIS,
|
|
ARQUIVO_INDISPONIBILIDADES,
|
|
ARQUIVO_PARAMETROS,
|
|
]
|
|
|
|
|
|
def garantir_diretorios() -> None:
|
|
"""Cria diretórios de saída e apoio usados pelos scripts."""
|
|
for path in [RESULTADOS_DIR, VALIDACAO_DIR, LOGS_DIR, TEMP_DIR, ARQUIVO_VOOS_2025.parent]:
|
|
path.mkdir(parents=True, exist_ok=True)
|