New submission from bscarlett <[email protected]>:
I noticed that dataclasses.asdict seems to incorrectly reconstruct
collections.Counter objects with the counter values as tuple keys.
eg:
In [1]: from collections import Counter
In [2]: from dataclasses import dataclass, asdict
In [3]: c = Counter()
In [4]: c['stuff'] += 1
In [5]: @dataclass
...: class Bob:
...: c: Counter
...:
In [6]: b = Bob(c)
In [7]: c
Out[7]: Counter({'stuff': 1})
In [9]: b.c
Out[9]: Counter({'stuff': 1})
In [10]: asdict(b)
Out[10]: {'c': Counter({('stuff', 1): 1})}
In [11]: asdict(b)['c']
Out[11]: Counter({('stuff', 1): 1})
The Counter gets reconstructed with its item tuples as keys.
This problem seems to have similar aspects to https://bugs.python.org/issue35540
----------
components: Library (Lib)
messages: 363884
nosy: [email protected]
priority: normal
severity: normal
status: open
title: dataclasses.asdict will mangle collection.Counter instances
type: behavior
versions: Python 3.8
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue39929>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com