python-attrs/python-attrs.spec
Dirk Mueller 8828b357c3 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
2017-07-04 05:29:27 +00:00

77 lines
2.3 KiB
RPMSpec

#
# spec file for package python-attrs
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-attrs
%global modname attrs
Version: 17.2.0
Release: 0
Summary: Attributes without boilerplate
License: MIT
Group: Development/Languages/Python
Url: https://github.com/hynek/%{modname}/
Source: https://pypi.io/packages/source/a/%{modname}/%{modname}-%{version}.tar.gz
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%python_subpackages
%description
attrs is an MIT-licensed Python package with class decorators that ease the
chores of implementing the most common attribute-related object protocols.
You just specify the attributes to work with and attrs gives you:
- a nice human-readable __repr__,
- a complete set of comparison methods,
- an initializer,
- and much more
without writing dull boilerplate code again and again.
This gives you the power to use actual classes with actual types in your code
instead of confusing tuples or confusingly behaving namedtuples.
So put down that type-less data structures and welcome some class into your
life!
python-attrs is the successor to python-characterstic
%prep
%setup -q -n %{modname}-%{version}
%build
%python_build
%install
%python_install
%fdupes %{buildroot}%{_prefix}
%files %{python_files}
%defattr(-,root,root,-)
%doc CHANGELOG.rst LICENSE README.rst
%{python_sitelib}/*
%{python_sitelib}/%{modname}-%{version}-py*.egg-info
%changelog