forked from suse-edge/Factory
Merge pull request 'wrapt-fix' (#428) from dprodanov/Factory:wrapt-fix into main
Reviewed-on: suse-edge/Factory#428 Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
This commit is contained in:
@@ -0,0 +1,370 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 13 20:32:10 UTC 2026 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 2.1.2:
|
||||
* When a weak function proxy was created for a bound method and
|
||||
the instance it was bound to was garbage collected, calling
|
||||
the proxy would silently call the function as unbound instead
|
||||
of raising a ReferenceError.
|
||||
* When deleting an attribute named __annotations__ on an object
|
||||
proxy, the attribute was only being deleted from the proxy
|
||||
and not also from the wrapped object.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 3 05:11:19 UTC 2026 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Update to 2.1.1:
|
||||
## Features Changed
|
||||
* Drop support for Python 3.8. Python version 3.9 or later is now required.
|
||||
## Bugs Fixed
|
||||
* Missing tox.ini from source distribution package has been added.
|
||||
* Improved type hints so that mypy and ty work better for methods of
|
||||
classes when using wrapt.decorator and wrapt.function_wrapper. Note that
|
||||
applying these to static methods still does not work correctly due to
|
||||
possibly limitations in those type checkers. The pyrefly tool still does
|
||||
not work correctly with wrapt.decorator and wrapt.function_wrapper
|
||||
applied to any methods of classes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 26 01:59:50 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Update to 2.0.1:
|
||||
## New Features
|
||||
* Added __all__ attribute to wrapt module to expose the public API.
|
||||
* The wrapt.PartialCallableObjectProxy class can now be accessed via the
|
||||
alias wrapt.partial, which is a convenience for users who are used to
|
||||
using functools.partial and want to use the wrapt version of it.
|
||||
* Type hints have been added to the wrapt module.
|
||||
* Added wrapt.BaseObjectProxy class which is the base class for all object
|
||||
proxy classes.
|
||||
* Added wrapt.AutoObjectProxy class which is a pure Python subclass of
|
||||
BaseObjectProxy which overrides the __new__() method to dynamically
|
||||
generate a custom subclass which includes methods for callable,
|
||||
descriptor and iterator protocols, as well as other select special
|
||||
methods.
|
||||
* Added wrapt.LazyObjectProxy class which is a variant of AutoObjectProxy
|
||||
which takes a callable which returns the object to be wrapped. The
|
||||
callable is only invoked the first time an attribute of the wrapped
|
||||
object is accessed.
|
||||
* Added wrapt.lazy_import() function which takes a module name and returns
|
||||
a LazyObjectProxy which will import the module when it is first needed.
|
||||
## Features Changed
|
||||
* Code related to Python 2.X and workarounds for older Python 3.X versions
|
||||
has been removed.
|
||||
* Dependency at runtime on setuptools for calculating package entry points
|
||||
has been removed. Instead the importlib.metadata module is now used for
|
||||
this purpose.
|
||||
* For reasons to do with backward/forward compatibility the wrapt module
|
||||
included references to getcallargs() and formatargspec() functions which
|
||||
were part of the inspect module at one time or another. These were
|
||||
provided as convenience for users of the wrapt module, but were not
|
||||
actually part of the public API. They have now been removed from the
|
||||
wrapt module and are no longer available.
|
||||
* The enabled, adapter and proxy arguments to the @decorator decorator had
|
||||
to be keyword parameters, and the initial wrapped argument had to be
|
||||
positional only. Because though Python 2.X was still being supported it
|
||||
was not possible to use appropriate syntax to mark them as such. These
|
||||
arguments are now marked as positional and keyword only parameters in the
|
||||
function signature as appropriate.
|
||||
* The object proxy classes now raise a WrapperNotInitializedError exception
|
||||
rather than Python builtin ValueError exception when an attempt is made
|
||||
to access an attribute of the wrapped object before the wrapper has been
|
||||
initialized.
|
||||
## Bugs Fixed
|
||||
* The wrapt.lazy_import() function wasn't included in the __all__ attribute
|
||||
of the wrapt module.
|
||||
* When using wrapt.lazy_import() to lazily import a function of a module,
|
||||
the resulting proxy object wasn't marked as callable until something
|
||||
triggered the import of the module via the proxy. This meant a callable()
|
||||
check on the proxy would return False until the module was actually
|
||||
imported.
|
||||
* Reference count was not being incremented on type object for C
|
||||
implementation of the partial callable object proxy when module was
|
||||
initialized. If wrapt was being used in Python sub interpreters which
|
||||
were deleted it could lead to the process crashing.
|
||||
* Wasn't chaining __mro_entries__() calls when the wrapped object was not a
|
||||
type (class) and itself had a __mro_entries__() method. This meant that
|
||||
if using the object proxy as a base class for a generic class, the
|
||||
generic parameters were being ignored.
|
||||
* When an object proxy wrapped an immutable type, such as an integer, and
|
||||
the object proxy had been assigned to a second variable, the result of an
|
||||
in-place operation on the second variable was also affecting the first
|
||||
variable, when instead the lifetime of the two variables should have been
|
||||
independent to reflect what occurs for normal immutable types.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 16 14:09:34 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||||
|
||||
- Update to 1.17.3
|
||||
* Added universal binary wheels for macOS. That is, contains
|
||||
both x86_64 and arm64 architectures in the same wheel.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 13 02:42:47 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Switch to pyproject macros.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 28 08:57:55 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||||
|
||||
- Update to 1.17.2
|
||||
* Added universal binary wheels for macOS. That is, contains
|
||||
both x86_64 and arm64 architectures in the same wheel.
|
||||
- from version 1.17.1
|
||||
* Due to GitHub actions changes, binary wheels were missing
|
||||
for macOS Intel.
|
||||
* Not implemented error for __reduce__() on ObjectProxy was
|
||||
incorrectly displaying the error as being on __reduce_ex__().
|
||||
- from version 1.17.0
|
||||
* Add __format__() method to ObjectProxy class to allow formatting
|
||||
of wrapped object.
|
||||
* Added C extension internal flag to indicate that wrapt should be
|
||||
safe for Python 3.13 free threading mode. Releases will include
|
||||
free threading variants of Python wheels. Note that as free
|
||||
threading is new, one should be cautious about using it in
|
||||
production until it has been more widely tested.
|
||||
* When a normal function or builtin function which had wrapt.decorator
|
||||
or a function wrapper applied, was assigned as a class attribute,
|
||||
and the function attribute called via the class or an instance of
|
||||
the class, an additional argument was being passed, inserted as the
|
||||
first argument, which was the class or instance. This was not the
|
||||
correct behaviour and the class or instance should not have been
|
||||
passed as the first argument.
|
||||
* When an instance of a callable class object was wrapped which didn’t
|
||||
not have a __get__() method for binding, and it was called in context
|
||||
where binding would be attempted, it would fail with error that __get__()
|
||||
did not exist when instead it should have been called directly, ignoring
|
||||
that binding was not possible.
|
||||
* The __round__ hook for the object proxy didn’t accept ndigits argument.
|
||||
- Drop py313-classmethods.patch, merged upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 28 11:56:13 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- add py313-classmethods.patch to fix test failures with py313
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 27 20:31:38 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.16.0:
|
||||
* Note that version 1.16.0 drops support for Python 2.7 and
|
||||
3.5. Python version 3.6 or later is required.
|
||||
* The ``patch_function_wrapper()`` decorator now accepts an
|
||||
``enabled`` argument, which can be a literal boolean value,
|
||||
object that evaluates as boolean, or a callable object which
|
||||
returns a boolean. In the case of a callable, determination
|
||||
of whether the wrapper is invoked will be left until
|
||||
the point of the call. In the other cases, the wrapper will
|
||||
not be applied if the value evaluates false at the point of
|
||||
applying the wrapper.
|
||||
* The import hook loader and finder objects are now implemented
|
||||
as transparent object proxies so they properly proxy pass
|
||||
access to attributes/functions of the wrapped loader or finder.
|
||||
* Code files in the implementation have been reorganized such
|
||||
that the pure Python version of the ``ObjectProxy`` class
|
||||
is directly available even if the C extension variant is
|
||||
being used. This is to allow the pure Python variant to
|
||||
be used in exceptional cases where the C extension variant is
|
||||
not fully compatible with the pure Python implementation and the
|
||||
behaviour of the pure Python variant is what is required.
|
||||
* It was not possible to update the ``__class__`` attribute
|
||||
through the transparent object proxy when relying on the C
|
||||
implementation.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 4 20:43:27 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.15.0:
|
||||
* When the C extension for wrapt was being used, and a property
|
||||
was used on an object proxy wrapping another object to intercept
|
||||
access to an attribute of the same name on the wrapped object,
|
||||
if the function implementing the property
|
||||
raised an exception, then the exception was ignored and not
|
||||
propagated back to the caller.
|
||||
* Address issue where the post import hook mechanism of wrapt
|
||||
wasn't transparent and left the __loader__ and __spec__.loader
|
||||
attributes of a module as the wrapt import hook loader and
|
||||
not the original loader.
|
||||
* Address issues where a thread deadlock could occur within the
|
||||
wrapt module import handler, when code executed from a post
|
||||
import hook created a new thread and code executed in the
|
||||
context of the new thread itself tried to register a post
|
||||
import hook, or imported a new module.
|
||||
* When using ``CallableObjectProxy`` as a wrapper for a type or
|
||||
function and calling the wrapped object, it was not possible
|
||||
to pass a keyword argument named ``self``.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 21 12:38:55 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- add sle15_python_module_pythons (jsc#PED-68)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 13 22:45:59 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- Make calling of %{sle15modernpython} optional.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 1 14:04:50 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.14.1:
|
||||
* When the post import hooks mechanism was being used, and a Python package with
|
||||
its own custom module importer was used, importing modules could fail if the
|
||||
custom module importer didn't use the latest Python import hook finder/loader
|
||||
APIs and instead used the deprecated API. This was actually occurring with the
|
||||
`zipimporter` in Python itself, which was not updated to use the newer Python
|
||||
APIs until Python 3.10.
|
||||
**Bugs Fixed**
|
||||
* Python 3.11 dropped ``inspect.formatargspec()`` which was used in creating
|
||||
signature changing decorators. Now bundling a version of this function
|
||||
which uses ``Parameter`` and ``Signature`` from ``inspect`` module when
|
||||
available. The replacement function is exposed as ``wrapt.formatargspec()``
|
||||
if need it for your own code.
|
||||
* When using a decorator on a class, ``isinstance()`` checks wouldn't previously
|
||||
work as expected and you had to manually use ``Type.__wrapped__`` to access
|
||||
the real type when doing instance checks. The ``__instancecheck__`` hook is
|
||||
now implemented such that you don't have to use ``Type.__wrapped__`` instead
|
||||
of ``Type`` as last argument to ``isinstance()``.
|
||||
* Eliminated deprecation warnings related to Python module import system, which
|
||||
would have turned into broken code in Python 3.12. This was used by the post
|
||||
import hook mechanism.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 6 18:18:03 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.13.3:
|
||||
* Adds wheels for Python 3.10 on PyPi and where possible also now
|
||||
generating binary wheels for ``musllinux``.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 26 21:13:04 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.13.2:
|
||||
* Note that the next signficant release of `wrapt` will drop support for
|
||||
Python 2.7 and Python 3.5.
|
||||
* Fix Python version constraint so PyPi classifier for ``pip`` requires
|
||||
Python 2.7 or Python 3.5+.
|
||||
* When a reference to a class method was taken out of a class, and then
|
||||
wrapped in a function wrapper, and called, the class type was not being
|
||||
passed as the instance argument, but as the first argument in args,
|
||||
with the instance being ``None``. The class type should have been passed
|
||||
as the instance argument.
|
||||
* If supplying an adapter function for a signature changing decorator
|
||||
using input in the form of a function argument specification, name lookup
|
||||
exceptions would occur where the adaptor function had annotations which
|
||||
referenced non builtin Python types. Although the issues have been
|
||||
addressed where using input data in the format usually returned by
|
||||
``inspect.getfullargspec()`` to pass the function argument specification,
|
||||
you can still have problems when supplying a function signature as
|
||||
string. In the latter case only Python builtin types can be referenced
|
||||
in annotations.
|
||||
* When a decorator was applied on top of a data/non-data descriptor in a
|
||||
class definition, the call to the special method ``__set_name__()`` to
|
||||
notify the descriptor of the variable name was not being propogated. Note
|
||||
that this issue has been addressed in the ``FunctionWrapper`` used by
|
||||
``@wrapt.decorator`` but has not been applied to the generic
|
||||
``ObjectProxy`` class. If using ``ObjectProxy`` directly to construct a
|
||||
custom wrapper which is applied to a descriptor, you will need to
|
||||
propogate the ``__set_name__()`` call yourself if required.
|
||||
* The ``issubclass()`` builtin method would give incorrect results when used
|
||||
with a class which had a decorator applied to it. Note that this has only
|
||||
been able to be fixed for Python 3.7+. Also, due to what is arguably a
|
||||
bug (https://bugs.python.org/issue44847) in the Python standard library,
|
||||
you will still have problems when the class heirarchy uses a base class
|
||||
which has the ``abc.ABCMeta`` metaclass. In this later case an exception
|
||||
will be raised of ``TypeError: issubclass() arg 1 must be a class``.
|
||||
- drop fix-dummy-collector-pytest6.patch, wrapt-pr161-py39tests.patch (upstream)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 20 16:50:08 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Fix python39 test suite failures
|
||||
* wrapt-pr161-py39tests.patch
|
||||
* gh#GrahamDumpleton/wrapt#161
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 4 00:37:53 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
|
||||
|
||||
- Fix python3.6 build with pytest 6
|
||||
* fix-dummy-collector-pytest6.patch
|
||||
* gh#GrahamDumpleton/wrapt#168
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 16 11:01:55 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 1.12.1:
|
||||
* Applying a function wrapper to a static method of a class using the
|
||||
``wrap_function_wrapper()`` function, or wrapper for the same, wasn't
|
||||
being done correctly when the static method was the immediate child of
|
||||
the target object. It was working when the name path had multiple name
|
||||
components. A failure would subsequently occur when the static method
|
||||
was called via an instance of the class, rather than the class.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 9 16:25:43 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 1.12.0:
|
||||
* Provided that you only want to support Python 3.7, when deriving from
|
||||
a base class which has a decorator applied to it, you no longer need
|
||||
to access the true type of the base class using ``__wrapped__`` in
|
||||
the inherited class list of the derived class.
|
||||
* When using the ``synchronized`` decorator on instance methods of a
|
||||
class, if the class declared special methods to override the result for
|
||||
when the class instance was tested as a boolean so that it returned
|
||||
``False`` all the time, the synchronized method would fail when called.
|
||||
* When using an adapter function to change the signature of the decorated
|
||||
function, ``inspect.signature()`` was returning the wrong signature
|
||||
when an instance method was inspected by accessing the method via the
|
||||
class type.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 22 11:37:01 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Update to 1.11.2:
|
||||
* Fix possible crash when garbage collection kicks in when invoking a destructor of wrapped object.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 11 13:28:24 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Update to 1.11.1:
|
||||
* Many bugfixes all around
|
||||
* see changes.rst for detailed list
|
||||
- Switch to github to include tests
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jul 9 10:26:29 UTC 2017 - adrian@suse.de
|
||||
|
||||
- update to version 1.10.10:
|
||||
* Added back missing description and categorisations when releasing
|
||||
to PyPi.
|
||||
* Code for inspect.getargspec() when using Python 2.6 was missing
|
||||
import of sys module.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 27 13:54:07 UTC 2017 - jmatejek@suse.com
|
||||
|
||||
- update for singlespec
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 1 05:30:31 UTC 2016 - tbechtold@suse.com
|
||||
|
||||
update to version 1.10.8
|
||||
* Increment version to 1.10.8.
|
||||
* Fix modulo operator on ObjectProxy
|
||||
* Increment version to 1.10.7.
|
||||
* Document mod operator bug in Python variant of object proxy.
|
||||
* Update copyright year.
|
||||
* Fix tests for floordiv and mod.
|
||||
* Remove reference to inspect.getargspec() as removed in Python 3.6. #64
|
||||
- Use pypi.io as Source url
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 16 08:25:35 UTC 2016 - michael@stroeder.com
|
||||
|
||||
- update to 1.10.6
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 4 16:03:54 UTC 2014 - hpj@urpla.net
|
||||
|
||||
- version 1.9: initial build
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
#
|
||||
# spec file for package python-wrapt
|
||||
#
|
||||
# Copyright (c) 2026 SUSE LLC and contributors
|
||||
# Copyright (c) 2015 LISA GmbH, Bingen, 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 https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-wrapt
|
||||
Version: 2.1.2
|
||||
Release: 0
|
||||
Summary: A Python module for decorators, wrappers and monkey patching
|
||||
License: BSD-2-Clause
|
||||
URL: https://github.com/GrahamDumpleton/wrapt
|
||||
Source: https://github.com/GrahamDumpleton/wrapt/archive/%{version}.tar.gz
|
||||
BuildRequires: %{python_module devel >= 3.9}
|
||||
BuildRequires: %{python_module mypy}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
The aim of the **wrapt** module is to provide a transparent object proxy
|
||||
for Python, which can be used as the basis for the construction of function
|
||||
wrappers and decorator functions.
|
||||
|
||||
The **wrapt** module focuses very much on correctness. It therefore goes
|
||||
way beyond existing mechanisms such as ``functools.wraps()`` to ensure that
|
||||
decorators preserve introspectability, signatures, type checking abilities
|
||||
etc. The decorators that can be constructed using this module will work in
|
||||
far more scenarios than typical decorators and provide more predictable and
|
||||
consistent behaviour.
|
||||
|
||||
To ensure that the overhead is as minimal as possible, a C extension module
|
||||
is used for performance critical components. An automatic fallback to a
|
||||
pure Python implementation is also provided where a target system does not
|
||||
have a compiler to allow the C extension to be compiled.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
For further information on the **wrapt** module see:
|
||||
|
||||
* http://wrapt.readthedocs.org/
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n wrapt-%{version}
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags}"
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
|
||||
%check
|
||||
%pytest_arch -k 'not mypy_'
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE
|
||||
%doc README.md docs/changes.rst
|
||||
%{python_sitearch}/wrapt
|
||||
%{python_sitearch}/wrapt-%{version}.dist-info
|
||||
|
||||
%changelog
|
||||
@@ -174,7 +174,3 @@
|
||||
[submodule "abseil-cpp"]
|
||||
path = abseil-cpp
|
||||
url = https://src.opensuse.org/pool/abseil-cpp
|
||||
[submodule "python-wrapt"]
|
||||
path = python-wrapt
|
||||
url = https://src.opensuse.org/pool/python-wrapt
|
||||
branch = factory
|
||||
|
||||
-1
Submodule python-wrapt deleted from d299e525e1
BIN
Binary file not shown.
Reference in New Issue
Block a user