# Contributor: Isaac Dunham <ibid.ag@gmail.com>
# Contributor: Aiden Grossman <agrossman154@yahoo.com>
# Maintainer:
pkgname=py3-matplotlib
_pyname=matplotlib
pkgver=3.7.3
pkgrel=2
pkgdesc="Python3 library for plots"
url="https://matplotlib.org"
arch="all"
license="Python-2.0"
depends="
	py3-cairo
	py3-certifi
	py3-contourpy
	py3-cycler
	py3-dateutil
	py3-fonttools
	py3-kiwisolver
	py3-numpy
	py3-packaging
	py3-parsing
	py3-pillow
	py3-tz
	python3-tkinter
	"
makedepends="
	freetype-dev
	gfortran
	libpng-dev
	py3-gobject3
	py3-gpep517
	py3-numpy-dev
	py3-pybind11-dev
	py3-setuptools
	py3-setuptools_scm
	py3-wheel
	python3-dev
	qhull-dev
	tk-dev
	"
checkdepends="
	font-opensans
	gtk+3.0-dev
	py3-pytest
	py3-pytest-xdist
	"
subpackages="$pkgname-pyc"
source="https://github.com/matplotlib/$_pyname/archive/v$pkgver/matplotlib-v$pkgver.tar.gz
	$pkgname-images-$pkgver.tar.gz::https://github.com/boomanaiden154/matplotlib-test-images/releases/download/matplotlib-$pkgver/matplotlib-images.tar.gz
	freetype.patch
	test.patch
	test-x86.patch
	pytest8.patch
	"
builddir="$srcdir/$_pyname-$pkgver"

replaces="py-matplotlib" # Backwards compatibility
provides="py-matplotlib=$pkgver-r$pkgrel" # Backwards compatibility

# matplotlib-images does not contains loongarch64's test-images
# It can be added after alpine support loongarch64
case "$CARCH" in
	loongarch64) options="$options !check" ;;
esac

prepare() {
	default_prepare

	# Use system freetype and qhull
	sed -e 's|#system_freetype = False|system_freetype = True|' -e 's|#system_qhull = False|system_qhull = True|' mplsetup.cfg.template > mplsetup.cfg
	# Install tests
	sed -i 's|#tests = False|tests = True|' mplsetup.cfg
	# Copy images from freetype mpl images repo

	if [ -d ../matplotlib-images/matplotlib-$CARCH ]; then
		cp -r ../matplotlib-images/matplotlib-$CARCH/* lib/matplotlib/tests/baseline_images/
	fi
}

build() {
	export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
	gpep517 build-wheel \
		--wheel-dir .dist \
		--output-fd 3 3>&1 >&2
}

check() {
	python3 -m venv --clear --without-pip --system-site-packages test-env
	test-env/bin/python3 -m installer .dist/*.whl
	# Four disabled test sets fail completely, more investigation needed
	test-env/bin/python3 -m pytest -n $JOBS -v --pyargs matplotlib -m "not (nonfunctional or $CARCH)" \
		--ignore-glob="*test_mathtext.py" \
		--ignore-glob="*test_backend_nbagg.py" \
		-k "not test_pcolornearestunits[png] and not test_invisible_Line_rendering"
}

package() {
	python3 -m installer --destdir="$pkgdir" .dist/*.whl

	# Remove tests from installation
	find "$pkgdir" -type d -name tests -exec rm -r {} \+
}

sha512sums="
9714098cd5c18bc8ab8f115ec1fdb5dcadd6f08f6bd6a17068050b272287ab0d9544fae98688b27555d91281614198aefeb54a72c68977c227818b24ff77613e  matplotlib-v3.7.3.tar.gz
0fbf06713a51121fb1651e52e3a7d965a14ed3e22f527e7d42bdad180a333864468f2cb1bc6e6b32e4bb3c8954df7aeca5369a0f098c12cf2211b2bb3dfc0195  py3-matplotlib-images-3.7.3.tar.gz
ea21b9ac0253253b657c542e31f3c8dc3161419d7c42aa92036b98338a27b59d1cc5d7f699c8cbaf0302f63a4f730301044a8d11cdee8f9fb8027a80a12a394b  freetype.patch
3b4044bb701a1127ef9766782b78a61b68d3e93fff6d1eabf33323eb8e1724fafc684a7021a1dbcc1b2e6374676d30ec984af83d8841bb0d78ef1250742fbfca  test.patch
0fcc506b509a93b58d225753806a1b330f7907c7e5fee3fe78226c8ce16cf86f98c1662d16b17833e1bd7f3e2c4c9cb80d4451fbc173e487e2629dbccd3c2828  test-x86.patch
1c01836a72bff0206210315888666d778ff44e49a171e4806fa41d9df728e74c61ffda9b53aa50bd81e3b9cd1707be11d44ce26046e82664d9b1dc36700fa64a  pytest8.patch
"
