| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 3.9.0 | 8 | ~amd64 ~x86 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1 pypi
DESCRIPTION="Interactive plots and applications in the browser from Python"
HOMEPAGE="https://bokeh.org"
SRC_URI+=" https://github.com/bokeh/bokeh/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND=">=dev-python/contourpy-1.2[${PYTHON_USEDEP}]
>=dev-python/jinja2-2.9[${PYTHON_USEDEP}]
>=dev-python/narwhals-1.13[${PYTHON_USEDEP}]
>=dev-python/numpy-1.16[${PYTHON_USEDEP}]
>=dev-python/packaging-16.8[${PYTHON_USEDEP}]
>=dev-python/pillow-7.1.0[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
>=dev-python/tornado-6.2[${PYTHON_USEDEP}]
>=sci-geosciences/xyzservices-2021.09.1[${PYTHON_USEDEP}]
"
BDEPEND="dev-python/colorama[${PYTHON_USEDEP}]
test? (
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
dev-python/json5[${PYTHON_USEDEP}]
dev-python/networkx[${PYTHON_USEDEP}]
dev-python/nbconvert[${PYTHON_USEDEP}]
dev-python/pandas[${PYTHON_USEDEP}]
dev-python/pyarrow[${PYTHON_USEDEP}]
dev-python/pygraphviz[${PYTHON_USEDEP}]
dev-python/requests-unixsocket[${PYTHON_USEDEP}]
dev-python/selenium[${PYTHON_USEDEP}]
dev-python/toml[${PYTHON_USEDEP}]
dev-python/typing-extensions[${PYTHON_USEDEP}]
dev-vcs/git
net-libs/nodejs[npm]
)
"
EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
distutils_enable_tests pytest
src_unpack() {
use test && { mkdir gh-test || die ; pushd gh-test || die ; unpack ${P}.gh.tar.gz ; popd || die ; }
default
}
python_prepare_all(){
sed -i -e "/^name =/a version = \"${PV}\"" -e '/^dynamic =/d' pyproject.toml || die
distutils-r1_python_prepare_all
}
python_test() {
# From openSUSE
local SKIP_TESTS="not test_bokehjs and not test_ext_commands"
# too many flaky timeouts on obs servers
local SKIP_TESTS+=" and not test_examples"
# testfile not available
local SKIP_TESTS+=" and not test_with_INLINE_resources"
local SKIP_TESTS+=" and not test_with_CDN_resources"
local SKIP_TESTS+=" and not test_with_Server_resources"
local SKIP_TESTS+=" and not test_with_Server_resources_dev"
local SKIP_TESTS+=" and not test_cross"
# does not expect pytest-$binsuffix
local SKIP_TESTS+=" and not test_detect_current_filename"
# cannot open socket / address already in use / no pattern detected
local SKIP_TESTS+=" and not (test_server and test_address)"
local SKIP_TESTS+=" and not (test_serve and printed)"
local SKIP_TESTS+=" and not test__ioloop_not_forcibly_stopped"
# not json5 serializable
local SKIP_TESTS+=" and not test_defaults and not test_bool"
# flaky timeouts
local SKIP_TESTS+=" and not (test_deprecation and (test_since or test_message))"
local SKIP_TESTS+=" and not (test_document_lifecycle and test_document_on_session_destroyed_exceptions)"
# test can't list modules correctly in test environment
local SKIP_TESTS+=" and not (codebase and combined)"
# extraneous fields
local SKIP_TESTS+=" and not test_serialization_data_models"
# linting and code structure irrelevant for rpm package
local SKIP_TESTS+=" and not test_ruff and not test_isort and not test_eslint and not test_code_quality and not test_no_request_host"
# no driver (chromedriver only x86_64)
local SKIP_TESTS+=" and not Test_webdriver_control and not test_adding_periodic_twice"
# fails when tested with pytest-xdist
local SKIP_TESTS+=" and not (TestModelCls and test_get_class)"
local SKIP_TESTS+=" and not test_external_js_and_css_resource_ordering"
# No vermin pkg
local SKIP_TESTS+=" and not test_vermin"
# network
local SKIP_TESTS+=" and not test__use_provided_session_header_autoload"
local SKIP_TESTS+=" and not test_contour and not test_sampledata__util"
epytest -m "not selenium" "${WORKDIR}"/gh-test/${P} -k "${SKIP_TESTS}"
}
>=dev-python/contourpy-1.2[${PYTHON_USEDEP}]
>=dev-python/jinja2-2.9[${PYTHON_USEDEP}]
>=dev-python/narwhals-1.13[${PYTHON_USEDEP}]
>=dev-python/numpy-1.16[${PYTHON_USEDEP}]
>=dev-python/packaging-16.8[${PYTHON_USEDEP}]
>=dev-python/pillow-7.1.0[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
>=dev-python/tornado-6.2[${PYTHON_USEDEP}]
>=sci-geosciences/xyzservices-2021.09.1[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
test? (
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
dev-python/json5[${PYTHON_USEDEP}]
dev-python/networkx[${PYTHON_USEDEP}]
dev-python/nbconvert[${PYTHON_USEDEP}]
dev-python/pandas[${PYTHON_USEDEP}]
dev-python/pyarrow[${PYTHON_USEDEP}]
dev-python/pygraphviz[${PYTHON_USEDEP}]
dev-python/requests-unixsocket[${PYTHON_USEDEP}]
dev-python/selenium[${PYTHON_USEDEP}]
dev-python/toml[${PYTHON_USEDEP}]
dev-python/typing-extensions[${PYTHON_USEDEP}]
dev-vcs/git
net-libs/nodejs[npm]
)