- Python 3.4 is not supported anymore.
- ``attr.define()``, ``attr.frozen()``, ``attr.mutable()``, and ``attr.field()`` remain **provisional**.
This release fixes a bunch of bugs and ergonomics but they remain mostly unchanged.
Further changes see included CHANGELOG.rst
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-attrs?expand=0&rev=29
- update to 19.3.0
* Fixed auto_attribs usage when default values cannot be compared directly
with ==, such as numpy arrays.
- update to version 19.2.0:
* Backward-incompatible Changes
+ Removed deprecated "Attribute" attribute "convert" per scheduled
removal on 2019/1. This planned deprecation is tracked in issue
`#307 <https://github.com/python-attrs/attrs/issues/307>`_.
`#504 <https://github.com/python-attrs/attrs/issues/504>`_
+ "__lt__", "__le__", "__gt__", and "__ge__" do not consider
subclasses comparable anymore. This has been deprecated since
18.2.0 and was raising a "DeprecationWarning" for over a year.
`#570 <https://github.com/python-attrs/attrs/issues/570>`_
* Deprecations
+ The "cmp" argument to "attr.s()" and "attr.ib()" is now
deprecated. Please use "eq" to add equality methods ("__eq__"
and "__ne__") and "order" to add ordering methods ("__lt__",
"__le__", "__gt__", and "__ge__") instead – just like with
`dataclasses
<https://docs.python.org/3/library/dataclasses.html>`_. Both
are effectively "True" by default but it's enough to set
"eq=False" to disable both at once. Passing "eq=False,
order=True" explicitly will raise a "ValueError" though. Since
this is arguably a deeper backward-compatibility break, it will
have an extended deprecation period until 2021-06-01. After
that day, the "cmp" argument will be removed. "attr.Attribute"
also isn't orderable anymore. `#574
<https://github.com/python-attrs/attrs/issues/574>`_
* Changes
OBS-URL: https://build.opensuse.org/request/show/741439
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-attrs?expand=0&rev=11
- update to 19.1.0
* Fixed a bug where deserialized objects with cache_hash=True could have
incorrect hash code values
* Add is_callable, deep_iterable, and deep_mapping validators.
* Fixed stub files to prevent errors raised by mypy's
disallow_any_generics = True option.
* Attributes with init=False now can follow after kw_only=True attributes.
* attrs now has first class support for defining exception classes.
* Clarified documentation for hashing to warn that hashable objects should
be deeply immutable
OBS-URL: https://build.opensuse.org/request/show/681547
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-attrs?expand=0&rev=9
* Fixed a bug where deserialized objects with cache_hash=True could have
incorrect hash code values
* Add is_callable, deep_iterable, and deep_mapping validators.
* Fixed stub files to prevent errors raised by mypy's
disallow_any_generics = True option.
* Attributes with init=False now can follow after kw_only=True attributes.
* attrs now has first class support for defining exception classes.
* Clarified documentation for hashing to warn that hashable objects should
be deeply immutable
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-attrs?expand=0&rev=20
- update to 17.2.0:
- Validators are hashable again.
- ``attrs`` will set the ``__hash__()`` method to ``None`` by default now.
The way hashes were handled before was in conflict with `Python's
specification
This *may* break some software although this breakage is most likely just
surfacing of latent bugs.
You can always make ``attrs`` create the ``__hash__()`` method using
``@attr.s(hash=True)``. See `#136`_ for the rationale of this change.
- Correspondingly, ``attr.ib``'s ``hash`` argument is ``None`` by default too
and mirrors the ``cmp`` argument as it should.
- ``attr.assoc()`` is now deprecated in favor of ``attr.evolve()`` and will
stop working in 2018.
- Fix default hashing behavior.
Now *hash* mirrors the value of *cmp* and classes are unhashable by default.
- Added ``attr.evolve()`` that, given an instance of an ``attrs`` class and
field changes as keyword arguments, will instantiate a copy of the given
instance with the changes applied.
- ``FrozenInstanceError`` is now raised when trying to delete an attribute
from a frozen class.
- Frozen-ness of classes is now inherited.
- ``__attrs_post_init__()`` is now run if validation is disabled.
- Added ``attr.validators.in_(options)`` that, given the allowed `options`,
checks whether the attribute value is in it.
This can be used to check constants, enums, mappings, etc.
- Added ``attr.validators.and_()`` that composes multiple validators into one.
- For convenience, the ``validator`` argument of ``@attr.s`` now can take a
``list`` of validators that are wrapped using ``and_()``.
- Accordingly, ``attr.validators.optional()`` now can take a ``list`` of
validators too.
OBS-URL: https://build.opensuse.org/request/show/507963
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-attrs?expand=0&rev=6
- update to 16.0.0
Backward-incompatible changes:
* Python 3.3 and 2.6 aren’t supported anymore. They may work by chance but
any effort to keep them working has ceased.
The last Python 2.6 release was on October 29, 2013 and isn’t supported by
the CPython core team anymore. Major Python packages like Django and Twisted
dropped Python 2.6 a while ago already.
Python 3.3 never had a significant user base and wasn’t part of any
distribution’s LTS release.
Changes:
* __slots__ have arrived! Classes now can automatically be slots-style (and
save your precious memory) just by passing slots=True. #35
* Allow the case of initializing attributes that are set to init=False. This
allows for clean initializer parameter lists while being able to initialize
attributes to default values. #32
* attr.asdict can now produce arbitrary mappings instead of Python dicts when
provided with a dict_factory argument. #40 Multiple performance improvements.
OBS-URL: https://build.opensuse.org/request/show/406822
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-attrs?expand=0&rev=3