Skip to content

22.1.0

Compare
Choose a tag to compare
@hynek hynek released this 28 Jul 13:27
· 494 commits to main since this release
22.1.0

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.

❤️ Huge thanks to my GitHub sponsors, Tidelift subscribers, and Ko-fi buyers! ❤️

None of my projects would exist in their current form without you!

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