From b6aaba2bee961e53f433a3d7f14ffa4bfbb097c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Wed, 18 Oct 2023 23:12:11 +0200 Subject: [PATCH] Sync from SUSE:ALP:Source:Standard:1.0 python-attrs revision 00cffb4565e228ffe7b151959ae496f1 --- .gitattributes | 23 ++ _multibuild | 3 + attrs-23.1.0.tar.gz | 3 + python-attrs.changes | 609 +++++++++++++++++++++++++++++++++++++++++++ python-attrs.spec | 97 +++++++ 5 files changed, 735 insertions(+) create mode 100644 .gitattributes create mode 100644 _multibuild create mode 100644 attrs-23.1.0.tar.gz create mode 100644 python-attrs.changes create mode 100644 python-attrs.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..83bd4e9 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/attrs-23.1.0.tar.gz b/attrs-23.1.0.tar.gz new file mode 100644 index 0000000..b505521 --- /dev/null +++ b/attrs-23.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015 +size 212878 diff --git a/python-attrs.changes b/python-attrs.changes new file mode 100644 index 0000000..f6fbbf1 --- /dev/null +++ b/python-attrs.changes @@ -0,0 +1,609 @@ +------------------------------------------------------------------- +Thu Jun 22 07:04:50 UTC 2023 - Dirk Müller + +- remove outdated constructs, we no longer support < 3.8 + +------------------------------------------------------------------- +Mon May 8 09:37:31 UTC 2023 - Daniel Garcia + +- 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 + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:40:08 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Fri Dec 23 11:38:48 UTC 2022 - Dirk Müller + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 `_. + `#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 `_ + * 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 + `_. 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 + `_ + * Changes + + Updated "attr.validators.__all__" to include new validators + added in `#425`_. `#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 + `_ + + When collecting attributes using "@attr.s(auto_attribs=True)", + attributes with a default of "None" are now deleted too. `#523 + `_, `#556 + `_ + + Fixed "attr.validators.deep_iterable()" and + "attr.validators.deep_mapping()" type stubs. `#533 + `_ + + "attr.validators.is_callable()" validator now raises an + exception "attr.exceptions.NotCallableError", a subclass of + "TypeError", informing the received value. `#536 + `_ + + "@attr.s(auto_exc=True)" now generates classes that are hashable + by ID, as the documentation always claimed it would. `#543 + `_, `#563 + `_ + + Added "attr.validators.matches_re()" that checks string + attributes whether they match a regular expression. `#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 + `_ + + The fake filename for generated methods is now more stable. It + won't change when you restart the process. `#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 + `_ + + 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 + `_ on + how to use it. `#580 + `_ + +------------------------------------------------------------------- +Mon Aug 12 11:20:18 UTC 2019 - Tomáš Chvátal + +- Switch to multibuild to enable tests + +------------------------------------------------------------------- +Mon Mar 4 20:07:57 UTC 2019 - Ondřej Súkup + +- 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 + +- 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 `_ 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 + `_) + * Changes + + "super()" and "__class__" now work on Python 3 when + "slots=True". (`#102 + `_, `#226 + `_, `#269 + `_, `#270 + `_, `#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 + `_). (`#151 + `_, `#214 + `_, `#215 + `_, `#239 + `_) + + The combination of "str=True" and "slots=True" now works on + Python 2. (`#198 + `_) + + "attr.Factory" is hashable again. (`#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 + `_, `#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 `_, + `#277 `_) + + Instances of classes created using "attr.make_class()" can now + be pickled. (`#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 + diff --git a/python-attrs.spec b/python-attrs.spec new file mode 100644 index 0000000..4c7e8ff --- /dev/null +++ b/python-attrs.spec @@ -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