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

Reply via email to