summaryrefslogtreecommitdiff
path: root/dev-python/ipyparallel
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2023-11-20 16:01:30 +0100
committerMichał Górny <mgorny@gentoo.org>2023-11-20 16:02:26 +0100
commit35d282e066e7489afcd0e417a7bca0f99bfcd89f (patch)
treeaa0f09a9f125f4c2cea2eced5699d562c746800c /dev-python/ipyparallel
parent939ce112bc8b3d34b58be73e9c6dc291c12a0823 (diff)
downloadgentoo-35d282e066e7489afcd0e417a7bca0f99bfcd89f.tar.gz
gentoo-35d282e066e7489afcd0e417a7bca0f99bfcd89f.tar.bz2
gentoo-35d282e066e7489afcd0e417a7bca0f99bfcd89f.zip
dev-python/ipyparallel: Enable pypy3
Sponsored-by: Ex Makhina, Inc. <info-gentoo@exmakhina.com> Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/ipyparallel')
-rw-r--r--dev-python/ipyparallel/files/ipyparallel-8.6.1-pypy310.patch32
-rw-r--r--dev-python/ipyparallel/ipyparallel-8.6.1.ebuild4
2 files changed, 35 insertions, 1 deletions
diff --git a/dev-python/ipyparallel/files/ipyparallel-8.6.1-pypy310.patch b/dev-python/ipyparallel/files/ipyparallel-8.6.1-pypy310.patch
new file mode 100644
index 000000000000..fae998d51972
--- /dev/null
+++ b/dev-python/ipyparallel/files/ipyparallel-8.6.1-pypy310.patch
@@ -0,0 +1,32 @@
+From 401980b2a79ef15cc3b35fad51163339c8654751 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 20 Nov 2023 15:45:04 +0100
+Subject: [PATCH] Use pre-3.10 serialization code on PyPy3.10
+
+The new serialization code for Python 3.10+ does not seem to work
+on PyPy3.10 7.3.13, as it causes:
+
+ ValueError: no signature found for builtin type <class 'code'>
+
+Switch back to the old code if PyPy is used, at least for the time
+being. With this change, the test suite passes on PyPy3.10.
+
+Fixes #845
+---
+ ipyparallel/serialize/codeutil.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/ipyparallel/serialize/codeutil.py b/ipyparallel/serialize/codeutil.py
+index 2d3acfa2a..80d107765 100644
+--- a/ipyparallel/serialize/codeutil.py
++++ b/ipyparallel/serialize/codeutil.py
+@@ -27,7 +27,8 @@ def code_ctor(*args):
+ }
+ # pass every supported arg to the code constructor
+ # this should be more forward-compatible
+-if sys.version_info >= (3, 10):
++# (broken on pypy: https://github.com/ipython/ipyparallel/issues/845)
++if sys.version_info >= (3, 10) and not hasattr(sys, "pypy_version_info"):
+ _code_attr_names = tuple(
+ _code_attr_map.get(name, name)
+ for name, param in inspect.signature(types.CodeType).parameters.items()
diff --git a/dev-python/ipyparallel/ipyparallel-8.6.1.ebuild b/dev-python/ipyparallel/ipyparallel-8.6.1.ebuild
index ced2606fd50e..96ee69b90056 100644
--- a/dev-python/ipyparallel/ipyparallel-8.6.1.ebuild
+++ b/dev-python/ipyparallel/ipyparallel-8.6.1.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( pypy3 python3_{10..12} )
PYTHON_REQ_USE="threads(+)"
inherit distutils-r1 optfeature pypi
@@ -51,6 +51,8 @@ distutils_enable_tests pytest
PATCHES=(
"${FILESDIR}"/${PN}-7.1.0-test-timeouts.patch
+ # https://github.com/ipython/ipyparallel/pull/846
+ "${FILESDIR}"/${P}-pypy310.patch
)
src_configure() {