handle dates as strings

This commit is contained in:
Daniel Roth 2026-01-19 16:41:13 +00:00
parent 330580c775
commit 12bbd1a4fe

View file

@ -5,6 +5,14 @@ from typing import Any
def normalise_date(value: Any, allow_none: bool = True) -> date | None: def normalise_date(value: Any, allow_none: bool = True) -> date | None:
if value is None and allow_none: if value is None and allow_none:
return None return None
if isinstance(value, datetime): if isinstance(value, datetime):
return value.date() return value.date()
if isinstance(value, str):
try:
return datetime.strptime(value.strip(), "%d/%m/%Y").date()
except ValueError as exc:
raise ValueError(f"Invalid date string: {value!r}") from exc
raise ValueError(f"Unexpected date value: {value!r}") raise ValueError(f"Unexpected date value: {value!r}")