From 20a22e8e5bd0f02435fa7dc6b770a003d5c66f1a Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Tue, 30 Jun 2026 15:20:57 -0500 Subject: [PATCH] fix: limpiar espacios en horas desde la fuente en _safe de Firebird Usa strftime en vez de isoformat y aplica re.sub para eliminar espacios alrededor de los dos puntos en strings de tiempo de fdb. Co-Authored-By: Claude Sonnet 4.6 --- app/services/firebird_service.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/services/firebird_service.py b/app/services/firebird_service.py index aeedc1c..79578b9 100644 --- a/app/services/firebird_service.py +++ b/app/services/firebird_service.py @@ -9,16 +9,20 @@ def _safe(v): if v is None: return None if isinstance(v, datetime.datetime): - return v.isoformat() + return v.strftime("%Y-%m-%dT%H:%M:%S") if isinstance(v, datetime.date): return v.isoformat() + if isinstance(v, datetime.time): + return v.strftime("%H:%M:%S") if isinstance(v, decimal.Decimal): return float(v) if isinstance(v, (bytes, bytearray, memoryview)): return f"" - if isinstance(v, (int, float, str, bool)): + if isinstance(v, (int, float, bool)): return v - return str(v) + # strings: strip any spaces around colons (Firebird sometimes returns "12: 47: 37") + s = str(v) + return re.sub(r'\s*:\s*', ':', s) if ':' in s else s class FirebirdService: