Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 33.9k
Closed as not planned
Closed as not planned
Copy link
Labels
type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Minimal working example:
fromdataclassesimportdataclass, field, asdictfromtypingimportDefaultDictfromcollectionsimportdefaultdictdefdefault_list_dict(): returndefaultdict(list) @dataclassclassData: metadata: DefaultDict=field(default_factory=default_list_dict) D=Data() # => Data(metadata=defaultdict(<class 'list'>,{}))asdict(D)- Expected output:
{'metadata': defaultdict(list,{})} - Got instead:
TypeError: first argument must be callable or None
Display traceback
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[1], line 13 10 metadata: DefaultDict = field(default_factory=default_list_dict) 12 D = Data() ---> 13 asdict(D) File ~/miniconda3/lib/python3.10/dataclasses.py:1238, in asdict(obj, dict_factory) 1236 if not _is_dataclass_instance(obj): 1237 raise TypeError("asdict() should be called on dataclass instances") -> 1238 return _asdict_inner(obj, dict_factory) File ~/miniconda3/lib/python3.10/dataclasses.py:1245, in _asdict_inner(obj, dict_factory) 1243 result = [] 1244 for f in fields(obj): -> 1245 value = _asdict_inner(getattr(obj, f.name), dict_factory) 1246 result.append((f.name, value)) 1247 return dict_factory(result) File ~/miniconda3/lib/python3.10/dataclasses.py:1275, in _asdict_inner(obj, dict_factory) 1273 return type(obj)(_asdict_inner(v, dict_factory) for v in obj) 1274 elif isinstance(obj, dict): -> 1275 return type(obj)((_asdict_inner(k, dict_factory), 1276 _asdict_inner(v, dict_factory)) 1277 for k, v in obj.items()) 1278 else: 1279 return copy.deepcopy(obj) TypeError: first argument must be callable or NoneYour environment
- CPython versions tested on: Python 3.10.11 [GCC 11.2.0] on linux
- Operating system and architecture: Linux 6.1.31-2-MANJARO Support "bpo-" in Misc/NEWS #1 SMP PREEMPT_DYNAMIC Sun Jun 4 12:31:46 UTC 2023 x86_64 GNU/Linux
Metadata
Metadata
Assignees
Labels
type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error