From fce3429f3440cc6e12503b98723cb6269bd5a7bd Mon Sep 17 00:00:00 2001 From: foefl Date: Fri, 22 May 2026 13:45:08 +0200 Subject: [PATCH] enable datetime objects in parser --- prototypes/t_qt_2.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/prototypes/t_qt_2.py b/prototypes/t_qt_2.py index e6ef3df..8ab8a0f 100644 --- a/prototypes/t_qt_2.py +++ b/prototypes/t_qt_2.py @@ -221,7 +221,7 @@ class FlatBaseModel(BaseModel): def to_db(self) -> dict[str, Any]: """Ausgang für die DB: Flach, Listen sind JSON-Strings.""" - nested = super().model_dump(mode="json") + nested = super().model_dump() return self.__flatten_dict(nested, serialize_lists=True) def to_gui(self) -> dict[str, Any]: @@ -251,7 +251,7 @@ class FlatBaseModel(BaseModel): processed_list.append(item) if serialize_lists: - items.append((new_key, json.dumps(processed_list))) + items.append((new_key, json.dumps(processed_list, default=_parse_json))) else: items.append((new_key, processed_list)) else: @@ -259,6 +259,15 @@ class FlatBaseModel(BaseModel): return dict(items) +def _parse_json(value: Any) -> str: + if isinstance(value, datetime.date): + return value.isoformat() + elif isinstance(value, datetime.datetime): + return value.isoformat() + else: + raise TypeError + + @dc.dataclass(slots=True) class CountryList: iso_to_country: dict[str, str]