From Newsgroup: comp.lang.python.announce
IrCOm happy to announce a new release of attrs!
attrs is the direct ancestor of rCo and the inspiration for rCo dataclasses in the standard library and remains the more powerful toolkit for creating regular classes without getting bogged down with writing repetitive boilerplate code: <
https://www.attrs.org/>
------------------------------------------------------------------------ (alternatively, see <
https://github.com/python-attrs/attrs/releases/> for a richer-formatted version of the following)
Backwards-incompatible Changes
- Python 3.6 has been dropped and packaging switched to static package data using Hatch. #993
Deprecations
- The support for zope-interface via the attrs.validators.provides validator is now deprecated and will be removed in, or after, April 2024.
The presence of a C-based package in our developement dependencies has caused headaches and we're not under the impression it's used a lot.
Let us know if you're using it and we might publish it as a separate package. #1120
Changes
- attrs.filters.exclude() and attrs.filters.include() now support the passing of attribute names as strings. #1068
- attrs.has() and attrs.fields() now handle generic classes correctly. #1079 - Fix frozen exception classes when raised within e.g. contextlib.contextmanager, which mutates their __traceback__ attributes. #1081
- @frozen now works with type checkers that implement PEP-681 (ex. pyright). #1084
- Restored ability to unpickle instances pickled before 22.2.0. #1085
- attrs.asdict()'s and attrs.astuple()'s type stubs now accept the attrs.AttrsInstance protocol. #1090
- Fix slots class cellvar updating closure in CPython 3.8+ even when __code__ introspection is unavailable. #1092
- attrs.resolve_types() can now pass include_extras to typing.get_type_hints() on Python 3.9+, and does so by default. #1099
- Added instructions for pull request workflow to CONTRIBUTING.md. #1105
- Added type parameter to attrs.field() function for use with attrs.make_class().
Please note that type checkers ignore type metadata passed into make_class(), but it can be useful if you're wrapping attrs. #1107
- It is now possible for attrs.evolve() (and attr.evolve()) to change fields named inst if the instance is passed as a positional argument.
Passing the instance using the inst keyword argument is now deprecated and will be removed in, or after, April 2024. #1117
- attrs.validators.optional() now also accepts a tuple of validators (in addition to lists of validators). #1122
--- Synchronet 3.21d-Linux NewsLink 1.2