From 29f637c41d3e267ab7c0ebec8f190e66b9bd8747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 18 Oct 2025 12:45:59 +0200 Subject: [PATCH] dev-python/ipykernel: Enable py3.14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- .../ipykernel/ipykernel-6.30.1-r1.ebuild | 91 +++++++++++++++++++ dev-python/ipykernel/ipykernel-7.0.1.ebuild | 32 +++++-- 2 files changed, 113 insertions(+), 10 deletions(-) create mode 100644 dev-python/ipykernel/ipykernel-6.30.1-r1.ebuild diff --git a/dev-python/ipykernel/ipykernel-6.30.1-r1.ebuild b/dev-python/ipykernel/ipykernel-6.30.1-r1.ebuild new file mode 100644 index 0000000000000..9c69d2918542a --- /dev/null +++ b/dev-python/ipykernel/ipykernel-6.30.1-r1.ebuild @@ -0,0 +1,91 @@ +# 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_11 python3_{11..14} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 pypi virtualx + +DESCRIPTION="IPython Kernel for Jupyter" +HOMEPAGE=" + https://github.com/ipython/ipykernel/ + https://pypi.org/project/ipykernel/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" + +RDEPEND=" + >=dev-python/comm-0.1.1[${PYTHON_USEDEP}] + >=dev-python/ipython-7.23.1[${PYTHON_USEDEP}] + >=dev-python/jupyter-client-8.0.0[${PYTHON_USEDEP}] + >=dev-python/jupyter-core-4.12[${PYTHON_USEDEP}] + >=dev-python/matplotlib-inline-0.1[${PYTHON_USEDEP}] + >=dev-python/nest-asyncio-1.4[${PYTHON_USEDEP}] + >=dev-python/packaging-22[${PYTHON_USEDEP}] + >=dev-python/psutil-5.7[${PYTHON_USEDEP}] + >=dev-python/pyzmq-25[${PYTHON_USEDEP}] + >=dev-python/tornado-6.2[${PYTHON_USEDEP}] + >=dev-python/traitlets-5.4.0[${PYTHON_USEDEP}] +" +# RDEPEND seems specifically needed in BDEPEND, at least jupyter +# bug #816486 +# pytest-8 runs a small subset of tests, we allow newer for 3.13 +# since a few tests are better than skipping entirely +BDEPEND=" + ${RDEPEND} + test? ( + dev-python/ipyparallel[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( flaky pytest-{asyncio,timeout} ) +distutils_enable_tests pytest + +src_prepare() { + # debugpy is actually optional + sed -i -e '/debugpy/d' pyproject.toml || die + distutils-r1_src_prepare +} + +python_compile() { + distutils-r1_python_compile + # Use python3 in kernel.json configuration, bug #784764 + sed -i -e '/python3.[0-9]\+/s//python3/' \ + "${BUILD_DIR}/install${EPREFIX}/usr/share/jupyter/kernels/python3/kernel.json" || die +} + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=( + # TODO + tests/test_debugger.py::test_attach_debug + tests/test_debugger.py::test_breakpoint_in_cell_with_leading_empty_lines + tests/test_debugger.py::test_rich_inspect_at_breakpoint + tests/test_debugger.py::test_rich_inspect_not_at_breakpoint + tests/test_debugger.py::test_set_breakpoints + tests/test_debugger.py::test_stop_on_breakpoint + tests/test_debugger.py::test_copy_to_globals + # hangs? + tests/test_eventloop.py::test_tk_loop + # doesn't like pyside2? + tests/test_eventloop.py::test_qt_enable_gui + ) + + case ${EPYTHON} in + python3.14) + EPYTEST_DESELECT+=( + tests/test_kernel.py::test_subprocess_{error,print} + ) + ;; + esac + + epytest +} diff --git a/dev-python/ipykernel/ipykernel-7.0.1.ebuild b/dev-python/ipykernel/ipykernel-7.0.1.ebuild index ab7bade8280ad..39efa94786e39 100644 --- a/dev-python/ipykernel/ipykernel-7.0.1.ebuild +++ b/dev-python/ipykernel/ipykernel-7.0.1.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=hatchling -PYTHON_COMPAT=( pypy3_11 python3_{11..13} ) +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) PYTHON_REQ_USE="threads(+)" inherit distutils-r1 pypi virtualx @@ -48,15 +48,6 @@ BDEPEND=" EPYTEST_PLUGINS=( pytest-{asyncio,rerunfailures,timeout} ) distutils_enable_tests pytest -EPYTEST_DESELECT=( - # hangs? - tests/test_eventloop.py::test_tk_loop - # flaky - tests/test_eventloop.py::test_qt_enable_gui - # fails without pytest-cov; apparently "time-sensitive" too - tests/test_subshells.py::test_run_concurrently_sequence -) - src_prepare() { # debugpy is actually optional sed -i -e '/debugpy/d' pyproject.toml || die @@ -73,3 +64,24 @@ python_compile() { src_test() { virtx distutils-r1_src_test } + +python_test() { + local EPYTEST_DESELECT=( + # hangs? + tests/test_eventloop.py::test_tk_loop + # flaky + tests/test_eventloop.py::test_qt_enable_gui + # fails without pytest-cov; apparently "time-sensitive" too + tests/test_subshells.py::test_run_concurrently_sequence + ) + + case ${EPYTHON} in + python3.14) + EPYTEST_DESELECT+=( + tests/test_kernel.py::test_subprocess_{error,print} + ) + ;; + esac + + epytest +}