Eric V. Smith <e...@trueblade.com> added the comment:
Thanks for the pointer, Ivan. I haven't really thought it through yet, but this fixes the problem at hand: diff --git a/dataclasses.py b/dataclasses.py index ba34f6b..54916ee 100644 --- a/dataclasses.py +++ b/dataclasses.py @@ -1019,7 +1019,7 @@ def _asdict_inner(obj, dict_factory): result.append((f.name, value)) return dict_factory(result) elif isinstance(obj, (list, tuple)): - return type(obj)(_asdict_inner(v, dict_factory) for v in obj) + return type(obj)(*[_asdict_inner(v, dict_factory) for v in obj]) elif isinstance(obj, dict): return type(obj)((_asdict_inner(k, dict_factory), _asdict_inner(v, dict_factory)) for k, v in obj.items()) There are plenty more tests needed for this, plus I need to think it through some more. astuple() has the same issue. I'll also have to think about the dict subclass case, too. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34363> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com