diff options
Diffstat (limited to 'dev-python/ipython')
| -rw-r--r-- | dev-python/ipython/Manifest | 2 | ||||
| -rw-r--r-- | dev-python/ipython/ipython-9.14.1.ebuild | 146 |
2 files changed, 148 insertions, 0 deletions
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest index c27d7ce7defb..e3b9bcd591dd 100644 --- a/dev-python/ipython/Manifest +++ b/dev-python/ipython/Manifest @@ -2,3 +2,5 @@ DIST ipython-9.13.0.tar.gz 4430549 BLAKE2B e57be94d752a7de861cfe8a86e65e9827894c DIST ipython-9.13.0.tar.gz.provenance 9426 BLAKE2B 89a5b4d09efc361b080dc78eaa1007c237036a3ba8101cfa812fc634c90f8cbe5ddc3cfa8e1018e6be209fc45203c6ee0ad1ec79257dbe0dcc296629b05050b3 SHA512 e72798ac68a3b731c65f36f53c62a0dc642458657c6fc0093b66a5d0a8f8fe1638d6cf47f0b3b3702501f28e6f4791a3799566c8efc224f6c11bfbb03ccfa700 DIST ipython-9.14.0.tar.gz 4432601 BLAKE2B 996998361fc0503d2ef7e6f8928917495f51ec5cef39807a2302c01dce5c6bcea64d2a5f890531561939429cdde2ae2d956de93d7f4ceed30a12d4caadfb4801 SHA512 2cad3ee542fc9a2bc29c5bd532c6fc448bfabe352078010335c87fcf98d16432cb2d5fb0d00b053b040eeba137ad0d2c04449dc7f50e7314a59067b0faa9d25a DIST ipython-9.14.0.tar.gz.provenance 9740 BLAKE2B 95418d7244f3c58491752779e9b9012a125004d359e8a1f6f18f89bf12ba6835104147ca7d8d14a02d8303783012b4b1f96e0cd44accb61d2cc0b9a0d5cf09ee SHA512 7d472a1014c1740dc221986bcce831e5632545bad635ed4047cf6225c24eb7b11b762282bea95dcd21391506e581f5f683f803f0abff001f316093843105a346 +DIST ipython-9.14.1.tar.gz 4433457 BLAKE2B ea140038e628767dc44fb1cbbab393ae14a3b06f13908957cd8f1790aee82225a31c3f5cc390d87697c00921d995045da6692af4c1beb4d505f9c2e75fc7d4b0 SHA512 1ffdd0ae5640e8f9c50a9f6f490394dfaf0aeb2ccfa0206923773057d45f57f8091ebbd7d33eec1a2a44ed0d7fe5946635556995de88ee19c1caa47e98235c91 +DIST ipython-9.14.1.tar.gz.provenance 9787 BLAKE2B 6b6ede8bfb37cee2d9af4d290439a89c40952b6a5a3d49efe6245f5ac01454d377c00823796661fdf248095561f3da81658c069bb3c6e8893954639713356840 SHA512 7d76ae2f9e7a680414d84c76f76e05589d0df5fbbf05f92b6d9d7428d4e377a2972e2ded9a2e23b0c3b25eaf5a829b2cafcec1e8c1bde215edeb4802d7e08258 diff --git a/dev-python/ipython/ipython-9.14.1.ebuild b/dev-python/ipython/ipython-9.14.1.ebuild new file mode 100644 index 000000000000..8d7c72a165d5 --- /dev/null +++ b/dev-python/ipython/ipython-9.14.1.ebuild @@ -0,0 +1,146 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYPI_VERIFY_REPO=https://github.com/ipython/ipython +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE='readline(+),sqlite,threads(+)' + +inherit distutils-r1 optfeature toolchain-funcs 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" +IUSE="examples gui notebook nbconvert +smp test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/decorator-5.1.0[${PYTHON_USEDEP}] + >=dev-python/ipython-pygments-lexers-1.0.0[${PYTHON_USEDEP}] + >=dev-python/jedi-0.18.2[${PYTHON_USEDEP}] + >=dev-python/matplotlib-inline-0.1.6[${PYTHON_USEDEP}] + >=dev-python/pexpect-4.7[${PYTHON_USEDEP}] + >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}] + <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}] + >=dev-python/psutil-7[${PYTHON_USEDEP}] + >=dev-python/pygments-2.14.0[${PYTHON_USEDEP}] + >=dev-python/stack-data-0.6.0[${PYTHON_USEDEP}] + >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}] +" + +BDEPEND=" + >=dev-python/setuptools-80[${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-2.0[${PYTHON_USEDEP}] + dev-python/matplotlib-inline[${PYTHON_USEDEP}] + >=dev-python/packaging-23.0.0[${PYTHON_USEDEP}] + dev-python/pickleshare[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + >=dev-python/testpath-0.2[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-asyncio ) +distutils_enable_tests pytest + +RDEPEND+=" + nbconvert? ( + dev-python/nbconvert[${PYTHON_USEDEP}] + ) +" +PDEPEND=" + $(python_gen_cond_dep ' + gui? ( 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.{12..14}) + 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=() + + if [[ $(tc-get-ptr-size) == 4 ]] ; then + EPYTEST_DESELECT+=( + # https://github.com/ipython/ipython/issues/15107 + IPython/extensions/ipython_tests/test_deduperreload.py::DecoratorPatchingSuite::test_function_decorator_from_other_module + IPython/extensions/ipython_tests/test_deduperreload.py::DecoratorPatchingSuite::test_function_decorators + IPython/extensions/tests/test_deduperreload.py::DecoratorPatchingSuite::test_method_decorator + ) + fi + + # nonfatal implied by virtx + nonfatal epytest || die "Tests failed on ${EPYTHON}" +} + +python_install() { + distutils-r1_python_install + + # Create ipythonX.Y symlinks. + # TODO: + # 1. do we want them for pypy? + # 2. handle it in the eclass instead (use _python_ln_rel). + # With pypy not an option the dosym becomes unconditional + # TODO2: figure out what TODO meant. + 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 +} |
