generated from dopt-python/py311
enable datetime objects in parser
This commit is contained in:
@@ -221,7 +221,7 @@ class FlatBaseModel(BaseModel):
|
|||||||
|
|
||||||
def to_db(self) -> dict[str, Any]:
|
def to_db(self) -> dict[str, Any]:
|
||||||
"""Ausgang für die DB: Flach, Listen sind JSON-Strings."""
|
"""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)
|
return self.__flatten_dict(nested, serialize_lists=True)
|
||||||
|
|
||||||
def to_gui(self) -> dict[str, Any]:
|
def to_gui(self) -> dict[str, Any]:
|
||||||
@@ -251,7 +251,7 @@ class FlatBaseModel(BaseModel):
|
|||||||
processed_list.append(item)
|
processed_list.append(item)
|
||||||
|
|
||||||
if serialize_lists:
|
if serialize_lists:
|
||||||
items.append((new_key, json.dumps(processed_list)))
|
items.append((new_key, json.dumps(processed_list, default=_parse_json)))
|
||||||
else:
|
else:
|
||||||
items.append((new_key, processed_list))
|
items.append((new_key, processed_list))
|
||||||
else:
|
else:
|
||||||
@@ -259,6 +259,15 @@ class FlatBaseModel(BaseModel):
|
|||||||
return dict(items)
|
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)
|
@dc.dataclass(slots=True)
|
||||||
class CountryList:
|
class CountryList:
|
||||||
iso_to_country: dict[str, str]
|
iso_to_country: dict[str, str]
|
||||||
|
|||||||
Reference in New Issue
Block a user