summaryrefslogtreecommitdiff
path: root/dev-python/nbconvert
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/nbconvert
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'dev-python/nbconvert')
-rw-r--r--dev-python/nbconvert/Manifest3
-rw-r--r--dev-python/nbconvert/files/nbconvert-5.6.1-inkscape-1.patch159
-rw-r--r--dev-python/nbconvert/files/nbconvert-5.6.1-py39.patch27
-rw-r--r--dev-python/nbconvert/metadata.xml17
-rw-r--r--dev-python/nbconvert/nbconvert-5.2.1.ebuild82
-rw-r--r--dev-python/nbconvert/nbconvert-5.5.0.ebuild82
-rw-r--r--dev-python/nbconvert/nbconvert-5.6.1.ebuild70
7 files changed, 440 insertions, 0 deletions
diff --git a/dev-python/nbconvert/Manifest b/dev-python/nbconvert/Manifest
new file mode 100644
index 000000000000..9eb0c2d12c19
--- /dev/null
+++ b/dev-python/nbconvert/Manifest
@@ -0,0 +1,3 @@
+DIST nbconvert-5.2.1.tar.gz 510937 BLAKE2B aade38372775b032287f420ea4d335ad949a80afc0df63859db5a4f520bbaa22fcd17bf4318b05fa042fe94c2f65890aa2ed2365206abe8cdfb357817b056ac7 SHA512 c71c95d6c7bda4b55afad792d108d48c27857e060531dc8ec262673971c258ff9480821bd78ee5cbdbb19f107d5f8d19a49eac88819f20a09b450c26681335fa
+DIST nbconvert-5.5.0.tar.gz 583216 BLAKE2B fce42d68fcfb5439607fcb0fa8475462e929a5ddb9d160985956a85e09c7561e1a966be633b4d59e6afe873fb7f1300997c97bdbf4690290401d14bbe351c47a SHA512 4d10cbd6d6854d7672537cfb2e0a79854be1ed4adf96f805b1a0ec0dde0e149ed465a26ceec8d7c325f7011c30ff646054585b65d1e83540622e25a96cc207bf
+DIST nbconvert-5.6.1.tar.gz 703233 BLAKE2B e75d558aee6c66fe8e7455ecf22dbbcd2a0698380ffec80eff15aea6c70bc853daa9ab2fd1d114453bd5dfe7e75617afb9f5c1075704bfadbb59fef34bca88a9 SHA512 0c68adcb9f28ead9ec058fc2e02a9a1e6f65818709c99f7a006a59a7562b5f5ee74afe5287e41568c35542898dc1b43c4543d2386cc05a721b3f99d5cc789435
diff --git a/dev-python/nbconvert/files/nbconvert-5.6.1-inkscape-1.patch b/dev-python/nbconvert/files/nbconvert-5.6.1-inkscape-1.patch
new file mode 100644
index 000000000000..1f997a3c3a32
--- /dev/null
+++ b/dev-python/nbconvert/files/nbconvert-5.6.1-inkscape-1.patch
@@ -0,0 +1,159 @@
+diff --git a/nbconvert/preprocessors/svg2pdf.py b/nbconvert/preprocessors/svg2pdf.py
+index aff14d9f..de51f3b8 100644
+--- a/nbconvert/preprocessors/svg2pdf.py
++++ b/nbconvert/preprocessors/svg2pdf.py
+@@ -1,4 +1,4 @@
+-"""Module containing a preprocessor that converts outputs in the notebook from
++"""Module containing a preprocessor that converts outputs in the notebook from
+ one format to another.
+ """
+
+@@ -17,11 +17,7 @@ from traitlets import Unicode, default
+
+ from .convertfigures import ConvertFiguresPreprocessor
+
+-if sys.version_info >= (3,3):
+- from shutil import which
+- get_inkscape_path = which('inkscape')
+-else:
+- get_inkscape_path = None
++from shutil import which
+
+
+ INKSCAPE_APP = '/Applications/Inkscape.app/Contents/Resources/bin/inkscape'
+@@ -46,26 +42,49 @@ class SVG2PDFPreprocessor(ConvertFiguresPreprocessor):
+ def _to_format_default(self):
+ return 'application/pdf'
+
++ inkscape_version = Unicode(
++ help="""The version of inkscpae being used.
++
++ This affects how the conversion command is run.
++ """
++ ).tag(config=True)
++
++ @default('inkscape_version')
++ def _inkscape_version_default(self):
++ p = subprocess.Popen([self.inkscape, '--version'],
++ stdout=subprocess.PIPE,
++ stderr=subprocess.PIPE)
++ output, _ = p.communicate()
++ if p.returncode != 0:
++ raise RuntimeError("Unable to find inkscape executable --version")
++ return output.decode('utf-8').split(' ')[1]
++
+ command = Unicode(
+ help="""The command to use for converting SVG to PDF
+-
++
+ This string is a template, which will be formatted with the keys
+ to_filename and from_filename.
+-
++
+ The conversion call must read the SVG from {from_filename},
+ and write a PDF to {to_filename}.
+ """).tag(config=True)
+
+ @default('command')
+ def _command_default(self):
+- return self.inkscape + \
+- ' --without-gui --export-pdf="{to_filename}" "{from_filename}"'
+-
++ major_verison = self.inkscape_version.split('.')[0]
++ export_option = ' --export-filename' if int(major_verison) > 0 else ' --export-pdf'
++ gui_option = '' if int(major_verison) > 0 else ' --without-gui'
++
++ return '{inkscape}{gui_option}{export_option}='.format(
++ inkscape=self.inkscape, export_option=export_option, gui_option=gui_option
++ ) + '"{to_filename}" "{from_filename}"'
++
+ inkscape = Unicode(help="The path to Inkscape, if necessary").tag(config=True)
+ @default('inkscape')
+ def _inkscape_default(self):
+- if get_inkscape_path is not None:
+- return get_inkscape_path
++ inkscape_path = which('inkscape')
++ if inkscape_path is not None:
++ return inkscape_path
+ if sys.platform == "darwin":
+ if os.path.isfile(INKSCAPE_APP):
+ return INKSCAPE_APP
+@@ -85,22 +104,22 @@ class SVG2PDFPreprocessor(ConvertFiguresPreprocessor):
+ Convert a single SVG figure to PDF. Returns converted data.
+ """
+
+- #Work in a temporary directory
++ # Work in a temporary directory
+ with TemporaryDirectory() as tmpdir:
+-
+- #Write fig to temp file
++
++ # Write fig to temp file
+ input_filename = os.path.join(tmpdir, 'figure.svg')
+ # SVG data is unicode text
+ with io.open(input_filename, 'w', encoding='utf8') as f:
+ f.write(cast_unicode_py2(data))
+
+- #Call conversion application
++ # Call conversion application
+ output_filename = os.path.join(tmpdir, 'figure.pdf')
+- shell = self.command.format(from_filename=input_filename,
++ shell = self.command.format(from_filename=input_filename,
+ to_filename=output_filename)
+- subprocess.call(shell, shell=True) #Shell=True okay since input is trusted.
++ subprocess.call(shell, shell=True) # Shell=True okay since input is trusted.
+
+- #Read output from drive
++ # Read output from drive
+ # return value expects a filename
+ if os.path.isfile(output_filename):
+ with open(output_filename, 'rb') as f:
+diff --git a/nbconvert/preprocessors/tests/test_svg2pdf.py b/nbconvert/preprocessors/tests/test_svg2pdf.py
+index c42222c7..d9ccec8c 100644
+--- a/nbconvert/preprocessors/tests/test_svg2pdf.py
++++ b/nbconvert/preprocessors/tests/test_svg2pdf.py
+@@ -4,6 +4,7 @@
+ # Distributed under the terms of the Modified BSD License.
+
+ from nbformat import v4 as nbformat
++from unittest.mock import patch, Mock
+
+ from .base import PreprocessorTestsBase
+ from ..svg2pdf import SVG2PDFPreprocessor
+@@ -51,9 +52,9 @@ class Testsvg2pdf(PreprocessorTestsBase):
+ return nbformat.new_notebook(cells=cells)
+
+
+- def build_preprocessor(self):
++ def build_preprocessor(self, **kwargs):
+ """Make an instance of a preprocessor"""
+- preprocessor = SVG2PDFPreprocessor()
++ preprocessor = SVG2PDFPreprocessor(**kwargs)
+ preprocessor.enabled = True
+ return preprocessor
+
+@@ -71,4 +72,23 @@ class Testsvg2pdf(PreprocessorTestsBase):
+ preprocessor = self.build_preprocessor()
+ nb, res = preprocessor(nb, res)
+ self.assertIn('application/pdf', nb.cells[0].outputs[0].data)
+-
++
++ @patch('subprocess.Popen')
++ def test_inkscape_version_default(self, mock_popen):
++ mock_popen().communicate.return_value = (b'Inkscape 0.92.3 (2405546, 2018-03-11)', b'')
++ mock_popen().returncode = 0
++
++ preprocessor = self.build_preprocessor()
++ self.assertEquals(preprocessor.inkscape_version, '0.92.3')
++
++ def test_inkscape_pre_v1_command(self):
++ preprocessor = self.build_preprocessor(inkscape_version='0.92.3')
++ self.assertEquals(preprocessor.command, '0.92.3')
++
++ def test_inkscape_pre_v1_command(self):
++ preprocessor = self.build_preprocessor(inkscape='fake-inkscape', inkscape_version='0.92.3')
++ self.assertEquals(preprocessor.command, 'fake-inkscape --without-gui --export-pdf="{to_filename}" "{from_filename}"')
++
++ def test_inkscape_v1_command(self):
++ preprocessor = self.build_preprocessor(inkscape='fake-inkscape', inkscape_version='1.0beta2')
++ self.assertEquals(preprocessor.command, 'fake-inkscape --export-filename="{to_filename}" "{from_filename}"')
diff --git a/dev-python/nbconvert/files/nbconvert-5.6.1-py39.patch b/dev-python/nbconvert/files/nbconvert-5.6.1-py39.patch
new file mode 100644
index 000000000000..822c32753f83
--- /dev/null
+++ b/dev-python/nbconvert/files/nbconvert-5.6.1-py39.patch
@@ -0,0 +1,27 @@
+diff --git a/nbconvert/filters/strings.py b/nbconvert/filters/strings.py
+index 2673d661..9ae82a13 100755
+--- a/nbconvert/filters/strings.py
++++ b/nbconvert/filters/strings.py
+@@ -19,8 +19,8 @@ except ImportError:
+ from urllib2 import quote # Py 2
+
+ # defusedxml does safe(r) parsing of untrusted XML data
+-from defusedxml import cElementTree as ElementTree
+-from xml.etree.cElementTree import Element
++from defusedxml import ElementTree
++from xml.etree.ElementTree import Element
+
+ from ipython_genutils import py3compat
+
+diff --git a/nbconvert/preprocessors/svg2pdf.py b/nbconvert/preprocessors/svg2pdf.py
+index aff14d9f..b689b1bc 100644
+--- a/nbconvert/preprocessors/svg2pdf.py
++++ b/nbconvert/preprocessors/svg2pdf.py
+@@ -105,6 +105,6 @@ class SVG2PDFPreprocessor(ConvertFiguresPreprocessor):
+ if os.path.isfile(output_filename):
+ with open(output_filename, 'rb') as f:
+ # PDF is a nb supported binary, data type, so base64 encode.
+- return base64.encodestring(f.read())
++ return base64.encodebytes(f.read())
+ else:
+ raise TypeError("Inkscape svg to pdf conversion failed")
diff --git a/dev-python/nbconvert/metadata.xml b/dev-python/nbconvert/metadata.xml
new file mode 100644
index 000000000000..ac451fd1cfd9
--- /dev/null
+++ b/dev-python/nbconvert/metadata.xml
@@ -0,0 +1,17 @@
+<?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">nbconvert</remote-id>
+ <remote-id type="github">jupyter/nbconvert</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-python/nbconvert/nbconvert-5.2.1.ebuild b/dev-python/nbconvert/nbconvert-5.2.1.ebuild
new file mode 100644
index 000000000000..c1571315de51
--- /dev/null
+++ b/dev-python/nbconvert/nbconvert-5.2.1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_{6,7} )
+
+inherit distutils-r1
+
+DESCRIPTION="Converting Jupyter Notebooks"
+HOMEPAGE="https://nbconvert.readthedocs.io/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/bleach[${PYTHON_USEDEP}]
+ >=dev-python/entrypoints-0.2.2[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/jupyter_core[${PYTHON_USEDEP}]
+ >=dev-python/mistune-0.7.4[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/pandocfilters-1.4.1[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.2.1[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ ${RDEPEND}
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/jupyter_client[${PYTHON_USEDEP}]
+ dev-python/nbsphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ >=dev-python/jupyter_client-4.2[${PYTHON_USEDEP}]
+ )
+"
+
+# still failing in many places
+RESTRICT=test
+
+python_prepare_all() {
+ # 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() {
+ distutils_install_for_testing
+ cd "${TEST_DIR}"/lib || die
+ py.test --cov nbconvert -v --pyargs nbconvert || die
+}
+
+pkg_postinst() {
+ if ! has_version app-text/pandoc ; then
+ einfo "Pandoc is required for converting to formats other than Python,"
+ einfo "HTML, and Markdown. If you need this functionality, install"
+ einfo "app-text/pandoc."
+ fi
+}
diff --git a/dev-python/nbconvert/nbconvert-5.5.0.ebuild b/dev-python/nbconvert/nbconvert-5.5.0.ebuild
new file mode 100644
index 000000000000..2f180f651028
--- /dev/null
+++ b/dev-python/nbconvert/nbconvert-5.5.0.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+
+inherit distutils-r1
+
+DESCRIPTION="Converting Jupyter Notebooks"
+HOMEPAGE="https://nbconvert.readthedocs.io/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/bleach[${PYTHON_USEDEP}]
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ >=dev-python/entrypoints-0.2.2[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/jupyter_core[${PYTHON_USEDEP}]
+ >=dev-python/mistune-0.7.4[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/pandocfilters-1.4.1[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.2.1[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ ${RDEPEND}
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/jupyter_client[${PYTHON_USEDEP}]
+ dev-python/nbsphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${RDEPEND}
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ >=dev-python/jupyter_client-4.2[${PYTHON_USEDEP}]
+ )
+"
+
+# still failing in many places
+RESTRICT=test
+
+python_prepare_all() {
+ # 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() {
+ distutils_install_for_testing
+ cd "${TEST_DIR}"/lib || die
+ pytest -v --pyargs nbconvert || die
+}
+
+pkg_postinst() {
+ if ! has_version app-text/pandoc ; then
+ einfo "Pandoc is required for converting to formats other than Python,"
+ einfo "HTML, and Markdown. If you need this functionality, install"
+ einfo "app-text/pandoc."
+ fi
+}
diff --git a/dev-python/nbconvert/nbconvert-5.6.1.ebuild b/dev-python/nbconvert/nbconvert-5.6.1.ebuild
new file mode 100644
index 000000000000..594d35db111d
--- /dev/null
+++ b/dev-python/nbconvert/nbconvert-5.6.1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6..9} )
+
+inherit distutils-r1
+
+DESCRIPTION="Converting Jupyter Notebooks"
+HOMEPAGE="https://nbconvert.readthedocs.io/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="
+ dev-python/bleach[${PYTHON_USEDEP}]
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ >=dev-python/entrypoints-0.2.2[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/jupyter_core[${PYTHON_USEDEP}]
+ >=dev-python/mistune-0.7.4[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/pandocfilters-1.4.1[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.2.1[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ www-servers/tornado[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pebble[${PYTHON_USEDEP}]
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ >=dev-python/jupyter_client-4.2[${PYTHON_USEDEP}]
+ media-gfx/inkscape
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/${P}-inkscape-1.patch
+ "${FILESDIR}"/${P}-py39.patch
+)
+
+src_prepare() {
+ # assumes old inkscape output?
+ sed -i -e '/SVG\.ipynb/d' \
+ nbconvert/preprocessors/tests/test_execute.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ distutils_install_for_testing bdist_egg
+ cd "${TEST_DIR}"/lib || die
+ pytest -vv --pyargs nbconvert || die
+}
+
+pkg_postinst() {
+ if ! has_version app-text/pandoc ; then
+ einfo "Pandoc is required for converting to formats other than Python,"
+ einfo "HTML, and Markdown. If you need this functionality, install"
+ einfo "app-text/pandoc."
+ fi
+}