From 03c49a8f687d6b5c4c687da3e204a28bf9ac7d8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominic=20K=C3=B6nig?= Date: Tue, 3 Feb 2026 10:57:26 +0100 Subject: [PATCH] Treat empty string as None in _todate/_totime/_todatetime filter_in --- pydal/objects.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pydal/objects.py b/pydal/objects.py index b50dda03a..caf151f97 100644 --- a/pydal/objects.py +++ b/pydal/objects.py @@ -2223,8 +2223,8 @@ def __init__( @staticmethod def _todate(value, regex=re.compile(r"^\d\d\d\d-\d\d-\d\d$")): - if value is None: - return value + if value in (None, ""): + return None if isinstance(value, datetime.date): value = value.isoformat() value = str(value)[:10] @@ -2233,8 +2233,8 @@ def _todate(value, regex=re.compile(r"^\d\d\d\d-\d\d-\d\d$")): @staticmethod def _totime(value, regex=re.compile(r"^\d\d:\d\d:\d\d$")): - if value is None: - return value + if value in (None, ""): + return None if isinstance(value, datetime.time): value = str(value) value = f"{value}:00:00"[:8] @@ -2243,8 +2243,8 @@ def _totime(value, regex=re.compile(r"^\d\d:\d\d:\d\d$")): @staticmethod def _todatetime(value, regex=re.compile(r"^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d$")): - if value is None: - return value + if value in (None, ""): + return None if isinstance(value, (datetime.date, datetime.datetime)): value = str(value) value = value.replace("T", " ")