commit:     a6bd7d348c44f891b04d6a5db669a9ab0b0110ba
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 11 18:43:55 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jul 11 19:23:27 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6bd7d34

dev-python/cloudpickle: Enable py3.13

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/cloudpickle/cloudpickle-3.0.0.ebuild    |  8 ++++--
 .../files/cloudpickle-3.0.0-py313.patch            | 32 ++++++++++++++++++++++
 2 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/dev-python/cloudpickle/cloudpickle-3.0.0.ebuild 
b/dev-python/cloudpickle/cloudpickle-3.0.0.ebuild
index f0be98a6dc11..d0b42b0d4e92 100644
--- a/dev-python/cloudpickle/cloudpickle-3.0.0.ebuild
+++ b/dev-python/cloudpickle/cloudpickle-3.0.0.ebuild
@@ -4,8 +4,7 @@
 EAPI=8
 
 DISTUTILS_USE_PEP517=flit
-# py3.13: https://github.com/cloudpipe/cloudpickle/issues/533
-PYTHON_COMPAT=( pypy3 python3_{10..12} )
+PYTHON_COMPAT=( pypy3 python3_{10..13} )
 
 inherit distutils-r1
 
@@ -31,6 +30,11 @@ BDEPEND="
 
 distutils_enable_tests pytest
 
+PATCHES=(
+       # https://github.com/cloudpipe/cloudpickle/pull/534
+       "${FILESDIR}/${P}-py313.patch"
+)
+
 python_test() {
        local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
        local -x PYTHONPATH=${PYTHONPATH}:tests/cloudpickle_testpkg

diff --git a/dev-python/cloudpickle/files/cloudpickle-3.0.0-py313.patch 
b/dev-python/cloudpickle/files/cloudpickle-3.0.0-py313.patch
new file mode 100644
index 000000000000..5b9655b82716
--- /dev/null
+++ b/dev-python/cloudpickle/files/cloudpickle-3.0.0-py313.patch
@@ -0,0 +1,32 @@
+From 3dc53183e86bb9f0ee9d45ff9d4971036c61ecba Mon Sep 17 00:00:00 2001
+From: Lumir Balhar <lbal...@redhat.com>
+Date: Wed, 15 May 2024 10:43:50 +0200
+Subject: [PATCH] Fix test_extract_class_dict for Python 3.13 beta 1
+
+Resolves: https://github.com/cloudpipe/cloudpickle/issues/533
+Closes: https://github.com/cloudpipe/cloudpickle/pull/534
+---
+ tests/cloudpickle_test.py | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tests/cloudpickle_test.py b/tests/cloudpickle_test.py
+index 4041bf7..6d0d915 100644
+--- a/tests/cloudpickle_test.py
++++ b/tests/cloudpickle_test.py
+@@ -108,7 +108,12 @@ def test_extract_class_dict():
+             return "c"
+ 
+     clsdict = _extract_class_dict(C)
+-    assert sorted(clsdict.keys()) == ["C_CONSTANT", "__doc__", "method_c"]
++    expected_keys = ["C_CONSTANT", "__doc__", "method_c"]
++    # New attribute in Python 3.13 beta 1
++    # https://github.com/python/cpython/pull/118475
++    if sys.version_info >= (3, 13):
++        expected_keys.insert(2, "__firstlineno__")
++    assert sorted(clsdict.keys()) == expected_keys
+     assert clsdict["C_CONSTANT"] == 43
+     assert clsdict["__doc__"] is None
+     assert clsdict["method_c"](C()) == C().method_c()
+-- 
+2.45.2
+

Reply via email to