agroplan-ai-cli 1.0.12 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,6 +8,19 @@ from core.planner import gerar_cenarios, gerar_plano_genetico
|
|
|
8
8
|
from core.bruteforce_validator import comparar_ag_com_forca_bruta, executar_multiplas_rodadas
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
def safe_print(message):
|
|
12
|
+
"""
|
|
13
|
+
Print seguro que funciona no Windows mesmo com emojis
|
|
14
|
+
|
|
15
|
+
Tenta print normal, se falhar por encoding, remove caracteres não-ASCII
|
|
16
|
+
"""
|
|
17
|
+
try:
|
|
18
|
+
print(message)
|
|
19
|
+
except UnicodeEncodeError:
|
|
20
|
+
# Fallback: remove caracteres não-ASCII
|
|
21
|
+
print(message.encode("ascii", errors="ignore").decode("ascii"))
|
|
22
|
+
|
|
23
|
+
|
|
11
24
|
def format_currency_brl(value):
|
|
12
25
|
"""Formata valor monetário em padrão brasileiro"""
|
|
13
26
|
return f"R$ {value:,.2f}".replace(",", "X").replace(".", ",").replace("X", ".")
|
|
@@ -101,10 +114,10 @@ def gerar_relatorio_completo(culturas, talhoes, regras, objetivo='equilibrado',
|
|
|
101
114
|
Caminho do arquivo gerado
|
|
102
115
|
"""
|
|
103
116
|
# Executa todas as análises
|
|
104
|
-
|
|
117
|
+
safe_print(" 📊 Gerando cenários...")
|
|
105
118
|
cenarios = gerar_cenarios(culturas, talhoes, regras)
|
|
106
119
|
|
|
107
|
-
|
|
120
|
+
safe_print(" 🧬 Executando Algoritmo Genético...")
|
|
108
121
|
# Aplicar contexto climático se disponível
|
|
109
122
|
if contexto_climatico:
|
|
110
123
|
from core.climate_adapter import aplicar_contexto_climatico_no_plano
|
|
@@ -113,10 +126,10 @@ def gerar_relatorio_completo(culturas, talhoes, regras, objetivo='equilibrado',
|
|
|
113
126
|
else:
|
|
114
127
|
resultado_ag = gerar_plano_genetico(culturas, talhoes, regras, objetivo, seed=42)
|
|
115
128
|
|
|
116
|
-
|
|
129
|
+
safe_print(" 🔬 Validando com força bruta...")
|
|
117
130
|
validacao = comparar_ag_com_forca_bruta(culturas, talhoes, regras, objetivo, seed=42)
|
|
118
131
|
|
|
119
|
-
|
|
132
|
+
safe_print(" 🔄 Analisando estabilidade (5 rodadas)...")
|
|
120
133
|
estabilidade = executar_multiplas_rodadas(culturas, talhoes, regras, objetivo, rodadas=5)
|
|
121
134
|
|
|
122
135
|
# Gera conteúdo do relatório
|