summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 64883e927abae0db22994670b1a5ad3c00f44083 (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Maintainer: Grey Christoforo <first name at last name dot net>
# Co-Maintainer: Bert Peters <bert@bertptrs.nl>

pkgname=python-plotly
pkgver=5.21.0
pkgrel=1
pkgdesc="An open-source, interactive graphing library"
arch=('any')
url="https://github.com/plotly/plotly.py"
license=('MIT')
depends=(
    python
    python-tenacity
)
# optdepends based on optional_requirements.txt
optdepends=(
    ipython
    jupyterlab
    python-ipywidgets
    python-numpy
    python-matplotlib
    python-pillow
    python-scipy
    python-ipykernel
    python-pandas
    python-colorcet
    python-inflect
    python-psutil
)
makedepends=(
    git
    npm
    python-wheel
    python-build
    python-installer
    python-setuptools
    python-jupyter_core
    python-tornado
    jupyterlab
)
checkdepends=(
     python-requests
     python-pytest
)
source=(
     "${pkgname}::git+https://github.com/plotly/plotly.py#tag=v$pkgver"
     "js-build.patch"
)
sha256sums=('7fee32a41d1f1b9b3646f4d6b746882a3ec89766fa4e2f94d97646315514c50b'
            '347d8de2ed5c6529a0113086780ecdd0b21c0a167fa60a890ca18bbac0d99392')
options=(!strip !debug) # strip and debug aren't useful for python files and take forever

prepare() {
  cd python-plotly

  git clean -dfx
  patch -p1 < ../js-build.patch
}

build() {
  cd python-plotly/packages/python/plotly

  # Skip the dependency check as the version bounds on jupyterlab are too tight
  # and don't allow 4.x, which Arch currently ships.
  python -m build --wheel --no-isolation --skip-dependency-check
}

check() {
  cd python-plotly/packages/python/plotly
  pytest plotly/tests/test_core
}

package() {
  cd python-plotly/packages/python/plotly
  python -m installer --destdir="$pkgdir"/ dist/*.whl
  mv "${pkgdir}/usr/etc" "${pkgdir}"

  # symlink the path where static assets are installed, otherwise jupyterlab
  # will not be able to load the extension properly
  local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
  ln -s "$site_packages/jupyterlab_plotly/labextension/static" "$pkgdir/usr/share/jupyter/labextensions/jupyterlab-plotly/"

  install -Dm644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}