Initial project import
This commit is contained in:
72
scripts/01_config.py
Normal file
72
scripts/01_config.py
Normal file
@@ -0,0 +1,72 @@
|
||||
"""Configuracao central dos scripts do Planejador Missao.
|
||||
|
||||
Entradas:
|
||||
Estrutura padrao do projeto, com pastas dados/, src/ e resultados/.
|
||||
|
||||
Saidas:
|
||||
Constantes de caminho, parametros operacionais, nomes de arquivos e pesos
|
||||
usados pelos scripts de execucao, validacao 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 diretorios de saida 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)
|
||||
Reference in New Issue
Block a user