commit:     7b5b01a59a4098be51b5fcaf790be4287dc28a9a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  6 10:25:43 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jan  6 10:25:43 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7b5b01a5

dev-python/ipython: Remove old

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

 dev-python/ipython/Manifest                        |   1 -
 .../ipython/files/ipython-9.5.0-assert.patch       |  88 ------------
 dev-python/ipython/ipython-8.37.0.ebuild           | 158 ---------------------
 3 files changed, 247 deletions(-)

diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest
index bf00821c23ca..38b5e5b31222 100644
--- a/dev-python/ipython/Manifest
+++ b/dev-python/ipython/Manifest
@@ -1,4 +1,3 @@
-DIST ipython-8.37.0.tar.gz 5606088 BLAKE2B 
4cb3a6ae801fcbbf352eb8aaae11a7bc6911a76a816e1ce8845a6f3044fbb888cf49dc7c5a500305da47497ec2341a7abf6ad5fff863dd9175bf6eae2f03f7a8
 SHA512 
bde7b6962ca59688cb9f1032a2735df428dec41ec531b98488a5a35ef67c09a375973537c10bef7574ad112f3396b056f8a4f754b63712b72b0f9f20ab052623
 DIST ipython-9.4.0.tar.gz 4385338 BLAKE2B 
20bf17c945ab2c727aa340a500e2f452dadd440ff809e5aea2ebaa0bd146a6bf2103f2435549a0f4b898690e6aceb15850fc2ba92bb9b94d8e084b1f13cb17a1
 SHA512 
8e0bd35effa6b5d6d17b7903ae708f1db753717b2271c79b6662fc508e003a7b3b510604ed340e6e89a8c84abf7c3718f785eb39d0914b653c47adc999a1d2f4
 DIST ipython-9.7.0.tar.gz 4422115 BLAKE2B 
c79ed9d48daa647d3430f8f8a6cb7ea58be3bf9f283be0fb0a68bc530859db5f9cfd8419cef8c783ac7ae939fc111dd4a01841fa22f544135cda536100afbc6c
 SHA512 
d611bd9c36a7497c4757895a074d89ef1bb0ac8def6c819bbe084879f6d44f506a5fa30bddff2249b5e0bb363206eb09b3e311037643ce8f17012513a2285e9f
 DIST ipython-9.8.0.tar.gz 4424940 BLAKE2B 
8b4d5673be8e4164a06afe15b6f277d94c0f7196c81c2a2a6195732d0d0f3c353ad9d78c5702ef93edbd1dd44f732332afcfdaa10a2377f2ec9f47318e41b14a
 SHA512 
1f7be5df369ff9c8a5905529286d59927775b47766f6a61ad97f062fb8a068aa9875610e5b313207bf26013ac4dc6d2b24d4d28c3b54586e1f08193d980a6eba

diff --git a/dev-python/ipython/files/ipython-9.5.0-assert.patch 
b/dev-python/ipython/files/ipython-9.5.0-assert.patch
deleted file mode 100644
index dc5f40207f97..000000000000
--- a/dev-python/ipython/files/ipython-9.5.0-assert.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 9e1f15f0b7e354daff8cb8ce9eba2b4f11d48c71 Mon Sep 17 00:00:00 2001
-From: Stephen Macke <[email protected]>
-Date: Sat, 30 Aug 2025 21:35:56 -0700
-Subject: [PATCH] deduperreload should patch NULL for empty closure rather than
- None
-
----
- .../deduperreload/deduperreload_patching.py   | 34 +++++++++----------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/IPython/extensions/deduperreload/deduperreload_patching.py 
b/IPython/extensions/deduperreload/deduperreload_patching.py
-index a8b53e68e78..36ee103a8e4 100644
---- a/IPython/extensions/deduperreload/deduperreload_patching.py
-+++ b/IPython/extensions/deduperreload/deduperreload_patching.py
-@@ -4,6 +4,7 @@
- from typing import Any
- 
- NOT_FOUND: object = object()
-+NULL: object = object()
- _MAX_FIELD_SEARCH_OFFSET = 50
- 
- if sys.maxsize > 2**32:
-@@ -55,12 +56,17 @@ def try_write_readonly_attr(
-         if offset == -1:
-             return
-         obj_addr = ctypes.c_void_p.from_buffer(ctypes.py_object(obj)).value
--        new_value_addr = 
ctypes.c_void_p.from_buffer(ctypes.py_object(new_value)).value
-+        if new_value is NULL:
-+            new_value_addr: int | None = 0
-+        else:
-+            new_value_addr = ctypes.c_void_p.from_buffer(
-+                ctypes.py_object(new_value)
-+            ).value
-         if obj_addr is None or new_value_addr is None:
-             return
-         if prev_value is not None:
-             ctypes.pythonapi.Py_DecRef(ctypes.py_object(prev_value))
--        if new_value is not None:
-+        if new_value not in (None, NULL):
-             ctypes.pythonapi.Py_IncRef(ctypes.py_object(new_value))
-         ctypes.cast(
-             obj_addr + WORD_N_BYTES * offset, ctypes.POINTER(WORD_TYPE)
-@@ -108,12 +114,10 @@ def try_patch_attr(
-     def patch_function(
-         cls, to_patch_to: Any, to_patch_from: Any, is_method: bool
-     ) -> None:
--        new_freevars = []
-         new_closure = []
-         for freevar, closure_val in zip(
-             to_patch_from.__code__.co_freevars or [], 
to_patch_from.__closure__ or []
-         ):
--            new_freevars.append(freevar)
-             if (
-                 callable(closure_val.cell_contents)
-                 and freevar in to_patch_to.__code__.co_freevars
-@@ -125,23 +129,19 @@ def patch_function(
-                 )
-             else:
-                 new_closure.append(closure_val)
--        code_with_new_freevars = to_patch_from.__code__.replace(
--            co_freevars=tuple(new_freevars)
--        )
-         # lambdas may complain if there is more than one freevar
--        cls.try_patch_attr(
--            to_patch_to, code_with_new_freevars, "__code__", new_is_value=True
--        )
-+        cls.try_patch_attr(to_patch_to, to_patch_from, "__code__")
-         offset = -1
-         if to_patch_to.__closure__ is None and to_patch_from.__closure__ is 
not None:
-             offset = cls.infer_field_offset(to_patch_from, "__closure__")
--        cls.try_patch_readonly_attr(
--            to_patch_to,
--            tuple(new_closure) or None,
--            "__closure__",
--            new_is_value=True,
--            offset=offset,
--        )
-+        if to_patch_to.__closure__ is not None or to_patch_from.__closure__ 
is not None:
-+            cls.try_patch_readonly_attr(
-+                to_patch_to,
-+                tuple(new_closure) or NULL,
-+                "__closure__",
-+                new_is_value=True,
-+                offset=offset,
-+            )
-         for attr in ("__defaults__", "__kwdefaults__", "__doc__", "__dict__"):
-             cls.try_patch_attr(to_patch_to, to_patch_from, attr)
-         if is_method:

diff --git a/dev-python/ipython/ipython-8.37.0.ebuild 
b/dev-python/ipython/ipython-8.37.0.ebuild
deleted file mode 100644
index 607eea398614..000000000000
--- a/dev-python/ipython/ipython-8.37.0.ebuild
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( pypy3_11 python3_{11..13} )
-PYTHON_REQ_USE='readline(+),sqlite,threads(+)'
-
-inherit distutils-r1 optfeature pypi virtualx
-
-DESCRIPTION="Advanced interactive shell for Python"
-HOMEPAGE="
-       https://ipython.org/
-       https://github.com/ipython/ipython/
-       https://pypi.org/project/ipython/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc 
x86 ~arm64-macos ~x64-macos"
-IUSE="examples notebook nbconvert qt5 +smp test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-       dev-python/decorator[${PYTHON_USEDEP}]
-       >=dev-python/jedi-0.16[${PYTHON_USEDEP}]
-       dev-python/matplotlib-inline[${PYTHON_USEDEP}]
-       >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
-       >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}]
-       <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
-       >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
-       dev-python/stack-data[${PYTHON_USEDEP}]
-       >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}]
-       $(python_gen_cond_dep '
-               dev-python/typing-extensions[${PYTHON_USEDEP}]
-       ' 3.11)
-"
-
-BDEPEND="
-       dev-python/setuptools[${PYTHON_USEDEP}]
-       test? (
-               app-text/dvipng[truetype]
-               >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
-               >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}]
-               dev-python/nbformat[${PYTHON_USEDEP}]
-               >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
-               dev-python/matplotlib-inline[${PYTHON_USEDEP}]
-               dev-python/packaging[${PYTHON_USEDEP}]
-               dev-python/pickleshare[${PYTHON_USEDEP}]
-               dev-python/pytest-asyncio[${PYTHON_USEDEP}]
-               dev-python/requests[${PYTHON_USEDEP}]
-               dev-python/testpath[${PYTHON_USEDEP}]
-       )
-"
-
-distutils_enable_tests pytest
-
-RDEPEND+="
-       nbconvert? (
-               dev-python/nbconvert[${PYTHON_USEDEP}]
-       )
-"
-PDEPEND="
-       $(python_gen_cond_dep '
-               qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
-       ' 'python*')
-       $(python_gen_cond_dep '
-               notebook? (
-                       dev-python/notebook[${PYTHON_USEDEP}]
-                       dev-python/ipywidgets[${PYTHON_USEDEP}]
-                       dev-python/widgetsnbextension[${PYTHON_USEDEP}]
-               )
-       ' 3.{11..12})
-       smp? (
-               >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
-               >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
-       )
-"
-
-python_prepare_all() {
-       # Rename the test directory to reduce sys.path pollution
-       # https://github.com/ipython/ipython/issues/12892
-       mv IPython/extensions/{,ipython_}tests || die
-
-       distutils-r1_python_prepare_all
-}
-
-src_test() {
-       virtx distutils-r1_src_test
-}
-
-python_test() {
-       local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
-       local EPYTEST_DESELECT=(
-               # TODO: looks to be a regression due to a newer dep
-               IPython/core/tests/test_oinspect.py::test_class_signature
-               IPython/core/tests/test_oinspect.py::test_render_signature_long
-               
IPython/terminal/tests/test_shortcuts.py::test_modify_shortcut_with_filters
-       )
-
-       case ${EPYTHON} in
-               pypy3*)
-                       EPYTEST_DESELECT+=(
-                               # 
https://github.com/ipython/ipython/issues/14244
-                               
IPython/lib/tests/test_display.py::TestAudioDataWithoutNumpy
-                       )
-                       ;;
-               python3.13)
-                       EPYTEST_DESELECT+=(
-                               # docstring mismatch?
-                               
IPython/core/tests/test_debugger.py::IPython.core.tests.test_debugger.test_ipdb_magics
-                       )
-                       ;;
-       esac
-
-       # nonfatal implied by virtx
-       local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
-       nonfatal epytest -p asyncio --asyncio-mode=auto ||
-               die "Tests failed on ${EPYTHON}"
-}
-
-python_install() {
-       distutils-r1_python_install
-
-       # Create ipythonX.Y symlinks.
-       # TODO:
-       # 1. do we want them for pypy? No.  pypy has no numpy
-       # 2. handle it in the eclass instead (use _python_ln_rel).
-       # With pypy not an option the dosym becomes unconditional
-       dosym ../lib/python-exec/${EPYTHON}/ipython \
-               /usr/bin/ipython${EPYTHON#python}
-}
-
-python_install_all() {
-       distutils-r1_python_install_all
-
-       if use examples; then
-               dodoc -r examples
-               docompress -x /usr/share/doc/${PF}/examples
-       fi
-}
-
-pkg_postinst() {
-       optfeature "code formatting" dev-python/black
-       optfeature "sympyprinting" dev-python/sympy
-       optfeature "cythonmagic" dev-python/cython
-       optfeature "%lprun magic command" dev-python/line-profiler
-       optfeature "%matplotlib magic command" dev-python/matplotlib-inline
-
-       if use nbconvert; then
-               if ! has_version virtual/pandoc ; then
-                       einfo "Node.js will be used to convert notebooks to 
other formats"
-                       einfo "like HTML. Support for that is still 
experimental. If you"
-                       einfo "encounter any problems, please use 
app-text/pandoc instead."
-               fi
-       fi
-}

Reply via email to