# Maintainer: Alistair Francis <alistair@alistair23.me>
pkgname=py3-dash
_pyname=dash
pkgver=2.18.2
pkgrel=0
pkgdesc="A Python framework for building reactive web-apps. Developed by Plotly."
url="https://plotly.com/dash/"
license="MIT"
depends="
	python3
	py3-nest_asyncio
	py3-retrying
	py3-typing-extensions
	py3-importlib-metadata
	py3-fire
	py3-flask
	py3-plotly
	"
makedepends="
	npm
	nodejs
	git
	python3-dev
	py3-gpep517
	py3-installer
	py3-poetry-core
	py3-wheel
	py3-pip
	py3-coloredlogs
	py3-numpy
	py3-pyarrow
	py3-pandas
	py3-cffi
	py3-lxml
	py3-cryptography
	py3-dash-bootstrap-components
	py3-jupyter_core
	py3-jupyter-packaging
	py3-psutil
	py3-jupyterlab
	py3-jupyterlab_server
	jupyter-server
	"
checkdepends="
	py3-pytest
	py3-setuptools
	py3-pexpect
	py3-mock
	black
	"
source="
	py3-dash-$pkgver.tar.gz::https://github.com/plotly/dash/archive/refs/tags/v$pkgver.tar.gz
	0001-dash-html-components-Remove-failing-es-check.patch
	"
builddir="$srcdir"/$_pyname-$pkgver
# 32-bit systems run out of memory, riscv64 timesout on the CI runners
# and s390, ppc64le and loongarch aren't supported
arch="all !s390x !x86 !armhf !armv7 !loongarch64 !riscv64 !ppc64le"

build() {
	export YARN_ENABLE_IMMUTABLE_INSTALLS=false

	npm ci
	python3 setup.py build

	# Get the dash commands working
	python3 setup.py develop --user
	export PATH="$PATH:$HOME/.local/bin/"

	npm run build.sequential
}

check() {
	# These tests use the broswer or missing packages
	# and don't work in the Alpine build environment
	pytest tests/unit \
		--ignore=tests/unit/test_app_runners.py \
		--ignore=tests/unit/test_browser.py \
		--ignore=tests/unit/test_configs.py \
		--ignore=tests/unit/test_resources.py \
		--ignore=tests/unit/test_old_imports.py \
		--deselect=tests/unit/development/test_component_loader.py::test_loadcomponents_from_generated_class
}

package() {
	python3 setup.py install --root="$pkgdir" --skip-build
}

sha512sums="
5b11b52a75f847b44e2f0ce5caa3acf01db684a81faee1bd44edfd8d9bb2ea075b59cc72c1db54215eeb8d999a5ab32e4d46a38695b2bd92837cf27bb6bcc658  py3-dash-2.18.2.tar.gz
58988224d8f7d833bb896e52055e12f23c24b30189096d7db0deebf4038b695dce510383f408e17f6e833a345257ee44909d3fd67af474341eaad4b48c2e5359  0001-dash-html-components-Remove-failing-es-check.patch
"
