summaryrefslogtreecommitdiff
path: root/dev-python/wrapt
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/wrapt')
-rw-r--r--dev-python/wrapt/Manifest3
-rw-r--r--dev-python/wrapt/files/wrapt-1.16.0-py313.patch113
-rw-r--r--dev-python/wrapt/wrapt-1.16.0.ebuild9
3 files changed, 122 insertions, 3 deletions
diff --git a/dev-python/wrapt/Manifest b/dev-python/wrapt/Manifest
index 200ad23215f3..0be97644c467 100644
--- a/dev-python/wrapt/Manifest
+++ b/dev-python/wrapt/Manifest
@@ -1,3 +1,4 @@
+AUX wrapt-1.16.0-py313.patch 4564 BLAKE2B 84cec43af7738320fa6ae9d804557594eb43e71f5a42fbfc3bb2a2c84c236b7c0556176d171d0faf16e767f5c45c300f7e1da41d2c987ca1a7c8221a5ff1e793 SHA512 cf913c8b5105f50219c59bb8b1eba2fdbee39ff731cd48aeb4a4aab11864421f874ec86d8c91fdf97d6a74df24117f093c936e6ec14286910ab6cfe284e292b5
DIST wrapt-1.16.0.gh.tar.gz 138520 BLAKE2B 6317f2fa58aaa017b510f60fb20e8b3bc4721977806f4b8e7a3f316bfa4da2a8d24156f8ab670d96f5bab6fcc29437d5d18c28ce91618f5a7093cc85d6c5b578 SHA512 65bdda3b6580748ceb720e8fc1a6b05832a355d541aa650bc87052f3aa8793d03d29a080b79eceb16392e297aed8f11a283e36f5f40a0db614b409b1dc2b6c9c
-EBUILD wrapt-1.16.0.ebuild 977 BLAKE2B bd3720ff4ab53ed65634a77d2296b5077b46fd1dae4a10a47e7781f264f114c765fad18b9061a49e59b30bcaf369658ff24293e1db43183bc3a007368ddc0acd SHA512 fdb774c329ec7343e570e814661bf90cb3bca4d0f6d67e95ee0878f8490ecf46d3836529c852d4a953a1e51cf14018753b9f0dd2b802c9b4842646c785d48307
+EBUILD wrapt-1.16.0.ebuild 1075 BLAKE2B b6e49a60f79a56661e3872f664059d023f8db5fdc95fb56e286b2cc58f4498be94c64a3247990adbca67ce8ad15046fe850dcc181c378a2c7cfeb016818983f1 SHA512 39099c2c4df728fa69fdb44200e897f08970960a06377613109541cecdf3b349070667119cd4a12c53ee529a7db7e9b209288c51c2684d311f8bb6360e06beb1
MISC metadata.xml 515 BLAKE2B 9a7eb633f7a52c3bb378854a89d8b529adfb09f4db96502875da844c4d256aa1ca2346831be3f7949894045d9185df284a7b50c142a22b1340676d079913abf6 SHA512 f260a2482e32147b1a052b949f1b438efcb406b52caad79951b60cd79c330dacc5c612269b80c730c489a9b2896c4d91572796409bbceabc36a83c056522cac2
diff --git a/dev-python/wrapt/files/wrapt-1.16.0-py313.patch b/dev-python/wrapt/files/wrapt-1.16.0-py313.patch
new file mode 100644
index 000000000000..b404bc0762b9
--- /dev/null
+++ b/dev-python/wrapt/files/wrapt-1.16.0-py313.patch
@@ -0,0 +1,113 @@
+From 185f1f2692a64f7b908b98a25d890b951a12c3c7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Fri, 8 Mar 2024 00:40:11 +0100
+Subject: [PATCH] Fix classmethod tests with Python 3.13+
+
+Fixes https://github.com/GrahamDumpleton/wrapt/issues/259
+
+---
+ tests/test_outer_classmethod.py | 18 ++++++++++--------
+ tests/test_synchronized_lock.py | 26 ++++++++++++++------------
+ 2 files changed, 24 insertions(+), 20 deletions(-)
+
+diff --git a/tests/test_outer_classmethod.py b/tests/test_outer_classmethod.py
+index ab807646..c08d34a5 100644
+--- a/tests/test_outer_classmethod.py
++++ b/tests/test_outer_classmethod.py
+@@ -128,18 +128,20 @@ def test_class_call_function(self):
+ # first argument with the actual arguments following that. This
+ # was only finally fixed in Python 3.9. For more details see:
+ # https://bugs.python.org/issue19072
++ # Starting with Python 3.13 the old behavior is back.
++ # For more details see https://github.com/python/cpython/issues/89519
+
+ _args = (1, 2)
+ _kwargs = {'one': 1, 'two': 2}
+
+ @wrapt.decorator
+ def _decorator(wrapped, instance, args, kwargs):
+- if PYXY < (3, 9):
+- self.assertEqual(instance, None)
+- self.assertEqual(args, (Class,)+_args)
+- else:
++ if (3, 9) <= PYXY < (3, 13):
+ self.assertEqual(instance, Class)
+ self.assertEqual(args, _args)
++ else:
++ self.assertEqual(instance, None)
++ self.assertEqual(args, (Class,)+_args)
+
+ self.assertEqual(kwargs, _kwargs)
+ self.assertEqual(wrapped.__module__, _function.__module__)
+@@ -176,12 +178,12 @@ def test_instance_call_function(self):
+
+ @wrapt.decorator
+ def _decorator(wrapped, instance, args, kwargs):
+- if PYXY < (3, 9):
+- self.assertEqual(instance, None)
+- self.assertEqual(args, (Class,)+_args)
+- else:
++ if (3, 9) <= PYXY < (3, 13):
+ self.assertEqual(instance, Class)
+ self.assertEqual(args, _args)
++ else:
++ self.assertEqual(instance, None)
++ self.assertEqual(args, (Class,)+_args)
+
+ self.assertEqual(kwargs, _kwargs)
+ self.assertEqual(wrapped.__module__, _function.__module__)
+diff --git a/tests/test_synchronized_lock.py b/tests/test_synchronized_lock.py
+index 0e43f7af..7c41aa5a 100644
+--- a/tests/test_synchronized_lock.py
++++ b/tests/test_synchronized_lock.py
+@@ -165,36 +165,38 @@ def test_synchronized_outer_classmethod(self):
+ # function to the class before calling and just calls it direct,
+ # explicitly passing the class as first argument. For more
+ # details see: https://bugs.python.org/issue19072
++ # Starting with Python 3.13 the old behavior is back.
++ # For more details see https://github.com/python/cpython/issues/89519
+
+- if PYXY < (3, 9):
+- _lock0 = getattr(C4.function2, '_synchronized_lock', None)
+- else:
++ if (3, 9) <= PYXY < (3, 13):
+ _lock0 = getattr(C4, '_synchronized_lock', None)
++ else:
++ _lock0 = getattr(C4.function2, '_synchronized_lock', None)
+ self.assertEqual(_lock0, None)
+
+ c4.function2()
+
+- if PYXY < (3, 9):
+- _lock1 = getattr(C4.function2, '_synchronized_lock', None)
+- else:
++ if (3, 9) <= PYXY < (3, 13):
+ _lock1 = getattr(C4, '_synchronized_lock', None)
++ else:
++ _lock1 = getattr(C4.function2, '_synchronized_lock', None)
+ self.assertNotEqual(_lock1, None)
+
+ C4.function2()
+
+- if PYXY < (3, 9):
+- _lock2 = getattr(C4.function2, '_synchronized_lock', None)
+- else:
++ if (3, 9) <= PYXY < (3, 13):
+ _lock2 = getattr(C4, '_synchronized_lock', None)
++ else:
++ _lock2 = getattr(C4.function2, '_synchronized_lock', None)
+ self.assertNotEqual(_lock2, None)
+ self.assertEqual(_lock2, _lock1)
+
+ C4.function2()
+
+- if PYXY < (3, 9):
+- _lock3 = getattr(C4.function2, '_synchronized_lock', None)
+- else:
++ if (3, 9) <= PYXY < (3, 13):
+ _lock3 = getattr(C4, '_synchronized_lock', None)
++ else:
++ _lock3 = getattr(C4.function2, '_synchronized_lock', None)
+ self.assertNotEqual(_lock3, None)
+ self.assertEqual(_lock3, _lock2)
+
diff --git a/dev-python/wrapt/wrapt-1.16.0.ebuild b/dev-python/wrapt/wrapt-1.16.0.ebuild
index f031e2c22e4d..b6f75e0e9581 100644
--- a/dev-python/wrapt/wrapt-1.16.0.ebuild
+++ b/dev-python/wrapt/wrapt-1.16.0.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..12} pypy3 )
+PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1
@@ -29,6 +29,11 @@ IUSE="+native-extensions"
distutils_enable_tests pytest
distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
+PATCHES=(
+ # https://github.com/GrahamDumpleton/wrapt/pull/260
+ "${FILESDIR}/${P}-py313.patch"
+)
+
python_compile() {
local -x WRAPT_INSTALL_EXTENSIONS=$(usex native-extensions true false)
distutils-r1_python_compile