blob: 594377dcdb9631c28c91758ae945b913cb752c19 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..9} )
# Panel imports from "distutils" at runtime.
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1
DESCRIPTION="High-level app and dashboarding solution for Python"
HOMEPAGE="https://panel.holoviz.org"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
# "setup.py" imports from Bokeh to rebuild Node.js packages, but we patch that
# away below. Our patched Panel thus requires Bokeh only at runtime.
DEPEND="
>=dev-python/param-1.10.0[${PYTHON_USEDEP}]
>=dev-python/pyct-0.4.4[${PYTHON_USEDEP}]
"
RDEPEND="${DEPEND}
dev-python/markdown[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/tqdm[${PYTHON_USEDEP}]
>=dev-python/bokeh-2.3.0[${PYTHON_USEDEP}]
>=dev-python/pyviz_comms-0.7.4[${PYTHON_USEDEP}]
>=net-libs/nodejs-15.11.0
"
src_prepare() {
# Install Jupyter configuration files to "/etc" rather than "/usr/etc".
sed -i -e 's~"etc/jupyter~"/etc/jupyter~' setup.py || die
# Prevent Panel from violating network sandboxing. By default, "setup.py"
# invokes "npm" to rebuild Node.js packages bundled with Panel when these
# packages were built by Panel developers with a different version of Bokeh
# than that installed on the local system. Since disabling this
# functionality invites backend and frontend complications, we encourage
# server administrators to manually perform this functionality below.
sed -i -e '/^\s*_build_paneljs()$/d' setup.py || die
default_src_prepare
}
pkg_postinst() {
panel_pkg_postinst() {
PANEL_DIR="$(${EPYTHON} -c 'import os, panel; print(os.path.dirname(panel.__file__))')"
elog "Node.js packages bundled with Panel under ${EPYTHON} may be"
elog "desynchronized from Bokeh and require manual rebuilding with:"
elog " sudo ${EPYTHON} -m panel build \"${PANEL_DIR}\""
elog
}
python_foreach_impl panel_pkg_postinst
}
|