The make_dataclass() factory function in the dataclasses module currently 
requires type declarations. It would be nice if the type declarations were 
optional.

With typing (currently works):

    Point = NamedTuple('Point', [('x', float), ('y', float), ('z', float)])
    Point = make_dataclass('Point', [('x', float), ('y', float), ('z', float)])

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

This proposal would make it easy to cleanly switch between the immutable 
tuple-based container and the instancedict-based optionally-frozen container. 
The proposal would make it possible for instructors to teach dataclasses 
without having to teach typing as a prerequisite. And, it would make 
dataclasses usable for projects that have elected not to use static typing.


Raymond

_______________________________________________
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