summaryrefslogtreecommitdiff
path: root/dev-python/notebook
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-python/notebook
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'dev-python/notebook')
-rw-r--r--dev-python/notebook/Manifest4
-rw-r--r--dev-python/notebook/files/notebook-5.0.0-example-execution.patch27
-rw-r--r--dev-python/notebook/files/notebook-5.0.0-setupbase.py.patch43
-rw-r--r--dev-python/notebook/files/notebook-5.2.1-setupbase.py.patch44
-rw-r--r--dev-python/notebook/files/notebook-5.7.0-no-mathjax.patch44
-rw-r--r--dev-python/notebook/files/notebook-6.0.3-py39.patch73
-rw-r--r--dev-python/notebook/metadata.xml16
-rw-r--r--dev-python/notebook/notebook-5.0.0.ebuild93
-rw-r--r--dev-python/notebook/notebook-5.2.1.ebuild103
-rw-r--r--dev-python/notebook/notebook-5.7.8.ebuild113
-rw-r--r--dev-python/notebook/notebook-6.0.3.ebuild84
11 files changed, 644 insertions, 0 deletions
diff --git a/dev-python/notebook/Manifest b/dev-python/notebook/Manifest
new file mode 100644
index 000000000000..a1a17fd3222c
--- /dev/null
+++ b/dev-python/notebook/Manifest
@@ -0,0 +1,4 @@
+DIST notebook-5.0.0.tar.gz 11481080 BLAKE2B 3cc483d338ca22c6b4d7199100875e9425f90e1a7059c016cec07500f0558c437db5f7e367a5c4441520deb68fa891be31c07cd93e858c872a1f12d893530479 SHA512 fbee29cc554f36e94b1fe9804187a50581e840cfb5884bcdf2fef82ad9ae3ae0e2082ea0056f815bfa2a1c2f203679169155e61e53253aa2e9004a43ff7fbcae
+DIST notebook-5.2.1.tar.gz 12458130 BLAKE2B f10a91fd79064fb09889c4ee30a84a0b34321d3a89f950609df9a90106ed4af75268cc1b087d0229882575d548b7b2b78632aa97452f89fc67910586911fc467 SHA512 defdb08e37dcec9fe799d0b03dc8dc2339f37c9417e4b138ba83b98433dd77f0dea3d83e07368e67f18155af1a67bbabea21ccd061d8a926b6b084fd25960576
+DIST notebook-5.7.8.tar.gz 13371684 BLAKE2B 077a94ec7085ae7325a972efb58f8d7eee5a541186522402084dfa55e335163fee30e68476265e9825c3623408989b1a0782ff6a5af71af4d8ea5e6e308c3a45 SHA512 1cccb23ce6810df85b3b600c0e2e5d6599be5551ea5243c7b1a9c73ed45c34dea8b16b0fbb3624aefb9eda848bce2fdcea1f3add8df3f00a90c13a9b01ea3f07
+DIST notebook-6.0.3.tar.gz 14048151 BLAKE2B ad4e433accc90acc13efc8005146dd8bcf2e645c104473f0e71d8d9fab80d7e128eb4e070b8aa04aee77e0d6115499e61beb841d94cf66b0e098dc50d3916cbd SHA512 fb56d0e10da3f8673e9578cdf04759dc3247547af6be4f479e9b183f3c5bd0a891fbfede187e0f5aca5c6ffdb9cae6ada23fe6dd159aca2d9cdf967f1f150922
diff --git a/dev-python/notebook/files/notebook-5.0.0-example-execution.patch b/dev-python/notebook/files/notebook-5.0.0-example-execution.patch
new file mode 100644
index 000000000000..4516cadf11f6
--- /dev/null
+++ b/dev-python/notebook/files/notebook-5.0.0-example-execution.patch
@@ -0,0 +1,27 @@
+commit db90e16d17acc778efdfff6dca69767b47b60cbd
+Author: Benda Xu <heroxbd@gentoo.org>
+Date: Sat Aug 19 17:31:38 2017 +0900
+
+ d/s/examples/N/Importing Notebooks.ipynb: disable execution.
+
+ This notebook example includes writing to the directory of another
+ module, usually resulting in a doc build failure. Therefore we
+ disable its execution by nbsphinx.
+
+ Closes: #2372
+ See-Also: https://bugs.gentoo.org/show_bug.cgi?id=626860
+
+diff --git a/docs/source/examples/Notebook/Importing Notebooks.ipynb b/docs/source/examples/Notebook/Importing Notebooks.ipynb
+index ee42ad526..d6db5395e 100644
+--- a/docs/source/examples/Notebook/Importing Notebooks.ipynb
++++ b/docs/source/examples/Notebook/Importing Notebooks.ipynb
+@@ -511,6 +511,9 @@
+ ],
+ "metadata": {
+ "gist_id": "6011986",
++ "nbsphinx": {
++ "execute": "never"
++ },
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
diff --git a/dev-python/notebook/files/notebook-5.0.0-setupbase.py.patch b/dev-python/notebook/files/notebook-5.0.0-setupbase.py.patch
new file mode 100644
index 000000000000..4dc55d937cae
--- /dev/null
+++ b/dev-python/notebook/files/notebook-5.0.0-setupbase.py.patch
@@ -0,0 +1,43 @@
+Disable bundled mathjax.
+
+Patch by Marius Brehler
+--- a/setupbase.py
++++ b/setupbase.py
+@@ -165,37 +165,6 @@ def find_package_data():
+ if f.endswith(('.js', '.css')):
+ static_data.append(pjoin(parent, f))
+
+- # Trim mathjax
+- mj = lambda *path: pjoin(components, 'MathJax', *path)
+- static_data.extend([
+- mj('MathJax.js'),
+- mj('config', 'TeX-AMS-MML_HTMLorMML-full.js'),
+- mj('config', 'Safe.js'),
+- ])
+-
+- trees = []
+- mj_out = mj('jax', 'output')
+-
+- if os.path.exists(mj_out):
+- for output in os.listdir(mj_out):
+- path = pjoin(mj_out, output)
+- static_data.append(pjoin(path, '*.js'))
+- autoload = pjoin(path, 'autoload')
+- if os.path.isdir(autoload):
+- trees.append(autoload)
+-
+- for tree in trees + [
+- mj('localization'), # limit to en?
+- mj('fonts', 'HTML-CSS', 'STIX-Web', 'woff'),
+- mj('extensions'),
+- mj('jax', 'input', 'TeX'),
+- mj('jax', 'output', 'HTML-CSS', 'fonts', 'STIX-Web'),
+- mj('jax', 'output', 'SVG', 'fonts', 'STIX-Web'),
+- ]:
+- for parent, dirs, files in os.walk(tree):
+- for f in files:
+- static_data.append(pjoin(parent, f))
+-
+ os.chdir(os.path.join('tests',))
+ js_tests = glob('*.js') + glob('*/*.js')
+
diff --git a/dev-python/notebook/files/notebook-5.2.1-setupbase.py.patch b/dev-python/notebook/files/notebook-5.2.1-setupbase.py.patch
new file mode 100644
index 000000000000..97be84cb364a
--- /dev/null
+++ b/dev-python/notebook/files/notebook-5.2.1-setupbase.py.patch
@@ -0,0 +1,44 @@
+Disable bundled mathjax.
+
+Patch by Marius Brehler.
+--- a/setupbase.py
++++ b/setupbase.py
+@@ -168,38 +168,6 @@ def find_package_data():
+ if f.endswith(('.js', '.css')):
+ static_data.append(pjoin(parent, f))
+
+- # Trim mathjax
+- mj = lambda *path: pjoin(components, 'MathJax', *path)
+- static_data.extend([
+- mj('MathJax.js'),
+- mj('config', 'TeX-AMS-MML_HTMLorMML-full.js'),
+- mj('config', 'Safe.js'),
+- ])
+-
+- trees = []
+- mj_out = mj('jax', 'output')
+-
+- if os.path.exists(mj_out):
+- for output in os.listdir(mj_out):
+- path = pjoin(mj_out, output)
+- static_data.append(pjoin(path, '*.js'))
+- autoload = pjoin(path, 'autoload')
+- if os.path.isdir(autoload):
+- trees.append(autoload)
+-
+- for tree in trees + [
+- mj('localization'), # limit to en?
+- mj('fonts', 'HTML-CSS', 'STIX-Web', 'woff'),
+- mj('extensions'),
+- mj('jax', 'input', 'TeX'),
+- mj('jax', 'output', 'HTML-CSS', 'fonts', 'STIX-Web'),
+- mj('jax', 'output', 'SVG', 'fonts', 'STIX-Web'),
+- mj('jax', 'element', 'mml'),
+- ]:
+- for parent, dirs, files in os.walk(tree):
+- for f in files:
+- static_data.append(pjoin(parent, f))
+-
+ os.chdir(os.path.join('tests',))
+ js_tests = glob('*.js') + glob('*/*.js')
+
diff --git a/dev-python/notebook/files/notebook-5.7.0-no-mathjax.patch b/dev-python/notebook/files/notebook-5.7.0-no-mathjax.patch
new file mode 100644
index 000000000000..f9ce5c3a9e39
--- /dev/null
+++ b/dev-python/notebook/files/notebook-5.7.0-no-mathjax.patch
@@ -0,0 +1,44 @@
+Disable bundled mathjax.
+
+Patch by Marius Brehler.
+--- notebook-5.7.0.orig/setupbase.py
++++ notebook-5.7.0/setupbase.py
+@@ -169,38 +169,6 @@ def find_package_data():
+ if f.endswith(('.js', '.css')):
+ static_data.append(pjoin(parent, f))
+
+- # Trim mathjax
+- mj = lambda *path: pjoin(components, 'MathJax', *path)
+- static_data.extend([
+- mj('MathJax.js'),
+- mj('config', 'TeX-AMS-MML_HTMLorMML-full.js'),
+- mj('config', 'Safe.js'),
+- ])
+-
+- trees = []
+- mj_out = mj('jax', 'output')
+-
+- if os.path.exists(mj_out):
+- for output in os.listdir(mj_out):
+- path = pjoin(mj_out, output)
+- static_data.append(pjoin(path, '*.js'))
+- autoload = pjoin(path, 'autoload')
+- if os.path.isdir(autoload):
+- trees.append(autoload)
+-
+- for tree in trees + [
+- mj('localization'), # limit to en?
+- mj('fonts', 'HTML-CSS', 'STIX-Web', 'woff'),
+- mj('extensions'),
+- mj('jax', 'input', 'TeX'),
+- mj('jax', 'output', 'HTML-CSS', 'fonts', 'STIX-Web'),
+- mj('jax', 'output', 'SVG', 'fonts', 'STIX-Web'),
+- mj('jax', 'element', 'mml'),
+- ]:
+- for parent, dirs, files in os.walk(tree):
+- for f in files:
+- static_data.append(pjoin(parent, f))
+-
+ os.chdir(os.path.join('tests',))
+ js_tests = glob('*.js') + glob('*/*.js')
+
diff --git a/dev-python/notebook/files/notebook-6.0.3-py39.patch b/dev-python/notebook/files/notebook-6.0.3-py39.patch
new file mode 100644
index 000000000000..2b0fc134b58a
--- /dev/null
+++ b/dev-python/notebook/files/notebook-6.0.3-py39.patch
@@ -0,0 +1,73 @@
+From c01b2cc014af5c3f8c1e00907a985edc19cad8d7 Mon Sep 17 00:00:00 2001
+From: Karthikeyan Singaravelan <tir.karthi@gmail.com>
+Date: Wed, 22 Jan 2020 00:41:58 +0530
+Subject: [PATCH] Remove deprecated encoding parameter for Python 3.9
+ compatibility.
+
+---
+ notebook/tests/test_gateway.py | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/notebook/tests/test_gateway.py b/notebook/tests/test_gateway.py
+index d0cc84b09d..116b3db673 100644
+--- a/notebook/tests/test_gateway.py
++++ b/notebook/tests/test_gateway.py
+@@ -176,7 +176,7 @@ def test_gateway_get_kernelspecs(self):
+ with mocked_gateway:
+ response = self.request('GET', '/api/kernelspecs')
+ self.assertEqual(response.status_code, 200)
+- content = json.loads(response.content.decode('utf-8'), encoding='utf-8')
++ content = json.loads(response.content.decode('utf-8'))
+ kspecs = content.get('kernelspecs')
+ self.assertEqual(len(kspecs), 2)
+ self.assertEqual(kspecs.get('kspec_bar').get('name'), 'kspec_bar')
+@@ -186,7 +186,7 @@ def test_gateway_get_named_kernelspec(self):
+ with mocked_gateway:
+ response = self.request('GET', '/api/kernelspecs/kspec_foo')
+ self.assertEqual(response.status_code, 200)
+- kspec_foo = json.loads(response.content.decode('utf-8'), encoding='utf-8')
++ kspec_foo = json.loads(response.content.decode('utf-8'))
+ self.assertEqual(kspec_foo.get('name'), 'kspec_foo')
+
+ response = self.request('GET', '/api/kernelspecs/no_such_spec')
+@@ -257,7 +257,7 @@ def create_session(self, kernel_name):
+ # Create the kernel... (also tests get_kernel)
+ response = self.request('POST', '/api/sessions', **kwargs)
+ self.assertEqual(response.status_code, 201)
+- model = json.loads(response.content.decode('utf-8'), encoding='utf-8')
++ model = json.loads(response.content.decode('utf-8'))
+ self.assertEqual(model.get('path'), nb_path)
+ kernel_id = model.get('kernel').get('id')
+ # ensure its in the running_kernels and name matches.
+@@ -286,7 +286,7 @@ def is_kernel_running(self, kernel_id):
+ # Get list of running kernels
+ response = self.request('GET', '/api/kernels')
+ self.assertEqual(response.status_code, 200)
+- kernels = json.loads(response.content.decode('utf-8'), encoding='utf-8')
++ kernels = json.loads(response.content.decode('utf-8'))
+ self.assertEqual(len(kernels), len(running_kernels))
+ for model in kernels:
+ if model.get('id') == kernel_id:
+@@ -305,7 +305,7 @@ def create_kernel(self, kernel_name):
+
+ response = self.request('POST', '/api/kernels', **kwargs)
+ self.assertEqual(response.status_code, 201)
+- model = json.loads(response.content.decode('utf-8'), encoding='utf-8')
++ model = json.loads(response.content.decode('utf-8'))
+ kernel_id = model.get('id')
+ # ensure its in the running_kernels and name matches.
+ running_kernel = running_kernels.get(kernel_id)
+@@ -330,7 +330,7 @@ def restart_kernel(self, kernel_id):
+ with mocked_gateway:
+ response = self.request('POST', '/api/kernels/' + kernel_id + '/restart')
+ self.assertEqual(response.status_code, 200)
+- model = json.loads(response.content.decode('utf-8'), encoding='utf-8')
++ model = json.loads(response.content.decode('utf-8'))
+ restarted_kernel_id = model.get('id')
+ # ensure its in the running_kernels and name matches.
+ running_kernel = running_kernels.get(restarted_kernel_id)
+@@ -345,4 +345,3 @@ def delete_kernel(self, kernel_id):
+ response = self.request('DELETE', '/api/kernels/' + kernel_id)
+ self.assertEqual(response.status_code, 204)
+ self.assertEqual(response.reason, 'No Content')
+-
diff --git a/dev-python/notebook/metadata.xml b/dev-python/notebook/metadata.xml
new file mode 100644
index 000000000000..4ad788392b77
--- /dev/null
+++ b/dev-python/notebook/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">notebook</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-python/notebook/notebook-5.0.0.ebuild b/dev-python/notebook/notebook-5.0.0.ebuild
new file mode 100644
index 000000000000..d4c0e2123f49
--- /dev/null
+++ b/dev-python/notebook/notebook-5.0.0.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Jupyter Interactive Notebook"
+HOMEPAGE="https://jupyter.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+RDEPEND="
+ >=dev-libs/mathjax-2.4
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.3.3[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ dev-python/ipython_genutils[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.2.1[${PYTHON_USEDEP}]
+ dev-python/jupyter_core[${PYTHON_USEDEP}]
+ dev-python/jupyter_client[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-4.2.0[${PYTHON_USEDEP}]
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/nose-0.10.1[${PYTHON_USEDEP}]
+ dev-python/nose_warnings_filters[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ )
+ doc? (
+ app-text/pandoc
+ >=dev-python/ipython-4.0.0[${PYTHON_USEDEP}]
+ dev-python/nbsphinx[${PYTHON_USEDEP}]
+ )
+ "
+
+PATCHES=( "${FILESDIR}/${P}"-setupbase.py.patch
+ "${FILESDIR}/${P}"-example-execution.patch )
+
+python_prepare_all() {
+ sed \
+ -e "/import setup/s:$:\nimport setuptools:g" \
+ -i setup.py || die
+
+ # disable bundled mathjax
+ sed -i 's/^.*MathJax.*$//' bower.json || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed \
+ -e "/^ 'sphinx.ext.intersphinx',/d" \
+ -i docs/source/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html
+ HTML_DOCS=( docs/build/html/. )
+ fi
+}
+
+python_test() {
+ nosetests \
+ --verbosity=3 \
+ notebook || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ ln -sf \
+ "${EPREFIX}/usr/share/mathjax" \
+ "${D}$(python_get_sitedir)/notebook/static/components/MathJax" || die
+}
+
+pkg_preinst() {
+ # remove old mathjax folder if present
+ rm -rf "${EROOT%/}"/usr/lib*/python*/site-packages/notebook/static/components/MathJax || die
+}
diff --git a/dev-python/notebook/notebook-5.2.1.ebuild b/dev-python/notebook/notebook-5.2.1.ebuild
new file mode 100644
index 000000000000..3faa47b3b2ee
--- /dev/null
+++ b/dev-python/notebook/notebook-5.2.1.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_6 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Jupyter Interactive Notebook"
+HOMEPAGE="https://jupyter.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+RDEPEND="
+ >=dev-libs/mathjax-2.4
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.3.3[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ dev-python/ipython_genutils[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.2.1[${PYTHON_USEDEP}]
+ >=dev-python/jupyter_core-4.4.0[${PYTHON_USEDEP}]
+ dev-python/jupyter_client[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-4.2.0[${PYTHON_USEDEP}]
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/nose-0.10.1[${PYTHON_USEDEP}]
+ dev-python/nose_warnings_filters[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}]
+ )
+ doc? (
+ app-text/pandoc
+ >=dev-python/ipython-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.3.6[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ =dev-python/nbsphinx-0.2.14[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nbval[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )
+ )
+ "
+
+PATCHES=( "${FILESDIR}/${P}"-setupbase.py.patch )
+
+python_prepare_all() {
+ sed \
+ -e "/import setup/s:$:\nimport setuptools:g" \
+ -i setup.py || die
+
+ # disable bundled mathjax
+ sed -i 's/^.*MathJax.*$//' bower.json || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed \
+ -e "/^ 'sphinx.ext.intersphinx',/d" \
+ -i docs/source/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ addwrite /dev/dri/card0
+ emake -C docs html
+ HTML_DOCS=( docs/build/html/. )
+ fi
+}
+
+python_test() {
+ nosetests \
+ --verbosity=3 \
+ notebook || die
+
+ if use doc && python_is_python3; then
+ py.test --nbval --current-env docs || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ ln -sf \
+ "${EPREFIX}/usr/share/mathjax" \
+ "${D}$(python_get_sitedir)/notebook/static/components/MathJax" || die
+}
+
+pkg_preinst() {
+ # remove old mathjax folder if present
+ rm -rf "${EROOT%/}"/usr/lib*/python*/site-packages/notebook/static/components/MathJax || die
+}
diff --git a/dev-python/notebook/notebook-5.7.8.ebuild b/dev-python/notebook/notebook-5.7.8.ebuild
new file mode 100644
index 000000000000..4c9dc036bc2d
--- /dev/null
+++ b/dev-python/notebook/notebook-5.7.8.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Jupyter Interactive Notebook"
+HOMEPAGE="https://jupyter.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+RDEPEND="
+ >=dev-libs/mathjax-2.4
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.8.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.0[${PYTHON_USEDEP}]
+ dev-python/ipython_genutils[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.2.1[${PYTHON_USEDEP}]
+ >=dev-python/jupyter_core-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-17[${PYTHON_USEDEP}]
+ >=dev-python/jupyter_client-5.2[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-4.2.0[${PYTHON_USEDEP}]
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/send2trash[${PYTHON_USEDEP}]
+ dev-python/prometheus_client[${PYTHON_USEDEP}]"
+
+# sphinx 2+ seems to have a problem with its github plugin. temporarily adding
+# a version constraint.
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose-exclude[${PYTHON_USEDEP}]
+ dev-python/nose_warnings_filters[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+ doc? (
+ app-text/pandoc
+ dev-python/ipython[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.3.6[${PYTHON_USEDEP}]
+ <dev-python/sphinx-2[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-github-alt[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ dev-python/nbsphinx[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nbval[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )
+ )
+ "
+
+PATCHES=( "${FILESDIR}/${PN}"-5.7.0-no-mathjax.patch )
+
+python_prepare_all() {
+ sed \
+ -e "/import setup/s:$:\nimport setuptools:g" \
+ -i setup.py || die
+
+ # disable bundled mathjax
+ sed -i 's/^.*MathJax.*$//' bower.json || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed \
+ -e "/^ 'sphinx.ext.intersphinx',/d" \
+ -i docs/source/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ addwrite /dev/dri/card0
+ emake -C docs html
+ HTML_DOCS=( docs/build/html/. )
+ fi
+}
+
+python_test() {
+ nosetests \
+ --verbosity=3 \
+ --exclude-dir notebook/tests/selenium \
+ notebook || die
+
+ # These doc-based tests are broken on gentoo for permission-related errors
+ # (they try to write files in system's ipython folder). Disabled for now.
+ # if use doc; then
+ # pytest --nbval --current-env docs || die
+ # fi
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ ln -sf \
+ "${EPREFIX}/usr/share/mathjax" \
+ "${D}$(python_get_sitedir)/notebook/static/components/MathJax" || die
+}
+
+pkg_preinst() {
+ # remove old mathjax folder if present
+ rm -rf "${EROOT}"/usr/lib*/python*/site-packages/notebook/static/components/MathJax || die
+}
diff --git a/dev-python/notebook/notebook-6.0.3.ebuild b/dev-python/notebook/notebook-6.0.3.ebuild
new file mode 100644
index 000000000000..a92fb17d8b10
--- /dev/null
+++ b/dev-python/notebook/notebook-6.0.3.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_SETUPTOOLS=rdepend
+PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Jupyter Interactive Notebook"
+HOMEPAGE="https://jupyter.org"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-libs/mathjax-2.4
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.8.1[${PYTHON_USEDEP}]
+ >=www-servers/tornado-5.0[${PYTHON_USEDEP}]
+ dev-python/ipython_genutils[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.2.1[${PYTHON_USEDEP}]
+ >=dev-python/jupyter_core-4.6.1[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-17[${PYTHON_USEDEP}]
+ >=dev-python/jupyter_client-5.3.4[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-4.2.0[${PYTHON_USEDEP}]
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/send2trash[${PYTHON_USEDEP}]
+ dev-python/prometheus_client[${PYTHON_USEDEP}]"
+
+# sphinx 2+ seems to have a problem with its github plugin. temporarily adding
+# a version constraint.
+BDEPEND="
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/nose_warnings_filters[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+ "
+
+PATCHES=(
+ "${FILESDIR}/${PN}"-5.7.0-no-mathjax.patch
+ "${FILESDIR}"/${P}-py39.patch
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # disable bundled mathjax
+ sed -i 's/^.*MathJax.*$//' bower.json || die
+
+ # require geckodriver
+ rm -r notebook/tests/selenium || die
+ # trash doesn't seem to work for us
+ sed -e 's:test_delete:_&:' \
+ -i notebook/services/contents/tests/test_manager.py || die
+ sed -e 's:test_checkpoints_follow_file:_&:' \
+ -e 's:test_delete:_&:' \
+ -i notebook/services/contents/tests/test_contents_api.py || die
+ # TODO: high magic, SRE module mismatch
+ sed -e 's:test_connections:_&:' \
+ -e 's:test_main_kernel_handler:_&:' \
+ -i notebook/services/kernels/tests/test_kernels_api.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ ln -sf \
+ "${EPREFIX}/usr/share/mathjax" \
+ "${D}$(python_get_sitedir)/notebook/static/components/MathJax" || die
+}
+
+pkg_preinst() {
+ # remove old mathjax folder if present
+ rm -rf "${EROOT}"/usr/lib*/python*/site-packages/notebook/static/components/MathJax || die
+}