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>[email protected]</email>
+ <name>Aisha Tammy</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>[email protected]</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>[email protected]</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>[email protected]</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