[Python-announce] attrs 23.1.0

Hynek Schlawack <[email protected]>
Newsgroups gmane.comp.python.announce
Message-ID <[email protected]>
I’m happy to announce a new release of attrs!

attrs is the direct ancestor of – and the inspiration for – 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

_______________________________________________
Python-announce-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.