summaryrefslogtreecommitdiff
path: root/dev-python/ipython
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/ipython')
-rw-r--r--dev-python/ipython/Manifest4
-rw-r--r--dev-python/ipython/ipython-9.13.0.ebuild146
-rw-r--r--dev-python/ipython/ipython-9.14.0.ebuild146
-rw-r--r--dev-python/ipython/metadata.xml53
4 files changed, 349 insertions, 0 deletions
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest
new file mode 100644
index 000000000000..c27d7ce7defb
--- /dev/null
+++ b/dev-python/ipython/Manifest
@@ -0,0 +1,4 @@
+DIST ipython-9.13.0.tar.gz 4430549 BLAKE2B e57be94d752a7de861cfe8a86e65e9827894c11f4e01e857973868145862d95ecdebc3f59a40b01fc40bbe738f6a93c364f429fec873833246e930870ab2300c SHA512 64bdeded45d1113180301e6122bde25a957755ef2fc7b8d9a9cd3ae390f7a92da7c77be379fb895647d0faade4832f67ea3bd3d7dbec7580f0b02796696490e2
+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
diff --git a/dev-python/ipython/ipython-9.13.0.ebuild b/dev-python/ipython/ipython-9.13.0.ebuild
new file mode 100644
index 000000000000..3b2f3a485fdf
--- /dev/null
+++ b/dev-python/ipython/ipython-9.13.0.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
+}
diff --git a/dev-python/ipython/ipython-9.14.0.ebuild b/dev-python/ipython/ipython-9.14.0.ebuild
new file mode 100644
index 000000000000..8d7c72a165d5
--- /dev/null
+++ b/dev-python/ipython/ipython-9.14.0.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
+}
diff --git a/dev-python/ipython/metadata.xml b/dev-python/ipython/metadata.xml
new file mode 100644
index 000000000000..fc4a56363789
--- /dev/null
+++ b/dev-python/ipython/metadata.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <longdescription lang="en">
+ IPython provides a replacement for the interactive Python interpreter with
+ extra functionality. Main features:
+ * Comprehensive object introspection.
+ * Input history, persistent across sessions.
+ * Caching of output results during a session with automatically generated
+ references.
+ * Readline based name completion.
+ * Extensible system of 'magic' commands for controlling the environment and
+ performing many tasks related either to IPython or the operating system.
+ * Configuration system with easy switching between different setups (simpler
+ than changing $PYTHONSTARTUP environment variables every time).
+ * Session logging and reloading.
+ * Extensible syntax processing for special purpose situations.
+ * Access to the system shell with user-extensible alias system.
+ * Easily embeddable in other Python programs.
+ * Integrated access to the pdb debugger and the Python profiler.
+ </longdescription>
+ <longdescription lang="ja">
+対話的に利用する場合にPythonインタープリタから、より機能が豊富なIPythonへ置き換える事ができます。
+
+主機能:
+* 内包的オブジェクトの分析。
+* 入力ヒストリーはセッションを越えて記憶し続けます。
+* 出力は自動作成されるリファレンスのセッション間はキャッシュします。
+* Readlineを利用した名前補完。
+* 環境管理とIPythonまたはOSのどちらかに関係するタスク実行のためのmagic
+ コマンドを拡張可能なシステム。
+* 異なるセットアップを簡単に交換できるコンフィグレーション・システム。
+ (毎回起動時に、$PYTHONSTARTUP環境変数を指定するよりも簡単です。)
+* セッション・ロギングとセッション・リローディング。
+* 特別な状況時のための拡張可能な構文解析。
+* ユーザー定義できるエイリアス・システムでシステム・シェルにアクセス。
+* 他のPython言語プログラムを組み込むのが簡単。
+* pdbデバッガとprofilerへの統合アクセス。
+ </longdescription>
+ <stabilize-allarches/>
+ <use>
+ <flag name="notebook">Install requirements for the web notebook based on <pkg>dev-python/tornado</pkg></flag>
+ <flag name="nbconvert">Enable support for converting notebooks to various formats using <pkg>app-text/pandoc</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">ipython</remote-id>
+ <remote-id type="github">ipython/ipython</remote-id>
+ </upstream>
+</pkgmetadata>