• [Python-announce] attrs 23.1.0

    From Hynek Schlawack@21:1/5 to All on Sun Apr 16 12:49:53 2023
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)