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 -}
