summaryrefslogtreecommitdiff
path: root/dev-python/ipyparallel
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/ipyparallel')
-rw-r--r--dev-python/ipyparallel/Manifest3
-rw-r--r--dev-python/ipyparallel/files/ipyparallel-9.0.1-pypy3_11.patch43
-rw-r--r--dev-python/ipyparallel/ipyparallel-9.0.1.ebuild96
3 files changed, 142 insertions, 0 deletions
diff --git a/dev-python/ipyparallel/Manifest b/dev-python/ipyparallel/Manifest
index 531d850c0a13..09edc12a8fa6 100644
--- a/dev-python/ipyparallel/Manifest
+++ b/dev-python/ipyparallel/Manifest
@@ -1,3 +1,6 @@
+AUX ipyparallel-9.0.1-pypy3_11.patch 1862 BLAKE2B f0efe54bb6906fbe3d7187b56d7c641f2c8c1c7d164f6109a3de281019c9f26d3d963b6cdf69c548fd68351df01a9aefa08b5d18618e26a46a497e4aeba44734 SHA512 cabb0e85dcc0d9ea03091524ba2c146a952f6ea5637bb62471ba2c6a084d707296f7c25afa78310a8a26e45c96ea776adeec6f6865401dc58e26635c416ccd7e
DIST ipyparallel-9.0.0.tar.gz 4403287 BLAKE2B 18248d6ee1eda409ff5de54ec7dbcdb75ac4a6dbd7af4fee23ec826d4c179e67454c980c6db00d180ddf078bd802a4b6f2e0245c63cf9bd55c99ead1bf1ba044 SHA512 4c89edba0bbad9ce75deaaa1e2486b1c50ca3f7a1a8f3c22b6dadc72f5b1f86958fe8c559e4548c69518494fd51c4ebe65f6019b154c8ffd3ef51eebb9bf1f03
+DIST ipyparallel-9.0.1.tar.gz 4407324 BLAKE2B 9302e0aa6ed790a687fd5d7f3842684d11e73868d9f2f299634d8813735e4d09f0faa873cca45c619f43e6413f269928be3af68bf9c733fd05853918b361e66a SHA512 6359f932a249197610016b3ccc5f86b6e0565e1e2070f5dde72c0e75877f0bc4e038a0cc5cea05c9a068d1e82e923d983470e6db465169527bcb9499cc550d52
EBUILD ipyparallel-9.0.0.ebuild 2596 BLAKE2B 37b9af3ff5153202c62de6fa0fd123e04b6a3bcf655f2bcebee7b762ef21dc601f4dc2b304beb934fde5d165958915528d220871efba9adf25c004a485612ac4 SHA512 12fa9c650dc1ae390d2b0cc9443ac8f7fbb691d983603ed90b6012a67ba509fc5c37d29db061c6f9010dc1326b2adbc972a456f1a252c10f32b4dc8003625060
+EBUILD ipyparallel-9.0.1.ebuild 2745 BLAKE2B e04a6a1afc4310e9aac600e92325b8c1e77132bea3cf6eb250a843ffb617b8820bb22cff2efdfa7f33bd1ecac6d3cbb4e7436b367b3088f6dc08329b6a41cde3 SHA512 a76e6b1d2dccb7cfe10198d6059de0ab3cdcc8b2572becd6bc7e3b6415273a92862708a5951bf8b8bfb098f2ceb520573efee3440170c227d423d330d5c313a3
MISC metadata.xml 531 BLAKE2B 92dd755dd3036f653f24eda893979487b8d5bbf3c369f3f10c3fc2e69ad6aef03cb6eca295bcb8c6f89f0838780c20132bfd2a33bb38b56b227e97258447c2e0 SHA512 fcd131d18b012d1511468777dd72e07ed28a514419923911082229c0256b9003d9afe2048b6c339cb5c94307026b52bc4e9b6781d45660178d18385d71af8f21
diff --git a/dev-python/ipyparallel/files/ipyparallel-9.0.1-pypy3_11.patch b/dev-python/ipyparallel/files/ipyparallel-9.0.1-pypy3_11.patch
new file mode 100644
index 000000000000..9b42735b9be0
--- /dev/null
+++ b/dev-python/ipyparallel/files/ipyparallel-9.0.1-pypy3_11.patch
@@ -0,0 +1,43 @@
+From 1f3299cc4c8f8281ce48222e711393a0cadcb9fa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 3 Mar 2025 21:27:08 +0100
+Subject: [PATCH 1/2] Use new serialization code for PyPy3.10+ 7.3.19+
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Enable the new `inspect.signature(types.CodeType)` code path for
+PyPy3.10 7.3.19 and newer, notably including PyPy3.11 that does not work
+with the fallback code anymore. Add a workaround to skip the `magic`
+parameter that does not seem to be exposed (or needed).
+
+With these changes, the serialization tests pass on PyPy3.11 7.3.19,
+as well as most of the test suite.
+
+Fixes #933
+
+Signed-off-by: Michał Górny <mgorny@gentoo.org>
+---
+ ipyparallel/serialize/codeutil.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/ipyparallel/serialize/codeutil.py b/ipyparallel/serialize/codeutil.py
+index ca0828a4..66dccc1f 100644
+--- a/ipyparallel/serialize/codeutil.py
++++ b/ipyparallel/serialize/codeutil.py
+@@ -29,11 +29,12 @@ def code_ctor(*args):
+ # pass every supported arg to the code constructor
+ # this should be more forward-compatible
+ # (broken on pypy: https://github.com/ipython/ipyparallel/issues/845)
+-if sys.version_info >= (3, 10) and not hasattr(sys, "pypy_version_info"):
++if sys.version_info >= (3, 10) and getattr(sys, "pypy_version_info", (7, 3, 19)) >= (7, 3, 19):
+ _code_attr_names = tuple(
+ _code_attr_map.get(name, name)
+ for name, param in inspect.signature(types.CodeType).parameters.items()
+- if param.POSITIONAL_ONLY or param.POSITIONAL_OR_KEYWORD
++ if (param.POSITIONAL_ONLY or param.POSITIONAL_OR_KEYWORD)
++ and not (hasattr(sys, "pypy_version_info") and name == "magic")
+ )
+ else:
+ # can't inspect types.CodeType on Python < 3.10
+
diff --git a/dev-python/ipyparallel/ipyparallel-9.0.1.ebuild b/dev-python/ipyparallel/ipyparallel-9.0.1.ebuild
new file mode 100644
index 000000000000..0d381a8bd1c3
--- /dev/null
+++ b/dev-python/ipyparallel/ipyparallel-9.0.1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( pypy3 python3_{10..13} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Interactive Parallel Computing with IPython"
+HOMEPAGE="
+ https://ipyparallel.readthedocs.io/
+ https://github.com/ipython/ipyparallel/
+ https://pypi.org/project/ipyparallel/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-25[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5[${PYTHON_USEDEP}]
+ >=dev-python/ipython-5[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7[${PYTHON_USEDEP}]
+ dev-python/jupyter-server[${PYTHON_USEDEP}]
+ <dev-python/ipykernel-7[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.9.1[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/flit-core[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-tornado[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+"
+
+# TODO: package myst_parser
+# distutils_enable_sphinx docs/source
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/ipython/ipyparallel/pull/934
+ "${FILESDIR}/${P}-pypy3_11.patch"
+)
+
+src_configure() {
+ export IPP_DISABLE_JS=1
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # we don't run a mongo instance for tests
+ ipyparallel/tests/test_mongodb.py::TestMongoBackend
+ # TODO
+ ipyparallel/tests/test_util.py::test_disambiguate_ip
+ # Gets upset that a timeout _doesn't_ occur, presumably because
+ # we're cranking up too many test timeouts. Oh well.
+ # bug #823458#c3
+ ipyparallel/tests/test_asyncresult.py::AsyncResultTest::test_wait_for_send
+ # We could patch the timeout for these too but they're going to be inherently
+ # fragile anyway based on what they do.
+ ipyparallel/tests/test_client.py::TestClient::test_activate
+ ipyparallel/tests/test_client.py::TestClient::test_lazy_all_targets
+ ipyparallel/tests/test_client.py::TestClient::test_wait_for_engines
+ )
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # pure Python datetime incompatibility? TODO
+ ipyparallel/tests/test_asyncresult.py::TestAsyncResult::test_elapsed_multi
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -p tornado
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ # move /usr/etc stuff to /etc
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
+
+pkg_postinst() {
+ optfeature "Jupyter Notebook integration" dev-python/notebook
+}