Sync from SUSE:ALP:Source:Standard:1.0 python-attrs revision 00cffb4565e228ffe7b151959ae496f1
This commit is contained in:
commit
b6aaba2bee
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
||||
<multibuild>
|
||||
<package>test</package>
|
||||
</multibuild>
|
BIN
attrs-23.1.0.tar.gz
(Stored with Git LFS)
Normal file
BIN
attrs-23.1.0.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
609
python-attrs.changes
Normal file
609
python-attrs.changes
Normal file
@ -0,0 +1,609 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 22 07:04:50 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- remove outdated constructs, we no longer support < 3.8
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 8 09:37:31 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Update to 23.1.0:
|
||||
# Backwards-incompatible Changes
|
||||
* Python 3.6 has been dropped and packaging switched to static
|
||||
package data using Hatch. #993
|
||||
# Deprecations
|
||||
* The support for zope-interface via the attrs.validators.provides
|
||||
validator is now deprecated and will be removed in, or after,
|
||||
April 2024.
|
||||
* The presence of a C-based package in our developement dependencies
|
||||
has caused headaches and we're not under the impression it's used
|
||||
a lot.
|
||||
* Let us know if you're using it and we might publish it as a
|
||||
separate package. #1120
|
||||
# Changes
|
||||
* attrs.filters.exclude() and attrs.filters.include() now support
|
||||
the passing of attribute names as strings. #1068
|
||||
* attrs.has() and attrs.fields() now handle generic classes
|
||||
correctly. #1079
|
||||
* Fix frozen exception classes when raised within e.g.
|
||||
contextlib.contextmanager, which mutates their __traceback__
|
||||
attributes. #1081
|
||||
* @frozen now works with type checkers that implement PEP-681 (ex.
|
||||
pyright). #1084
|
||||
* Restored ability to unpickle instances pickled before 22.2.0.
|
||||
#1085
|
||||
* attrs.asdict()'s and attrs.astuple()'s type stubs now accept the
|
||||
attrs.AttrsInstance protocol. #1090
|
||||
* Fix slots class cellvar updating closure in CPython 3.8+ even when
|
||||
__code__ introspection is unavailable. #1092
|
||||
* attrs.resolve_types() can now pass include_extras to
|
||||
typing.get_type_hints() on Python 3.9+, and does so by default.
|
||||
#1099
|
||||
* Added instructions for pull request workflow to CONTRIBUTING.md.
|
||||
#1105
|
||||
* Added type parameter to attrs.field() function for use with
|
||||
attrs.make_class().
|
||||
* Please note that type checkers ignore type metadata passed into
|
||||
make_class(), but it can be useful if you're wrapping attrs. #1107
|
||||
* It is now possible for attrs.evolve() (and attr.evolve()) to
|
||||
change fields named inst if the instance is passed as a positional
|
||||
argument.
|
||||
* Passing the instance using the inst keyword argument is now
|
||||
deprecated and will be removed in, or after, April 2024. #1117
|
||||
* attrs.validators.optional() now also accepts a tuple of validators
|
||||
(in addition to lists of validators). #1122
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 21 12:22:22 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- add sle15_python_module_pythons (jsc#PED-68)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 13 22:40:08 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- Make calling of %{sle15modernpython} optional.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 23 11:38:48 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 22.2.0:
|
||||
* Python 3.5 is not supported anymore.
|
||||
* Python 3.6 is now deprecated and support will be removed in the next
|
||||
release.
|
||||
* `attrs.field()` now supports an *alias* option for explicit `__init__`
|
||||
argument names.
|
||||
* `attrs.NOTHING` is now an enum value, making it possible to use with
|
||||
e.g. `typing.Literal`.
|
||||
* Added missing re-import of `attr.AttrsInstance` to the `attrs`
|
||||
namespace.
|
||||
* Fix slight performance regression in classes with custom `__setattr__`
|
||||
and speedup even more.
|
||||
* Class-creation performance improvements by switching performance-
|
||||
sensitive templating operations to f-strings.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 20 10:55:27 UTC 2022 - pgajdos@suse.com
|
||||
|
||||
- python-six is not required for build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 4 09:08:48 UTC 2022 - Otto Hollmann <otto.hollmann@suse.com>
|
||||
|
||||
- Update to 22.1.0:
|
||||
* 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 4 15:32:36 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 21.4.0:
|
||||
* Fixed the test suite on PyPy3.8 where ``cloudpickle`` does not work.
|
||||
* Fixed ``coverage report`` for projects that use ``attrs`` and don't
|
||||
set a ``--source``.
|
||||
* When using ``@define``, converters are now run by default when
|
||||
setting an attribute on an instance -- additionally to validators.
|
||||
* ``import attrs`` has finally landed!
|
||||
* ``attr.asdict(retain_collection_types=False)`` (default)
|
||||
dumps collection-esque keys as tuples.
|
||||
* ``__match_args__`` are now generated to support Python 3.10's
|
||||
* If the class-level *on_setattr* is set to ``attrs.setters.validate``
|
||||
(default in ``@define`` and ``@mutable``) but no field defines
|
||||
a validator, pretend that it's not set.
|
||||
* The generated ``__repr__`` is significantly faster on Pythons with
|
||||
f-strings.
|
||||
* Attributes transformed via ``field_transformer`` are wrapped with
|
||||
``AttrsClass`` again.
|
||||
* Generated source code is now cached more efficiently for identical classes.
|
||||
* Added ``attrs.converters.to_bool()``.
|
||||
* ``attrs.resolve_types()`` now resolves types of subclasses after
|
||||
the parents are resolved.
|
||||
* Added new validators: ``lt(val)`` (< val), ``le(va)`` (≤ val),
|
||||
``ge(val)`` (≥ val), ``gt(val)`` (> val), and ``maxlen(n)``.
|
||||
* ``attrs`` classes are now fully compatible with cloudpickle
|
||||
* Added new context manager ``attrs.validators.disabled()`` and
|
||||
functions ``attrs.validators.(set|get)_disabled()``.
|
||||
They deprecate ``attrs.(set|get)_run_validators()``.
|
||||
All functions are interoperable and modify the same internal state.
|
||||
They are not – and never were – thread-safe, though.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 27 16:40:29 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 21.2.0:
|
||||
* We had to revert the recursive feature for ``attr.evolve()`` because it
|
||||
broke some use-cases -- sorry!
|
||||
* Python 3.4 is now blocked using packaging metadata because ``attrs`` can't
|
||||
be imported on it anymore.
|
||||
* The long-awaited, much-talked-about, little-delivered ``import attrs`` is
|
||||
finally upon us!
|
||||
* The *cmp* argument to ``attr.s()`` and `attr.ib()` has been **undeprecated**
|
||||
It will continue to be supported as syntactic sugar to set *eq* and *order* in one go.
|
||||
* Further smaller changes, see included Changelog.md
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 26 09:19:26 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 20.3.0:
|
||||
- ``attr.define()``, ``attr.frozen()``, ``attr.mutable()``, and ``attr.field()`` remain **provisional**.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 17 14:36:34 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 20.2.0:
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 14 06:45:13 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Do not restrict us to new setuptools, we generate stuff
|
||||
even with the older variants
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 21 08:44:11 UTC 2019 - Ondřej Súkup <mimi.vx@gmail.com>
|
||||
|
||||
- update to 19.3.0
|
||||
* Fixed auto_attribs usage when default values cannot be compared directly
|
||||
with ==, such as numpy arrays.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 4 02:34:32 UTC 2019 - Arun Persaud <arun@gmx.de>
|
||||
|
||||
- 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
|
||||
+ Updated "attr.validators.__all__" to include new validators
|
||||
added in `#425`_. `#517
|
||||
<https://github.com/python-attrs/attrs/issues/517>`_
|
||||
+ Slotted classes now use a pure Python mechanism to rewrite the
|
||||
"__class__" cell when rebuilding the class, so "super()" works
|
||||
even on environments where "ctypes" is not installed. `#522
|
||||
<https://github.com/python-attrs/attrs/issues/522>`_
|
||||
+ When collecting attributes using "@attr.s(auto_attribs=True)",
|
||||
attributes with a default of "None" are now deleted too. `#523
|
||||
<https://github.com/python-attrs/attrs/issues/523>`_, `#556
|
||||
<https://github.com/python-attrs/attrs/issues/556>`_
|
||||
+ Fixed "attr.validators.deep_iterable()" and
|
||||
"attr.validators.deep_mapping()" type stubs. `#533
|
||||
<https://github.com/python-attrs/attrs/issues/533>`_
|
||||
+ "attr.validators.is_callable()" validator now raises an
|
||||
exception "attr.exceptions.NotCallableError", a subclass of
|
||||
"TypeError", informing the received value. `#536
|
||||
<https://github.com/python-attrs/attrs/issues/536>`_
|
||||
+ "@attr.s(auto_exc=True)" now generates classes that are hashable
|
||||
by ID, as the documentation always claimed it would. `#543
|
||||
<https://github.com/python-attrs/attrs/issues/543>`_, `#563
|
||||
<https://github.com/python-attrs/attrs/issues/563>`_
|
||||
+ Added "attr.validators.matches_re()" that checks string
|
||||
attributes whether they match a regular expression. `#552
|
||||
<https://github.com/python-attrs/attrs/issues/552>`_
|
||||
+ Keyword-only attributes ("kw_only=True") and attributes that are
|
||||
excluded from the "attrs"'s "__init__" ("init=False") now can
|
||||
appear before mandatory attributes. `#559
|
||||
<https://github.com/python-attrs/attrs/issues/559>`_
|
||||
+ The fake filename for generated methods is now more stable. It
|
||||
won't change when you restart the process. `#560
|
||||
<https://github.com/python-attrs/attrs/issues/560>`_
|
||||
+ The value passed to "@attr.ib(repr=…)" can now be either a
|
||||
boolean (as before) or a callable. That callable must return a
|
||||
string and is then used for formatting the attribute by the
|
||||
generated "__repr__()" method. `#568
|
||||
<https://github.com/python-attrs/attrs/issues/568>`_
|
||||
+ Added "attr.__version_info__" that can be used to reliably check
|
||||
the version of "attrs" and write forward- and
|
||||
backward-compatible code. Please check out the `section on
|
||||
deprecated APIs
|
||||
<http://www.attrs.org/en/stable/api.html#deprecated-apis>`_ on
|
||||
how to use it. `#580
|
||||
<https://github.com/python-attrs/attrs/issues/580>`_
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 12 11:20:18 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Switch to multibuild to enable tests
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 4 20:07:57 UTC 2019 - Ondřej Súkup <mimi.vx@gmail.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 6 10:06:08 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Fix fdupes call
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 1 18:34:11 UTC 2018 - arun@gmx.de
|
||||
|
||||
- specfile:
|
||||
- removed devel from noarch package
|
||||
- be more specific in %files section
|
||||
|
||||
- update to version 18.2.0:
|
||||
* Deprecations
|
||||
+ Comparing subclasses using "<", ">", "<=", and ">=" is now
|
||||
deprecated. The docs always claimed that instances are only
|
||||
compared if the types are identical, so this is a first step to
|
||||
conform to the docs. Equality operators ("==" and "!=") were
|
||||
always strict in this regard. issue 394
|
||||
* Changes
|
||||
+ "attrs" now ships its own PEP 484 type hints. Together with
|
||||
mypy's "attrs" plugin, you've got all you need for writing
|
||||
statically typed code in both Python 2 and 3! At that occasion,
|
||||
we've also added `narrative docs` about type annotations in
|
||||
"attrs". issue #238
|
||||
+ Added *kw_only* arguments to "attr.ib" and "attr.s", and a
|
||||
corresponding *kw_only* attribute to "attr.Attribute". This
|
||||
change makes it possible to have a generated "__init__" with
|
||||
keyword-only arguments on Python 3, relaxing the required
|
||||
ordering of default and non-default valued attributes. issues #281, #411
|
||||
+ The test suite now runs with "hypothesis.HealthCheck.too_slow"
|
||||
disabled to prevent CI breakage on slower computers. issues
|
||||
#364, #396
|
||||
+ "attr.validators.in_()" now raises a "ValueError" with a useful
|
||||
message even if the options are a string and the value is not a
|
||||
string. issue #383
|
||||
+ "attr.asdict()" now properly handles deeply nested lists and
|
||||
dictionaries. issue #395
|
||||
+ Added "attr.converters.default_if_none()" that allows to replace
|
||||
"None" values in attributes. For example
|
||||
"attr.ib(converter=default_if_none(""))" replaces "None" by
|
||||
empty strings. issues #400, #414
|
||||
+ Fixed a reference leak where the original class would remain
|
||||
live after being replaced when "slots=True" is set. isue #407
|
||||
+ Slotted classes can now be made weakly referenceable by passing
|
||||
"@attr.s(weakref_slot=True)". issue #420
|
||||
+ Added *cache_hash* option to "@attr.s" which causes the hash
|
||||
code to be computed once and stored on the object. issue #425
|
||||
+ Attributes can be named "property" and "itemgetter" now. issue
|
||||
#430
|
||||
+ It is now possible to override a base class' class variable
|
||||
using only class annotations. issue #431
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun May 6 05:40:54 UTC 2018 - arun@gmx.de
|
||||
|
||||
- update to version 18.1.0:
|
||||
* "x=X(); x.cycle = x; repr(x)" will no longer raise a
|
||||
"RecursionError", and will instead show as "X(x=...)".
|
||||
* "attr.ib(factory=f)" is now syntactic sugar for the common case of
|
||||
"attr.ib(default=attr.Factory(f))".
|
||||
* Added "attr.field_dict()" to return an ordered dictionary of
|
||||
"attrs" attributes for a class, whose keys are the attribute
|
||||
names.
|
||||
* The order of attributes that are passed into "attr.make_class()"
|
||||
or the "these" argument of "@attr.s()" is now retained if the
|
||||
dictionary is ordered (i.e. "dict" on Python 3.6 and later,
|
||||
"collections.OrderedDict" otherwise).
|
||||
* Before, the order was always determined by the order in which the
|
||||
attributes have been defined which may not be desirable when
|
||||
creating classes programatically.
|
||||
* In slotted classes, "__getstate__" and "__setstate__" now ignore
|
||||
the "__weakref__" attribute.
|
||||
* Setting the cell type is now completely best effort. This fixes
|
||||
"attrs" on Jython. We cannot make any guarantees regarding Jython
|
||||
though, because our test suite cannot run due to dependency
|
||||
incompatabilities.
|
||||
* If "attr.s" is passed a *these* argument, it will not attempt to
|
||||
remove attributes with the same name from the class body anymore.
|
||||
* The hash of "attr.NOTHING" is now vegan and faster on 32bit Python
|
||||
builds.
|
||||
* The overhead of instantiating frozen dict classes is virtually
|
||||
eliminated.
|
||||
* Generated "__init__" methods now have an "__annotations__"
|
||||
attribute derived from the types of the fields.
|
||||
* We have restructured the documentation a bit to account for
|
||||
"attrs"' growth in scope. Instead of putting everything into the
|
||||
`examples <http://www.attrs.org/en/stable/examples.html>`_ page,
|
||||
we have started to extract narrative chapters.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 3 23:08:32 UTC 2018 - arun@gmx.de
|
||||
|
||||
- specfile:
|
||||
* update copyright year
|
||||
|
||||
- update to version 17.4.0:
|
||||
* Backward-incompatible Changes
|
||||
+ The traversal of MROs when using multiple inheritance was
|
||||
backward:
|
||||
If you defined a class "C" that subclasses "A" and "B" like
|
||||
"C(A, B)", "attrs" would have collected the attributes from "B"
|
||||
*before* those of "A".
|
||||
This is now fixed and means that in classes that employ multiple
|
||||
inheritance, the output of "__repr__" and the order of
|
||||
positional arguments in "__init__" changes.
|
||||
Due to the nature of this bug, a proper deprecation cycle was
|
||||
unfortunately impossible.
|
||||
Generally speaking, it's advisable to prefer "kwargs"-based
|
||||
initialization anyways – *especially* if you employ multiple
|
||||
inheritance and diamond-shaped hierarchies.
|
||||
+ The "__repr__" set by "attrs" no longer produces an
|
||||
"AttributeError" when the instance is missing some of the
|
||||
specified attributes (either through deleting or after using
|
||||
"init=False" on some attributes).
|
||||
This can break code that relied on "repr(attr_cls_instance)"
|
||||
raising "AttributeError" to check if any attr-specified members
|
||||
were unset.
|
||||
If you were using this, you can implement a custom method for
|
||||
checking this::
|
||||
|
||||
def has_unset_members(self):
|
||||
for field in attr.fields(type(self)):
|
||||
try:
|
||||
getattr(self, field.name)
|
||||
except AttributeError:
|
||||
return True
|
||||
return False
|
||||
* Deprecations
|
||||
+ The "attr.ib(convert=callable)" option is now deprecated in
|
||||
favor of "attr.ib(converter=callable)".
|
||||
This is done to achieve consistency with other noun-based
|
||||
arguments like *validator*. *convert* will keep working until
|
||||
at least January 2019 while raising a "DeprecationWarning".
|
||||
|
||||
* Changes
|
||||
+ Generated "__hash__" methods now hash the class type along with
|
||||
the attribute values. Until now the hashes of two classes with
|
||||
the same values were identical which was a bug.
|
||||
The generated method is also *much* faster now.
|
||||
+ "attr.ib"’s "metadata" argument now defaults to a unique empty
|
||||
"dict" instance instead of sharing a common empty "dict" for
|
||||
all. The singleton empty "dict" is still enforced.
|
||||
+ "ctypes" is optional now however if it's missing, a bare
|
||||
"super()" will not work in slots classes. This should only
|
||||
happen in special environments like Google App Engine.
|
||||
+ The attribute redefinition feature introduced in 17.3.0 now
|
||||
takes into account if an attribute is redefined via multiple
|
||||
inheritance. In that case, the definition that is closer to the
|
||||
base of the class hierarchy wins.
|
||||
+ Subclasses of "auto_attribs=True" can be empty now.
|
||||
+ Equality tests are *much* faster now.
|
||||
+ All generated methods now have correct "__module__", "__name__",
|
||||
and (on Python 3) "__qualname__" attributes.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 21 16:10:47 UTC 2017 - jmatejek@suse.com
|
||||
|
||||
- add test requirements, run tests conditionally
|
||||
(not BuildRequiring pytest fixes bsc#1073845)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 9 18:50:46 UTC 2017 - arun@gmx.de
|
||||
|
||||
- update to version 17.3.0:
|
||||
* Backward-incompatible Changes
|
||||
+ Attributes are not defined on the class body anymore. This
|
||||
means that if you define a class "C" with an attribute "x", the
|
||||
class will *not* have an attribute "x" for introspection
|
||||
anymore. Instead of "C.x", use "attr.fields(C).x" or look at
|
||||
"C.__attrs_attrs__". The old behavior has been deprecated since
|
||||
version 16.1. (`#253
|
||||
<https://github.com/python-attrs/attrs/issues/253>`_)
|
||||
* Changes
|
||||
+ "super()" and "__class__" now work on Python 3 when
|
||||
"slots=True". (`#102
|
||||
<https://github.com/python-attrs/attrs/issues/102>`_, `#226
|
||||
<https://github.com/python-attrs/attrs/issues/226>`_, `#269
|
||||
<https://github.com/python-attrs/attrs/issues/269>`_, `#270
|
||||
<https://github.com/python-attrs/attrs/issues/270>`_, `#272
|
||||
<https://github.com/python-attrs/attrs/issues/272>`_)- Added
|
||||
"type" argument to "attr.ib()" and corresponding "type"
|
||||
attribute to "attr.Attribute". This change paves the way for
|
||||
automatic type checking and serialization (though as of this
|
||||
release "attrs" does not make use of it). In Python 3.6 or
|
||||
higher, the value of "attr.Attribute.type" can alternately be
|
||||
set using variable type annotations (see `PEP 526
|
||||
<https://www.python.org/dev/peps/pep-0526/>`_). (`#151
|
||||
<https://github.com/python-attrs/attrs/issues/151>`_, `#214
|
||||
<https://github.com/python-attrs/attrs/issues/214>`_, `#215
|
||||
<https://github.com/python-attrs/attrs/issues/215>`_, `#239
|
||||
<https://github.com/python-attrs/attrs/issues/239>`_)
|
||||
+ The combination of "str=True" and "slots=True" now works on
|
||||
Python 2. (`#198
|
||||
<https://github.com/python-attrs/attrs/issues/198>`_)
|
||||
+ "attr.Factory" is hashable again. (`#204
|
||||
<https://github.com/python-attrs/attrs/issues/204>`_)
|
||||
+ Subclasses now can overwrite attribute definitions of their
|
||||
superclass. That means that you can -- for example -- change
|
||||
the default value for an attribute by redefining it. (`#221
|
||||
<https://github.com/python-attrs/attrs/issues/221>`_, `#229
|
||||
<https://github.com/python-attrs/attrs/issues/229>`_)
|
||||
+ Added new option "auto_attribs" to "@attr.s" that allows to
|
||||
collect annotated fields without setting them to "attr.ib()".
|
||||
Setting a field to an "attr.ib()" is still possible to supply
|
||||
options like validators. Setting it to any other value is
|
||||
treated like it was passed as "attr.ib(default=value)" --
|
||||
passing an instance of "attr.Factory" also works as expected.
|
||||
(`#262 <https://github.com/python-attrs/attrs/issues/262>`_,
|
||||
`#277 <https://github.com/python-attrs/attrs/issues/277>`_)
|
||||
+ Instances of classes created using "attr.make_class()" can now
|
||||
be pickled. (`#282
|
||||
<https://github.com/python-attrs/attrs/issues/282>`_)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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
|
||||
|
||||
- Convert to singlespec
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 5 17:20:56 UTC 2016 - hpj@urpla.net
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 2 07:58:54 UTC 2016 - tbechtold@suse.com
|
||||
|
||||
- fix Source url
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 2 07:10:13 UTC 2016 - jacobwinski@gmail.com
|
||||
|
||||
- Initial version
|
||||
|
97
python-attrs.spec
Normal file
97
python-attrs.spec
Normal file
@ -0,0 +1,97 @@
|
||||
#
|
||||
# spec file
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
#
|
||||
# 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 https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
%if "%{flavor}" == "test"
|
||||
%define psuffix -test
|
||||
%bcond_without test
|
||||
%else
|
||||
%define psuffix %{nil}
|
||||
%bcond_with test
|
||||
%endif
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-attrs%{psuffix}
|
||||
Version: 23.1.0
|
||||
Release: 0
|
||||
Summary: Attributes without boilerplate
|
||||
License: MIT
|
||||
Group: Development/Languages/Python
|
||||
URL: https://github.com/hynek/attrs/
|
||||
Source: https://files.pythonhosted.org/packages/source/a/attrs/attrs-%{version}.tar.gz
|
||||
BuildRequires: %{python_module hatch-fancy-pypi-readme}
|
||||
BuildRequires: %{python_module hatch-vcs}
|
||||
BuildRequires: %{python_module hatchling}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildArch: noarch
|
||||
%if %{with test}
|
||||
BuildRequires: %{python_module Pympler}
|
||||
BuildRequires: %{python_module hypothesis}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module zope.interface}
|
||||
%endif
|
||||
%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
|
||||
%autosetup -p1 -n attrs-%{version}
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%if !%{with test}
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
%endif
|
||||
|
||||
%if %{with test}
|
||||
%check
|
||||
%pytest
|
||||
%endif
|
||||
|
||||
%if !%{with test}
|
||||
%files %{python_files}
|
||||
%license LICENSE
|
||||
%doc CHANGELOG.md README.md
|
||||
%{python_sitelib}/attr*
|
||||
%{python_sitelib}/attrs-%{version}*-info
|
||||
%endif
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user