-
-
Notifications
You must be signed in to change notification settings - Fork 129
Closed
Description
from datetime import date, datetime
import tomlkit
from attrs import define
from cattrs.preconf.tomlkit import make_converter
@define
class Event:
event_date: date
event_datetime: datetime
TOML_INPUT = """\
event_date = 2025-12-16
event_datetime = 2025-12-16T20:00:00
"""
def main() -> None:
converter = make_converter()
parsed = tomlkit.loads(TOML_INPUT)
print(converter.structure(parsed, Event))
if __name__ == "__main__":
main() + Exception Group Traceback (most recent call last):
| File "cattrs_tomlkit_issue.py", line 28, in <module>
| main()
| File "cattrs_tomlkit_issue.py", line 24, in main
| converter.structure(parsed, Event)
| File ".venv/lib/python3.12/site-packages/cattrs/converters.py", line 589, in structure
| return self._structure_func.dispatch(cl)(obj, cl)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<cattrs generated structure __main__.Event>", line 14, in structure_Event
| cattrs.errors.ClassValidationError: While structuring Event (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "<cattrs generated structure __main__.Event>", line 5, in structure_Event
| File ".venv/lib/python3.12/site-packages/cattrs/preconf/tomlkit.py", line 73, in <lambda>
| converter.register_structure_hook(date, lambda v, _: date.fromisoformat(v))
| ^^^^^^^^^^^^^^^^^^^^^
| TypeError: fromisoformat: argument must be str
| Structuring class Event @ attribute event_date
+------------------------------------