Message323312
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. |
|
Date |
User |
Action |
Args |
2018-08-09 02:54:31 | eric.smith | set | recipients:
+ eric.smith, levkivskyi, alexdelorenzo |
2018-08-09 02:54:31 | eric.smith | set | messageid: <1533783271.31.0.56676864532.issue34363@psf.upfronthosting.co.za> |
2018-08-09 02:54:31 | eric.smith | link | issue34363 messages |
2018-08-09 02:54:30 | eric.smith | create | |
|