commit: 68e7afc8190ede393417464bd97001ecd0b67e31 Author: Aisha Tammy <gentoo <AT> aisha <DOT> cc> AuthorDate: Thu Sep 24 15:36:07 2020 +0000 Commit: Aisha Tammy <gentoo <AT> aisha <DOT> cc> CommitDate: Thu Sep 24 15:36:07 2020 +0000 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=68e7afc8
dev-python/bokeh: interactive data visualization Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Aisha Tammy <gentoo <AT> aisha.cc> dev-python/bokeh/bokeh-2.2.1.ebuild | 88 ++++++++++++++++++++++ .../bokeh/files/bokeh-2.2.1-conftest_py.patch | 56 ++++++++++++++ dev-python/bokeh/metadata.xml | 31 ++++++++ dev-python/bokeh/packs | 21 ++++++ 4 files changed, 196 insertions(+) diff --git a/dev-python/bokeh/bokeh-2.2.1.ebuild b/dev-python/bokeh/bokeh-2.2.1.ebuild new file mode 100644 index 000000000..e4ce552f5 --- /dev/null +++ b/dev-python/bokeh/bokeh-2.2.1.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DISTUTILS_USE_SETUPTOOLS=rdepend + +# upstream hasn't tested python 3.8 fully +PYTHON_COMPAT=( python3_{6,7} ) + +inherit distutils-r1 eutils + +DESCRIPTION="Statistical and interactive HTML plots for Python" +HOMEPAGE="https://bokeh.org/ + https://github.com/bokeh/bokeh +" +SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="examples" + +DISTUTILS_IN_SOURCE_BUILD=1 + +# upstream authoritative dependencies +# https://github.com/bokeh/bokeh/blob/master/conda.recipe/meta.yaml +RDEPEND=" + dev-python/jinja[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/pyparsing[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + >=www-servers/tornado-5[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/beautifulsoup:4[${PYTHON_USEDEP}] + dev-python/flaky[${PYTHON_USEDEP}] + dev-python/ipython_genutils[${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + dev-python/networkx[${PYTHON_USEDEP}] + dev-python/nbconvert[${PYTHON_USEDEP}] + dev-python/nbformat[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + dev-python/scipy[${PYTHON_USEDEP}] + dev-python/selenium[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +PATCHES=( + "${FILESDIR}"/${P}-conftest_py.patch +) + +python_test() { + # disable tests having network calls + local SKIP_TESTS=" \ + not (test___init__ and TestWarnings and test_filters) and \ + not (test_json__subcommands and test_no_script) and \ + not (test_standalone and Test_autoload_static) and \ + not test_nodejs_compile_javascript and \ + not test_nodejs_compile_less and \ + not test_inline_extension and \ + not (test_model and test_select) and \ + not test_tornado__server and \ + not test_client_server and \ + not test_webdriver and \ + not test_export and \ + not test_server and \ + not test_bundle and \ + not test_ext \ + " + pytest -m "not sampledata" tests/unit -k \ + "${SKIP_TESTS}" -vv || die "unittests fail with ${EPYTHON}" +} + +pkg_postinst() { + optfeature "integration with amazon S3" dev-python/boto + optfeature "pypi integration to publish packages" dev-python/twine + optfeature "js library usage" net-libs/nodejs +} diff --git a/dev-python/bokeh/files/bokeh-2.2.1-conftest_py.patch b/dev-python/bokeh/files/bokeh-2.2.1-conftest_py.patch new file mode 100644 index 000000000..5dfb43c8e --- /dev/null +++ b/dev-python/bokeh/files/bokeh-2.2.1-conftest_py.patch @@ -0,0 +1,56 @@ +diff --git a/conftest.py b/conftest.py +new file mode 100644 +index 0000000..795da89 +--- /dev/null ++++ b/conftest.py +@@ -0,0 +1,50 @@ ++#----------------------------------------------------------------------------- ++# Copyright (c) 2012 - 2020, Anaconda, Inc., and Bokeh Contributors. ++# All rights reserved. ++# ++# The full license is in the file LICENSE.txt, distributed with this software. ++#----------------------------------------------------------------------------- ++ ++pytest_plugins = ( ++ "bokeh._testing.plugins.ipython", ++ "bokeh._testing.plugins.managed_server_loop", ++ "bokeh._testing.plugins.pandas", ++) ++ ++# Standard library imports ++from inspect import iscoroutinefunction ++from typing import List ++ ++# External imports ++import _pytest ++import pytest ++ ++ ++def pytest_collection_modifyitems(items: List[_pytest.nodes.Item]) -> None: ++ for item in items: ++ if iscoroutinefunction(item.obj): ++ item.add_marker(pytest.mark.asyncio) ++ ++# Unfortunately these seem to all need to be centrally defined at the top level ++def pytest_addoption(parser: _pytest.config.argparsing.Parser) -> None: ++ ++ # plugins/selenium ++ parser.addoption( ++ "--driver", choices=('chrome', 'firefox', 'safari'), default='chrome', help='webdriver implementation') ++ ++ # plugins/bokeh_server ++ parser.addoption( ++ "--bokeh-port", dest="bokeh_port", type=int, default=5006, help="port on which Bokeh server resides" ++ ) ++ ++ # plugins/jupyter_notebook ++ parser.addoption( ++ "--notebook-port", type=int, default=6007, help="port on which Jupyter Notebook server resides" ++ ) ++ ++ parser.addoption( ++ "--examples-log-file", dest="log_file", metavar="path", action="store", default='examples.log', help="where to write the complete log" ++ ) ++ parser.addoption( ++ "--no-js", action="store_true", default=False, ++ help="only run python code and skip js") diff --git a/dev-python/bokeh/metadata.xml b/dev-python/bokeh/metadata.xml new file mode 100644 index 000000000..6d8018e6f --- /dev/null +++ b/dev-python/bokeh/metadata.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>gen...@aisha.cc</email> + <name>Aisha Tammy</name> + </maintainer> + <maintainer type="project"> + <email>proxy-ma...@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <maintainer type="project"> + <email>s...@gentoo.org</email> + <name>Gentoo Science Project</name> + </maintainer> + <longdescription lang="en"> + Bokeh is a Python interactive visualization library for large + datasets that natively uses the latest web technologies. Its goal is + to provide elegant, concise construction of novel graphics in the + style of Protovis/D3, while delivering high-performance + interactivity over large data to thin clients. + </longdescription> + <upstream> + <remote-id type="pypi">bokeh</remote-id> + <remote-id type="github">bokeh/bokeh</remote-id> + <maintainer status="unknown"> + <email>i...@bokeh.org</email> + <name>Bokeh</name> + </maintainer> + </upstream> +</pkgmetadata> diff --git a/dev-python/bokeh/packs b/dev-python/bokeh/packs new file mode 100644 index 000000000..c925ef1c9 --- /dev/null +++ b/dev-python/bokeh/packs @@ -0,0 +1,21 @@ + dev-python/beautifulsoup + dev-python/boto + dev-python/colorama + dev-python/flaky + dev-python/ipython + dev-python/pandas + dev-python/pytest + dev-python/pytest-asyncio + dev-python/pytest-html + dev-python/pytest-xdist + dev-python/mypy + dev-python/mock + dev-python/networkx + dev-python/nbconvert + dev-python/nbformat + dev-python/pytest-rerunfailures + dev-python/pytest-xdist + dev-python/selenium + dev-ruby/selenium-webdriver + net-libs/nodejs + sci-libs/scipy