Neither of the authors of these PEPs are currently actively
championing them, and offering dedicated constructs for
working with partially structured hierarchical data is
still a relatively novel programming language design concept
in general.
Since there's no harm in waiting for more feedback and ideas,
deferring them for potential future consideration seems like a
good option for now.
- note advice for test runners in abstract
- add explicit sections for test runner and
interactive shell guidance
- simplify the warning category descriptions
by moving the test runner details to their
new section
- make it clear FutureWarning is gaining a
second use case, while also keeping its old
one
- note that IPython already follows the new
guidance for interactive shells (and use
their approach as an example)
- reword the advice for library and framework
authors wanting seeking noisier compatibility
warnings on earlier Python versions
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
complex post-create logic.
I didn't add any specification for helper functions. Also I think we don't need module __set_name__ (it was brought by Serhiy) since it is still very new and much less known compared to __getattr__.
Typing information relates to import packages rather than distribution packages,
so it needs to be inside the individual packages, rather than in the distribution
metadata.
As an added benefit, this means running directly from source control
will still do the right thing.