From 9d87c3fa1c021ef164d1fc5db1108b553760072e Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Tue, 30 Jun 2026 20:01:28 -0500 Subject: [PATCH] fix: usar regex en _fmt_datetime para eliminar espacios en horas de Firebird re.sub('\s*:\s*', ':') captura cualquier tipo de espacio alrededor de los dos puntos, incluyendo tipos no-ASCII que .replace() no atrapa. Co-Authored-By: Claude Sonnet 4.6 --- app/services/json_generator.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/services/json_generator.py b/app/services/json_generator.py index 416a7ff..ea320ef 100644 --- a/app/services/json_generator.py +++ b/app/services/json_generator.py @@ -1,3 +1,4 @@ +import re as _re from collections import defaultdict from datetime import datetime, date from typing import Optional @@ -5,6 +6,11 @@ from typing import Optional # ── helpers de formato de fecha ────────────────────────────────────────────── +def _clean_dt(s: str) -> str: + """Elimina cualquier espacio alrededor de los dos puntos en horas.""" + return _re.sub(r'\s*:\s*', ':', s) + + def _fmt_fecha(val) -> str: if not val: return "" @@ -17,16 +23,15 @@ def _fmt_fecha(val) -> str: return s -def _clean_time(s: str) -> str: - return s.replace(": ", ":").replace(" :", ":") - - def _fmt_datetime(val) -> str: if not val: return "" + # Convertir a string primero para poder limpiar espacios if hasattr(val, "strftime"): - return _clean_time(val.strftime("%d/%m/%Y %H:%M:%S")) - s = _clean_time(str(val)) + s = val.strftime("%d/%m/%Y %H:%M:%S") + else: + s = str(val) + s = _clean_dt(s) s = s[:19].replace("T", " ") parts = s.split(" ") if len(parts) == 2: