[Python-Dev] pep-0557 dataclasses top level module vs part of collections?

Raymond Hettinger raymond.hettinger at gmail.com
Fri Dec 22 01:47:12 EST 2017



> On Dec 21, 2017, at 3:21 PM, Gregory P. Smith <greg at krypto.org> wrote:
> 
> It seems a suggested use is "from dataclasses import dataclass"
> 
> But people are already familiar with "from collections import namedtuple" which suggests to me that "from collections import dataclass" would be a more natural sounding API addition.

This might make sense if it were a single self contained function.  But dataclasses are their own little ecosystem that warrants its own module namespace:

>>> import dataclasses
>>> dataclasses.__all__
['dataclass', 'field', 'FrozenInstanceError', 'InitVar', 'fields', 'asdict', 'astuple', 'make_dataclass', 'replace']

Also, remember that dataclasses have a dual role as a data holder (which is collection-like) and as a generator of boilerplate code (which is more like functools.total_ordering).

I support Eric's decision to make this a separate module.


Raymond




More information about the Python-Dev mailing list