• [Python-announce] attrs 22.1.0

    From Hynek Schlawack@hs@ox.cx to comp.lang.python.announce on Thu Jul 28 15:40:18 2022
    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/>
    My heartfelt thanks go to:
    - My generous GitHub sponsors <https://github.com/sponsors/hynek>,
    - companies subscribing to attrs on Tidelift <https://tidelift.com/subscription/pkg/pypi-attrs>,
    - and people who buy me coffees on <https://ko-fi.com/the_hynek>!
    ❤️ That's the support that made me maintain attrs since 2015 with no end in sight! ❤️
    ------------------------------------------------------------------------ (alternatively, see <https://github.com/python-attrs/attrs/releases> for a richer-formatted version of the following)
    Highlights
    The main features of this release are:
    - The departure of Python 2.7 (enjoy your retirement!),
    - and the arrival of Python 3.11.
    We had loftier goals feature-wise, but didn't want to block others embracing Python 3.11.
    Full Changelog
    Backwards-incompatible Changes
    - Python 2.7 is not supported anymore.
    Dealing with Python 2.7 tooling has become too difficult for a volunteer-run project.
    We have supported Python 2 more than 2 years after it was officially discontinued and feel that we have paid our dues. All version up to 21.4.0 from December 2021 remain fully functional, of course. #936
    - The deprecated cmp attribute of attrs.Attribute has been removed. This does not affect the cmp argument to attr.s that can be used as a shortcut to set eq and order at the same time. #939
    Changes
    - Instantiation of frozen slotted classes is now faster. #898
    - If an eq key is defined, it is also used before hashing the attribute. #909 - Added attrs.validators.min_len(). #916
    - attrs.validators.deep_iterable()'s member_validator argument now also accepts a list of validators and wraps them in an attrs.validators.and_(). #925
    - Added missing type stub re-imports for attrs.converters and attrs.filters. #931
    - Added missing stub for attr(s).cmp_using(). #949
    - attrs.validators._in()'s ValueError is not missing the attribute, expected options, and the value it got anymore. #951
    - Python 3.11 is now officially supported. #969
    --- Synchronet 3.19c-Linux NewsLink 1.113