diff --git a/shared/sx/primitives_io.py b/shared/sx/primitives_io.py index 02ad8f1..bb9e65a 100644 --- a/shared/sx/primitives_io.py +++ b/shared/sx/primitives_io.py @@ -225,7 +225,10 @@ def _dto_to_dict(obj: Any) -> dict[str, Any]: keys for any datetime-valued field so sx handlers can build URL paths without parsing date strings. """ - if hasattr(obj, "_asdict"): + if hasattr(obj, "__dataclass_fields__"): + import dataclasses + d = dataclasses.asdict(obj) + elif hasattr(obj, "_asdict"): d = dict(obj._asdict()) elif hasattr(obj, "__dict__"): d = {k: v for k, v in obj.__dict__.items() if not k.startswith("_")}