• [Python-announce] attrs 23.1.0

    From Hynek Schlawack@hs@ox.cx to comp.lang.python.announce on Sun Apr 16 12:49:53 2023
    From Newsgroup: comp.lang.python.announce

    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
    --- Synchronet 3.20a-Linux NewsLink 1.114