diff options
Diffstat (limited to 'dev-python/ipython')
-rw-r--r-- | dev-python/ipython/Manifest | 2 | ||||
-rw-r--r-- | dev-python/ipython/ipython-8.6.0.ebuild | 166 |
2 files changed, 168 insertions, 0 deletions
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest index 8e66b56c777e..031cdf1da715 100644 --- a/dev-python/ipython/Manifest +++ b/dev-python/ipython/Manifest @@ -1,4 +1,6 @@ AUX 2.1.0-substitute-files.patch 1017 BLAKE2B 70577eb950a18345804a2a4b750bd233dc6a0b6bbdb524dfc66e0f4a7c69b0eeb2d35efb9d1845d567a11d1afa7881068b4757e42b9baf24dc01ba3026608a38 SHA512 fc4c9e12267ac5f04a2e16ad27334a093638538b8149ff380099fcbeb674a276ab9eb624a508010e37f82c05d5f7ab527a80e386b3e7b61c123ecb8effd9d542 DIST ipython-8.5.0.tar.gz 5319096 BLAKE2B 6ab330ffe99611478bdcf1211a500c08edd4aff802a1121156c302cb8a49b9c5f2fa98012dbaf80996574789bdb98d87924492181e45f00f46f600789c1ae6e4 SHA512 9339507fbe229d83f4c41b79257a7b40890d9d0601692521a61dc777c040a6d22d131014d660ffc9ba79f7128f579082473642f47b86e59a038f79c6553c8186 +DIST ipython-8.6.0.tar.gz 5329155 BLAKE2B 2c2ed361af7f4a3884fe3d20fa92fb65c9eb0f020ca935e6a7edec7d28891b74433db56b55070ae07369f93d69e0f46a23fc470ba1c0b7ebf8d3d0f620464ab5 SHA512 54c9e354754b1086e5b87d4d76fa4fe5aa261b095d18210f6660fa9e0a3177db4c9b66d26da5e5d6880a40534477d8c6ea59615c4069327939bca41d49addb47 EBUILD ipython-8.5.0.ebuild 4759 BLAKE2B 807eb538c0e1b40fb6fe7d0aaace2fb7868ed8155678a7abb52373a4997c0fc252ad37fd49fe91ea3cdb5f902e2e1bc702be8fd0bb750b87be1e7f2a39944670 SHA512 172d8d42bba81ee560f88ef210df857b92b50b15e56606763a7d5300cdf7d11ec00264df34dc65c698186e6896d5a9fe769386ee7895c0ed3ea587298e5e8f35 +EBUILD ipython-8.6.0.ebuild 4806 BLAKE2B 7cae2113a06c8815bd433894877f270fe5693178713f8b768a6ff8568635f6e0b25b8ea43d438a1afea11ac01f47937cf4f69f42f9166facb8732261af5dfd73 SHA512 06b728dbebc3b30841b3879ededf453da58d653cda152ec5f93db0918c4a7379c74d90ea04bbb1c5fdac758e0e752164306233a7196864dd3f73021897368df2 MISC metadata.xml 2886 BLAKE2B 88c80f5eef5c89c8939e60c1944be4c63a5a318e55a3490b38bf864e7919debf8e3c3a32f1fa0a43766ceec6462fb20fd4d943194fe2c08208f0839783c20916 SHA512 f4ed7c1898930ade11983fb0666dc25dce7907f017145e1ad903651dcd95ead2734893d55b4548c4ae23425388485a86bffc9d885eae17d12ae1ac2c0058aac2 diff --git a/dev-python/ipython/ipython-8.6.0.ebuild b/dev-python/ipython/ipython-8.6.0.ebuild new file mode 100644 index 000000000000..64ba61c55a1d --- /dev/null +++ b/dev-python/ipython/ipython-8.6.0.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..11} ) +PYTHON_REQ_USE='readline,sqlite,threads(+)' + +inherit distutils-r1 optfeature virtualx + +DESCRIPTION="Advanced interactive shell for Python" +HOMEPAGE=" + https://ipython.org/ + https://github.com/ipython/ipython/ + https://pypi.org/project/ipython/ +" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc examples matplotlib 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[${PYTHON_USEDEP}] + dev-python/matplotlib-inline[${PYTHON_USEDEP}] + >=dev-python/pexpect-4.3[${PYTHON_USEDEP}] + dev-python/pickleshare[${PYTHON_USEDEP}] + >=dev-python/prompt_toolkit-2[${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}] +" + +BDEPEND=" + test? ( + app-text/dvipng[truetype] + >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}] + dev-python/matplotlib-inline[${PYTHON_USEDEP}] + dev-python/nbformat[${PYTHON_USEDEP}] + >=dev-python/numpy-1.20[${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=( + # Internet + IPython/core/display.py::IPython.core.display.Image.__init__ + # 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 + # TODO + IPython/extensions/ipython_tests/test_autoreload.py::TestAutoreload::test_smoketest_aimport + IPython/extensions/ipython_tests/test_autoreload.py::TestAutoreload::test_smoketest_autoreload + ) + [[ ${EPYTHON} == python3.10 ]] && EPYTEST_DESELECT+=( + # TODO + IPython/core/tests/test_completer.py::TestCompleter::test_all_completions_dups + IPython/core/tests/test_completer.py::TestCompleter::test_deduplicate_completions + ) + # 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 "%mprun magic command" dev-python/memory_profiler + + if use nbconvert; then + if ! has_version app-text/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 +} |