From 8828b357c36bcb8124c044318223347a27867ae3796ee692329e427ebffa2ae1 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Tue, 4 Jul 2017 05:29:27 +0000 Subject: [PATCH] Accepting request 507963 from home:tbechtold:branches:devel:languages:python - 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 --- attrs-16.0.0.tar.gz | 3 -- attrs-17.2.0.tar.gz | 3 ++ python-attrs.changes | 78 ++++++++++++++++++++++++++++++++++++++++++++ python-attrs.spec | 6 +--- 4 files changed, 82 insertions(+), 8 deletions(-) delete mode 100644 attrs-16.0.0.tar.gz create mode 100644 attrs-17.2.0.tar.gz diff --git a/attrs-16.0.0.tar.gz b/attrs-16.0.0.tar.gz deleted file mode 100644 index a411761..0000000 --- a/attrs-16.0.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de6827a454d23716442b571bb35b0efb32a1b5c1037f09cfc7aaf405c7d68abc -size 42535 diff --git a/attrs-17.2.0.tar.gz b/attrs-17.2.0.tar.gz new file mode 100644 index 0000000..a8b0bf2 --- /dev/null +++ b/attrs-17.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d4d1b99f94d69338f485984127e4473b3ab9e20f43821b0e546cc3b2302fd11 +size 73733 diff --git a/python-attrs.changes b/python-attrs.changes index e53eb4c..baadaff 100644 --- a/python-attrs.changes +++ b/python-attrs.changes @@ -1,3 +1,81 @@ +------------------------------------------------------------------- +Tue Jul 4 05:04:08 UTC 2017 - tbechtold@suse.com + +- 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. + - Validators can now be defined conveniently inline by using the attribute as + a decorator. + - ``attr.Factory()`` now has a ``takes_self`` argument that makes the + initializer to pass the partially initialized instance into the factory. + In other words you can define attribute defaults based on other attributes. + - Default factories can now also be defined inline using decorators. + They are *always* passed the partially initialized instance. + - Conversion can now be made optional using ``attr.converters.optional()``. + - ``attr.make_class()`` now accepts the keyword argument ``bases`` which + allows for subclassing. + - Metaclasses are now preserved with ``slots=True``. + - Attributes now can have user-defined metadata which greatly improves + ``attrs``'s extensibility. + - Allow for a ``__attrs_post_init__()`` method that -- if defined -- will get + called at the end of the ``attrs``-generated ``__init__()`` method. + - Added ``@attr.s(str=True)`` that will optionally create a ``__str__()`` + method that is identical to ``__repr__()``. + - ``__name__`` is not overwritten with ``__qualname__`` for + ``attr.s(slots=True)`` classes anymore. + - Added ``attr.astuple()`` that -- similarly to ``attr.asdict()`` -- + returns the instance as a tuple. + - Converts now work with frozen classes. + - Instantiation of ``attrs`` classes with converters is now significantly + faster. + - Pickling now works with ``__slots__`` classes. + - ``attr.assoc()`` now works with ``__slots__`` classes. + - The tuple returned by ``attr.fields()`` now also allows to access the + ``Attribute`` instances by name. + - All instances where function arguments were called ``cl`` have been changed + to the more Pythonic ``cls``. + - Accessing ``Attribute`` instances on class objects is now deprecated and + will stop working in 2017. + - The serious business aliases ``attr.attributes`` and ``attr.attr`` have been + deprecated in favor of ``attr.attrs`` and ``attr.attrib`` which are much + more consistent and frankly obvious in hindsight. + - ``attr.asdict()``\ 's ``dict_factory`` arguments is now propagated on + recursion. + - ``attr.asdict()``, ``attr.has()`` and ``attr.fields()`` are significantly + faster. + - Add ``attr.attrs`` and ``attr.attrib`` as a more consistent aliases for + ``attr.s`` and ``attr.ib``. + - Add ``frozen`` option to ``attr.s`` that will make instances best-effort + immutable. + - ``attr.asdict()`` now takes ``retain_collection_types`` as an argument. + ------------------------------------------------------------------- Sat Jul 1 14:53:33 UTC 2017 - okurz@suse.com diff --git a/python-attrs.spec b/python-attrs.spec index c5fcf9f..2ef27d5 100644 --- a/python-attrs.spec +++ b/python-attrs.spec @@ -20,7 +20,7 @@ Name: python-attrs %global modname attrs -Version: 16.0.0 +Version: 17.2.0 Release: 0 Summary: Attributes without boilerplate License: MIT @@ -33,11 +33,7 @@ BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if 0%{?suse_version} && 0%{?suse_version} <= 1110 -%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} -%else BuildArch: noarch -%endif %python_subpackages