[Python-Dev] Second post: PEP 557, Data Classes (original) (raw)
Eric V. Smith eric at trueblade.com
Sat Nov 25 16:06:20 EST 2017
- Previous message (by thread): [Python-Dev] Allow tuple unpacking in return and yield statements
- Next message (by thread): [Python-Dev] Second post: PEP 557, Data Classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
The updated version should show up at https://www.python.org/dev/peps/pep-0557/ shortly.
The major changes from the previous version are:
- Add InitVar to specify initialize-only fields.
- Renamed dataclass_post_init() to __post_init().
- Rename cmp to compare.
- Added eq, separate from compare, so you can test unorderable items for equality.
- Flushed out asdict() and astuple().
- Changed replace() to just call init(), and dropped the complex post-create logic.
The only open issues I know of are:
- Should object comparison require an exact match on the type? https://github.com/ericvsmith/dataclasses/issues/51
- Should the replace() function be renamed to something else? https://github.com/ericvsmith/dataclasses/issues/77
Most of the items that were previously discussed on python-dev were discussed in detail at https://github.com/ericvsmith/dataclasses. Before rehashing an old discussion, please check there first.
Also at https://github.com/ericvsmith/dataclasses is an implementation, with tests, that should work with 3.6 and 3.7. The only action item for the code is to clean up the implementation of InitVar, but that's waiting for PEP 560. Oh, and if PEP 563 is accepted I'll also need to do some work.
Feedback is welcomed!
Eric.
- Previous message (by thread): [Python-Dev] Allow tuple unpacking in return and yield statements
- Next message (by thread): [Python-Dev] Second post: PEP 557, Data Classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]