diff options
| author | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
|---|---|---|
| committer | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
| commit | ecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch) | |
| tree | b89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-python/nbconvert | |
| parent | 1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff) | |
| download | baldeagleos-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/Manifest | 3 | ||||
| -rw-r--r-- | dev-python/nbconvert/files/nbconvert-5.6.1-inkscape-1.patch | 159 | ||||
| -rw-r--r-- | dev-python/nbconvert/files/nbconvert-5.6.1-py39.patch | 27 | ||||
| -rw-r--r-- | dev-python/nbconvert/metadata.xml | 17 | ||||
| -rw-r--r-- | dev-python/nbconvert/nbconvert-5.2.1.ebuild | 82 | ||||
| -rw-r--r-- | dev-python/nbconvert/nbconvert-5.5.0.ebuild | 82 | ||||
| -rw-r--r-- | dev-python/nbconvert/nbconvert-5.6.1.ebuild | 70 |
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 +} |
