On 12/10/2017 5:00 PM, Raymond Hettinger wrote:


On Dec 10, 2017, at 1:37 PM, Eric V. Smith <e...@trueblade.com> wrote:

On 12/10/2017 4:29 PM, Ivan Levkivskyi wrote:
On 10 December 2017 at 22:24, Raymond Hettinger 
<raymond.hettin...@gmail.com<mailto:raymond.hettin...@gmail.com>> wrote:
    Without typing (only the first currently works):
         Point = namedtuple('Point', ['x', 'y', 'z'])          #
    underlying store is a tuple
         Point = make_dataclass('Point', ['x', 'y', 'z'])      #
    underlying store is an instance dict
Hm, I think this is a bug in implementation. The second form should also work.

Agreed.

I've checked this under bpo-32278.


I have a bunch of pending changes for dataclasses. I'll add this.

Eric.

Thanks Eric and Ivan.  You're both very responsive.  I appreciate the enormous 
efforts you're putting in to getting this right.

I suggest two other fix-ups:

1) Let make_dataclass() pass through keyword arguments to _process_class(), so 
that this will work:

     Point = make_dataclass('Point', ['x', 'y', 'z'], order=True)

And I've checked this in under bpo-32279.

2) Change the default value for "hash" from "None" to "False".  This might take 
a little effort because there is currently an oddity where setting hash=False causes it to be hashable.  I'm 
pretty sure this wasn't intended ;-)

I haven't looked at this yet.

Eric.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to