attrs v22.1.0 Release Notes

Release Date: 2022-07-28 // over 1 year ago
  • 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 <https://github.com/python-attrs/attrs/issues/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 <https://github.com/python-attrs/attrs/issues/939>_

    ๐Ÿ”„ Changes ^

    • Instantiation of frozen slotted classes is now faster. #898 <https://github.com/python-attrs/attrs/issues/898>_
    • If an eq key is defined, it is also used before hashing the attribute. #909 <https://github.com/python-attrs/attrs/issues/909>_
    • โž• Added attrs.validators.min_len(). #916 <https://github.com/python-attrs/attrs/issues/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 <https://github.com/python-attrs/attrs/issues/925>_
    • โž• Added missing type stub re-imports for attrs.converters and attrs.filters. #931 <https://github.com/python-attrs/attrs/issues/931>_
    • โž• Added missing stub for attr(s).cmp_using(). #949 <https://github.com/python-attrs/attrs/issues/949>_
    • attrs.validators._in()'s ValueError is not missing the attribute, expected options, and the value it got anymore. #951 <https://github.com/python-attrs/attrs/issues/951>_
    • ๐Ÿ‘ Python 3.11 is now officially supported. #969 <https://github.com/python-attrs/attrs/issues/969>_


Previous changes from v21.4.0

  • ๐Ÿ”„ Changes ^

    • ๐Ÿ›  Fixed the test suite on PyPy3.8 where cloudpickle does not work. #892 <https://github.com/python-attrs/attrs/issues/892>_
    • ๐Ÿ›  Fixed coverage report for projects that use attrs and don't set a --source. #895 <https://github.com/python-attrs/attrs/issues/895>, #896 <https://github.com/python-attrs/attrs/issues/896>