From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/ipython/
Date: Tue, 31 Oct 2023 00:06:35 +0000 (UTC) [thread overview]
Message-ID: <1698710741.8d71174864920dc54024aa91d0a70532725e83bd.sam@gentoo> (raw)
commit: 8d71174864920dc54024aa91d0a70532725e83bd
Author: Eli Schwartz <eschwartz93 <AT> gmail <DOT> com>
AuthorDate: Fri Oct 13 04:00:47 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Oct 31 00:05:41 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d711748
dev-python/ipython: remove runtime dependency on matplotlib
ipython does not use or rely on matplotlib at runtime in any way. It
does contain imports for it, but these imports are only triggered by the
act of typing `%matplotlib` into the interactive shell, which is an
ipython "magic" that runs matplotlib with some enhanced context.
People who do not use matplotlib don't need to have its installation
forced, and people who do use matplotlib will have it installed before
interactively using it, much as they do when interactively using it with
`import matplotlib`.
It is intentionally not listed as an install requirement in setup.cfg,
although the matplotlib-inline module *is* listed as an install
requirement. (matplotlib-inline contains the actual implementation of
the magic, and is very lightweight, so it is not particularly
advantageous to add a USE flag for it. Users of matplotlib won't
automatically have the -inline module installed.)
Per the way other magic commands work, the correct place to notify users
about the availability of these is using optfeature.
Signed-off-by: Eli Schwartz <eschwartz93 <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-python/ipython/ipython-8.14.0-r1.ebuild | 160 ++++++++++++++++++++++++++++
dev-python/ipython/ipython-8.15.0-r1.ebuild | 160 ++++++++++++++++++++++++++++
dev-python/ipython/ipython-8.16.1-r1.ebuild | 160 ++++++++++++++++++++++++++++
dev-python/ipython/ipython-8.17.1-r1.ebuild | 159 +++++++++++++++++++++++++++
4 files changed, 639 insertions(+)
diff --git a/dev-python/ipython/ipython-8.14.0-r1.ebuild b/dev-python/ipython/ipython-8.14.0-r1.ebuild
new file mode 100644
index 000000000000..901a9eba1d5f
--- /dev/null
+++ b/dev-python/ipython/ipython-8.14.0-r1.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..11} )
+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="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="doc examples notebook nbconvert qt5 +smp test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/backcall[${PYTHON_USEDEP}]
+ 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/pickleshare[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.38[${PYTHON_USEDEP}]
+ <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/stack-data[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/exceptiongroup[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+BDEPEND="
+ test? (
+ app-text/dvipng[truetype]
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/matplotlib-inline[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-2[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+RDEPEND+="
+ nbconvert? (
+ dev-python/nbconvert[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ notebook? (
+ dev-python/notebook[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ dev-python/widgetsnbextension[${PYTHON_USEDEP}]
+ )
+ qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
+ smp? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=( "${FILESDIR}"/2.1.0-substitute-files.patch )
+
+python_prepare_all() {
+ # Remove out of date insource files
+ #rm IPython/extensions/cythonmagic.py || die
+ #rm IPython/extensions/rmagic.py || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ fi
+
+ # 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
+}
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html_noapi
+ HTML_DOCS=( docs/build/html/. )
+ fi
+}
+
+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
+ )
+ # nonfatal implied by virtx
+ nonfatal epytest || die "Tests failed with ${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
+ optfeature "%mprun magic command" dev-python/memory-profiler
+
+ 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-8.15.0-r1.ebuild b/dev-python/ipython/ipython-8.15.0-r1.ebuild
new file mode 100644
index 000000000000..901a9eba1d5f
--- /dev/null
+++ b/dev-python/ipython/ipython-8.15.0-r1.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..11} )
+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="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="doc examples notebook nbconvert qt5 +smp test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/backcall[${PYTHON_USEDEP}]
+ 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/pickleshare[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.38[${PYTHON_USEDEP}]
+ <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/stack-data[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/exceptiongroup[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+BDEPEND="
+ test? (
+ app-text/dvipng[truetype]
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/matplotlib-inline[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-2[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+RDEPEND+="
+ nbconvert? (
+ dev-python/nbconvert[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ notebook? (
+ dev-python/notebook[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ dev-python/widgetsnbextension[${PYTHON_USEDEP}]
+ )
+ qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
+ smp? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=( "${FILESDIR}"/2.1.0-substitute-files.patch )
+
+python_prepare_all() {
+ # Remove out of date insource files
+ #rm IPython/extensions/cythonmagic.py || die
+ #rm IPython/extensions/rmagic.py || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ fi
+
+ # 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
+}
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html_noapi
+ HTML_DOCS=( docs/build/html/. )
+ fi
+}
+
+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
+ )
+ # nonfatal implied by virtx
+ nonfatal epytest || die "Tests failed with ${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
+ optfeature "%mprun magic command" dev-python/memory-profiler
+
+ 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-8.16.1-r1.ebuild b/dev-python/ipython/ipython-8.16.1-r1.ebuild
new file mode 100644
index 000000000000..901a9eba1d5f
--- /dev/null
+++ b/dev-python/ipython/ipython-8.16.1-r1.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..11} )
+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="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="doc examples notebook nbconvert qt5 +smp test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/backcall[${PYTHON_USEDEP}]
+ 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/pickleshare[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.38[${PYTHON_USEDEP}]
+ <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/stack-data[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/exceptiongroup[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+BDEPEND="
+ test? (
+ app-text/dvipng[truetype]
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/matplotlib-inline[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-2[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+RDEPEND+="
+ nbconvert? (
+ dev-python/nbconvert[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ notebook? (
+ dev-python/notebook[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ dev-python/widgetsnbextension[${PYTHON_USEDEP}]
+ )
+ qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
+ smp? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=( "${FILESDIR}"/2.1.0-substitute-files.patch )
+
+python_prepare_all() {
+ # Remove out of date insource files
+ #rm IPython/extensions/cythonmagic.py || die
+ #rm IPython/extensions/rmagic.py || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ fi
+
+ # 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
+}
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html_noapi
+ HTML_DOCS=( docs/build/html/. )
+ fi
+}
+
+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
+ )
+ # nonfatal implied by virtx
+ nonfatal epytest || die "Tests failed with ${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
+ optfeature "%mprun magic command" dev-python/memory-profiler
+
+ 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-8.17.1-r1.ebuild b/dev-python/ipython/ipython-8.17.1-r1.ebuild
new file mode 100644
index 000000000000..08d9459f3351
--- /dev/null
+++ b/dev-python/ipython/ipython-8.17.1-r1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+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="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="doc 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.38[${PYTHON_USEDEP}]
+ <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/stack-data[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/exceptiongroup[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+BDEPEND="
+ test? (
+ app-text/dvipng[truetype]
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/matplotlib-inline[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.22[${PYTHON_USEDEP}]
+ dev-python/pickleshare[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-2[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+RDEPEND+="
+ nbconvert? (
+ dev-python/nbconvert[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ notebook? (
+ dev-python/notebook[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ dev-python/widgetsnbextension[${PYTHON_USEDEP}]
+ )
+ qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
+ smp? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=( "${FILESDIR}"/2.1.0-substitute-files.patch )
+
+python_prepare_all() {
+ # Remove out of date insource files
+ #rm IPython/extensions/cythonmagic.py || die
+ #rm IPython/extensions/rmagic.py || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ fi
+
+ # 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
+}
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html_noapi
+ HTML_DOCS=( docs/build/html/. )
+ fi
+}
+
+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
+ )
+ # nonfatal implied by virtx
+ nonfatal epytest || die "Tests failed with ${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
+ optfeature "%mprun magic command" dev-python/memory-profiler
+
+ 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
+}
next reply other threads:[~2023-10-31 0:06 UTC|newest]
Thread overview: 301+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-31 0:06 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-03-09 3:35 [gentoo-commits] repo/gentoo:master commit in: dev-python/ipython/ Michał Górny
2025-03-09 3:35 Michał Górny
2025-03-07 12:45 Michał Górny
2025-03-04 6:48 Michał Górny
2025-03-03 17:40 WANG Xuerui
2025-03-02 20:57 Jakov Smolić
2025-02-28 18:53 Michał Górny
2025-02-28 18:52 Michał Górny
2025-02-28 18:52 Michał Górny
2025-02-27 5:50 Michał Górny
2025-02-25 7:51 Michał Górny
2025-02-15 9:53 Michał Górny
2025-02-15 8:33 Arthur Zamarin
2025-02-01 6:06 Michał Górny
2025-01-04 12:13 Sam James
2024-12-21 8:11 Michał Górny
2024-12-14 13:28 Michał Górny
2024-12-14 11:17 Sam James
2024-11-09 10:02 Michał Górny
2024-11-09 9:50 Sam James
2024-10-25 14:15 Michał Górny
2024-10-19 8:42 Michał Górny
2024-10-19 8:14 Arthur Zamarin
2024-10-03 3:31 Michał Górny
2024-09-28 12:59 Michał Górny
2024-09-28 12:40 Sam James
2024-08-31 6:55 Michał Górny
2024-07-27 7:35 Arthur Zamarin
2024-07-12 10:36 Michał Górny
2024-07-11 6:22 Arthur Zamarin
2024-07-10 6:19 Sam James
2024-06-29 2:57 Michał Górny
2024-06-21 4:23 Arthur Zamarin
2024-06-15 19:49 Sam James
2024-06-15 10:54 Arthur Zamarin
2024-06-15 8:50 Arthur Zamarin
2024-06-13 17:57 Sam James
2024-06-12 14:30 Sam James
2024-06-12 14:30 Sam James
2024-05-31 15:21 Michał Górny
2024-05-11 8:13 Michał Górny
2024-05-11 7:41 Arthur Zamarin
2024-05-01 17:44 Michał Górny
2024-05-01 16:22 Sam James
2024-04-26 18:55 Michał Górny
2024-04-16 14:53 Michał Górny
2024-03-31 19:40 Arthur Zamarin
2024-03-22 4:38 Michał Górny
2024-03-21 18:13 Arthur Zamarin
2024-03-04 14:52 Michał Górny
2024-02-24 8:50 Michał Górny
2024-02-23 3:40 Michał Górny
2024-02-18 3:28 Michał Górny
2024-02-17 22:26 Sam James
2024-02-01 4:47 Michał Górny
2024-01-24 19:05 Michał Górny
2024-01-24 18:59 Michał Górny
2024-01-09 6:22 Michał Górny
2024-01-06 9:54 Michał Górny
2023-12-23 5:12 Michał Górny
2023-12-15 10:49 Michał Górny
2023-12-15 10:32 Arthur Zamarin
2023-11-28 18:42 Michał Górny
2023-11-24 13:42 Michał Górny
2023-11-20 15:06 Michał Górny
2023-11-16 19:43 Michał Górny
2023-11-10 5:47 Viorel Munteanu
2023-11-02 5:37 Michał Górny
2023-11-01 20:37 Arthur Zamarin
2023-10-31 19:12 Michał Górny
2023-10-31 0:06 Sam James
2023-10-31 0:06 Sam James
2023-10-30 18:10 Michał Górny
2023-10-02 18:35 Arthur Zamarin
2023-09-29 19:29 Arthur Zamarin
2023-09-02 3:22 Michał Górny
2023-07-19 11:10 Michał Górny
2023-07-10 1:47 Michał Górny
2023-07-09 16:51 Arthur Zamarin
2023-06-08 22:35 Sam James
2023-06-03 6:48 Michał Górny
2023-05-29 4:37 Michał Górny
2023-05-28 20:06 Arthur Zamarin
2023-05-05 13:53 Michał Górny
2023-05-05 5:21 Michał Górny
2023-04-30 3:55 Michał Górny
2023-04-28 14:13 Michał Górny
2023-04-05 9:14 Michał Górny
2023-04-05 8:26 Jakov Smolić
2023-03-31 4:32 Michał Górny
2023-03-14 5:02 Michał Górny
2023-03-13 19:34 Arthur Zamarin
2023-03-01 6:16 Michał Górny
2023-02-28 19:00 Michał Górny
2023-02-28 18:20 Arthur Zamarin
2023-02-28 18:16 Arthur Zamarin
2023-02-11 7:27 Michał Górny
2023-02-04 17:21 Michał Górny
2023-02-04 15:37 Arthur Zamarin
2023-01-28 7:39 Michał Górny
2023-01-04 14:15 Michał Górny
2022-12-10 8:54 Michał Górny
2022-12-10 8:50 Arthur Zamarin
2022-11-29 6:59 Michał Górny
2022-10-31 15:49 Michał Górny
2022-10-27 9:48 Andrew Ammerlaan
2022-10-10 20:22 Michał Górny
2022-10-10 19:09 Arthur Zamarin
2022-09-09 7:23 Arthur Zamarin
2022-07-15 7:21 Michał Górny
2022-07-14 20:04 Arthur Zamarin
2022-06-14 8:13 Michał Górny
2022-06-14 5:54 Jakov Smolić
2022-06-10 12:44 Michał Górny
2022-05-29 7:09 Michał Górny
2022-05-29 7:09 Michał Górny
2022-05-08 4:08 Sam James
2022-05-07 20:04 Michał Górny
2022-05-07 17:52 Arthur Zamarin
2022-05-07 17:52 Arthur Zamarin
2022-05-07 17:52 Arthur Zamarin
2022-05-07 17:52 Arthur Zamarin
2022-05-07 17:52 Arthur Zamarin
2022-05-06 20:03 Arthur Zamarin
2022-05-05 5:29 Arthur Zamarin
2022-05-05 2:56 Sam James
2022-05-02 19:03 Sam James
2022-04-30 7:35 Michał Górny
2022-03-28 10:14 Michał Górny
2022-03-20 18:11 Arthur Zamarin
2022-03-19 18:49 Arthur Zamarin
2022-03-19 18:49 Arthur Zamarin
2022-03-19 18:47 Arthur Zamarin
2022-03-18 9:16 Arthur Zamarin
2022-03-18 9:00 Arthur Zamarin
2022-03-15 18:16 Jakov Smolić
2022-03-11 11:01 Sam James
2022-02-25 23:41 Michał Górny
2022-02-05 6:37 Sam James
2022-01-31 0:26 Michał Górny
2022-01-29 15:50 Sam James
2022-01-29 7:13 Sam James
2022-01-20 13:56 Michał Górny
2022-01-20 8:41 Arthur Zamarin
2022-01-19 22:59 Michał Górny
2022-01-19 22:59 Michał Górny
2022-01-15 11:41 Yixun Lan
2022-01-15 9:55 Arthur Zamarin
2022-01-15 8:15 Arthur Zamarin
2022-01-14 8:08 Michał Górny
2022-01-13 10:13 Sam James
2022-01-13 9:26 Sam James
2022-01-06 19:55 Arthur Zamarin
2022-01-03 18:17 Arthur Zamarin
2021-12-15 16:57 Michał Górny
2021-12-15 16:55 Arthur Zamarin
2021-12-02 20:12 Sam James
2021-11-27 7:19 Michał Górny
2021-11-18 8:10 Sam James
2021-11-15 6:08 Sam James
2021-10-31 20:29 Michał Górny
2021-10-31 17:55 Sam James
2021-10-30 6:43 Michał Górny
2021-09-26 17:52 Sam James
2021-09-25 7:45 Michał Górny
2021-09-14 5:17 Sam James
2021-09-08 17:27 Michał Górny
2021-09-05 6:35 Michał Górny
2021-09-05 6:02 Sam James
2021-08-10 5:00 Sam James
2021-08-01 21:12 Michał Górny
2021-07-26 0:43 Sam James
2021-07-25 1:04 Sam James
2021-07-12 22:53 Michał Górny
2021-07-12 21:50 Sam James
2021-07-11 10:14 Georgy Yakovlev
2021-07-01 17:53 Michał Górny
2021-07-01 14:45 Michał Górny
2021-06-25 22:19 Michał Górny
2021-06-20 1:45 Sam James
2021-06-17 7:26 Michał Górny
2021-06-17 6:40 Michał Górny
2021-06-07 15:41 Michał Górny
2021-06-07 13:18 Agostino Sarubbo
2021-06-06 13:03 Sam James
2021-06-06 13:01 Sam James
2021-06-05 20:35 Sam James
2021-06-02 23:14 Michał Górny
2021-05-29 8:06 Michał Górny
2021-05-19 10:47 Michał Górny
2021-05-19 9:47 Agostino Sarubbo
2021-05-16 0:13 Sam James
2021-05-15 19:44 Sam James
2021-05-15 19:32 Sam James
2021-05-15 19:25 Sam James
2021-05-06 8:21 Michał Górny
2021-05-01 7:45 Michał Górny
2021-04-07 8:06 Michał Górny
2021-04-06 16:24 Michał Górny
2021-03-30 22:27 Michał Górny
2021-03-30 22:02 Sam James
2021-03-27 7:49 Michał Górny
2021-03-07 22:39 Michał Górny
2021-03-07 19:46 Sam James
2021-02-27 8:09 Michał Górny
2021-02-06 21:29 Sam James
2021-02-02 8:39 Michał Górny
2021-01-05 23:26 Michał Górny
2021-01-05 23:26 Michał Górny
2021-01-02 12:57 Sebastian Pipping
2020-12-07 11:39 Michał Górny
2020-12-07 5:27 Sam James
2020-10-31 8:33 Michał Górny
2020-10-01 12:22 Michał Górny
2020-10-01 11:13 Sam James
2020-09-05 15:25 Sam James
2020-09-05 7:20 Michał Górny
2020-09-05 3:08 Sam James
2020-08-30 3:36 Michał Górny
2020-08-29 6:13 Michał Górny
2020-08-03 3:11 Sam James
2020-08-01 10:09 Michał Górny
2020-07-31 0:50 Sam James
2020-07-07 20:01 Michał Górny
2020-07-07 20:01 Michał Górny
2020-06-28 2:35 Michał Górny
2020-06-10 7:31 Michał Górny
2020-06-09 7:09 Michał Górny
2020-06-08 16:55 Michał Górny
2020-06-08 16:55 Michał Górny
2020-03-27 16:30 Michał Górny
2020-03-26 10:24 Agostino Sarubbo
2020-03-26 10:21 Agostino Sarubbo
2020-03-26 10:17 Agostino Sarubbo
2020-03-17 7:23 Michał Górny
2020-02-14 12:47 Michał Górny
2019-05-04 22:58 Virgil Dupras
2019-05-01 17:08 Virgil Dupras
2019-04-29 19:07 Virgil Dupras
2019-04-29 18:56 Virgil Dupras
2019-02-10 3:08 Mike Gilbert
2018-11-20 13:47 Louis Sautier
2018-11-11 12:29 Louis Sautier
2018-11-06 20:05 Louis Sautier
2018-08-20 21:51 Michał Górny
2018-07-12 13:27 Michał Górny
2018-05-16 12:28 Agostino Sarubbo
2018-05-10 14:23 Andreas Sturmlechner
2018-04-22 1:35 Thomas Deutschmann
2018-03-21 20:24 Markus Meier
2018-03-21 20:24 Markus Meier
2018-03-12 0:51 Matt Turner
2018-03-04 22:40 Sergei Trofimovich
2018-02-25 21:52 Sergei Trofimovich
2018-01-04 21:50 Michał Górny
2017-11-23 23:11 Andreas Sturmlechner
2017-09-04 15:05 Michał Górny
2017-08-23 16:07 Michał Górny
2017-08-19 22:39 Sebastien Fabbro
2017-08-15 17:28 Sebastien Fabbro
2017-07-28 21:56 Sebastien Fabbro
2017-07-13 19:16 Sebastien Fabbro
2017-07-12 19:29 Sebastien Fabbro
2017-03-12 12:31 Zac Medico
2017-03-04 15:19 David Seifert
2017-03-01 18:11 Michael Weber
2017-03-01 13:05 Michael Weber
2017-02-14 21:20 Patrice Clement
2017-02-14 21:20 Patrice Clement
2017-02-06 8:09 David Seifert
2017-02-02 18:43 David Seifert
2016-08-25 22:20 Mike Gilbert
2016-08-24 8:37 David Seifert
2016-08-06 16:51 Michał Górny
2016-06-06 18:51 Patrick McLean
2016-06-04 8:24 David Seifert
2016-06-04 8:24 David Seifert
2016-04-02 20:08 Andrey Grozin
2016-04-02 8:24 David Seifert
2016-03-02 20:44 Justin Lecher
2016-02-28 7:25 Matt Thode
2016-02-04 12:25 Justin Lecher
2016-02-03 9:42 Justin Lecher
2016-01-20 15:36 Justin Lecher
2016-01-14 9:53 Justin Lecher
2015-11-28 17:33 Justin Lecher
2015-11-28 17:33 Justin Lecher
2015-11-28 17:33 Justin Lecher
2015-11-17 15:56 Justin Lecher
2015-10-21 13:41 Justin Lecher
2015-10-10 8:57 Markus Meier
2015-09-20 8:39 Jeroen Roovers
2015-09-18 7:43 Agostino Sarubbo
2015-09-18 7:43 Agostino Sarubbo
2015-09-11 3:23 Mike Frysinger
2015-09-02 8:40 Justin Lecher
2015-08-26 7:28 Agostino Sarubbo
2015-08-25 7:31 Agostino Sarubbo
2015-08-25 7:30 Agostino Sarubbo
2015-08-15 9:22 Jeroen Roovers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1698710741.8d71174864920dc54024aa91d0a70532725e83bd.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox