mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
18 lines
No EOL
552 B
Python
18 lines
No EOL
552 B
Python
from datetime import datetime, date
|
|
from typing import Any
|
|
|
|
|
|
def normalise_date(value: Any, allow_none: bool = True) -> date | None:
|
|
if value is None and allow_none:
|
|
return None
|
|
|
|
if isinstance(value, datetime):
|
|
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}") |