ESJL commited on
Commit
715dbd4
·
verified ·
1 Parent(s): 1488ec2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -17
app.py CHANGED
@@ -237,32 +237,42 @@ def interpolar(df, coluna_cdlog, coluna_num):
237
  # Número fora do intervalo
238
  # --------------------------------------------------
239
  if seg_validos.empty:
240
-
241
- # gerar sugestões
242
- linha_base = segmentos.iloc[0]
243
-
244
- ini = linha_base[ini_col]
245
- fim = linha_base[fim_col]
246
-
247
- if pd.notna(ini) and pd.notna(fim):
248
- numeros_validos = list(range(int(ini), int(fim) + 1, 2))
249
- numeros_validos.sort(key=lambda x: abs(x - numero))
250
- sugestoes = ", ".join(map(str, numeros_validos[:10]))
251
- else:
252
- sugestoes = ""
253
-
 
 
 
 
 
 
 
 
 
 
254
  lons.append(None)
255
  lats.append(None)
256
-
257
  falhas.append({
258
  "_idx": idx,
259
  "CDLOG": cdlog,
260
  "Numero Atual": numero,
261
  "Motivo": "Numeração fora do intervalo",
262
- "Sugestões": sugestoes,
263
  "Novo Número": None
264
  })
265
-
266
  continue
267
 
268
  # --------------------------------------------------
 
237
  # Número fora do intervalo
238
  # --------------------------------------------------
239
  if seg_validos.empty:
240
+
241
+ sugestao_formatada = ""
242
+
243
+ if not segmentos.empty:
244
+
245
+ if numero % 2 == 0:
246
+ diffs = (segmentos["NRPARINI"] - numero).abs()
247
+ ini_col = "NRPARINI"
248
+ fim_col = "NRPARFIN"
249
+ else:
250
+ diffs = (segmentos["NRIMPINI"] - numero).abs()
251
+ ini_col = "NRIMPINI"
252
+ fim_col = "NRIMPFIN"
253
+
254
+ if not diffs.empty:
255
+ min_index = diffs.idxmin()
256
+ linha_proxima = segmentos.loc[min_index]
257
+
258
+ ini = linha_proxima[ini_col]
259
+ fim = linha_proxima[fim_col]
260
+
261
+ if pd.notna(ini) and pd.notna(fim):
262
+ sugestao_formatada = f"Intervalo válido: {int(ini)} até {int(fim)}"
263
+
264
  lons.append(None)
265
  lats.append(None)
266
+
267
  falhas.append({
268
  "_idx": idx,
269
  "CDLOG": cdlog,
270
  "Numero Atual": numero,
271
  "Motivo": "Numeração fora do intervalo",
272
+ "Sugestões": sugestao_formatada,
273
  "Novo Número": None
274
  })
275
+
276
  continue
277
 
278
  # --------------------------------------------------