# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_USE_PEP517=no
DISTUTILS_EXT=1
PYTHON_COMPAT=( python3_{12..14} )

inherit distutils-r1

AMD64_WHEEL="pymupdf_layout-${PV}-cp310-abi3-manylinux_2_28_x86_64.whl"
ARM64_WHEEL="pymupdf_layout-${PV}-cp310-abi3-manylinux_2_28_aarch64.whl"

case ${ARCH} in
	amd64) MY_WHEEL=${AMD64_WHEEL} ;;
	arm64) MY_WHEEL=${ARM64_WHEEL} ;;
esac
MUPDF_PV=1.28.3

DESCRIPTION="PyMuPDF document-layout analysis extension (binary wheel)"
HOMEPAGE="
	https://pymupdf.readthedocs.io/en/latest/pymupdf-layout/
	https://github.com/ArtifexSoftware/pymupdf_layout
	https://pypi.org/project/pymupdf-layout/
"
SRC_URI="
	amd64? ( https://files.pythonhosted.org/packages/03/65/6b92d25678c64839fb2066ee98d6d1f164d820ba045d83c77e79021cda98/${AMD64_WHEEL} )
	arm64? ( https://files.pythonhosted.org/packages/75/82/6cbf0331e148db48bf609c165dbe900cf3c1158546c5d09d4ad7fd4d6b17/${ARM64_WHEEL} )
"
S="${WORKDIR}"

LICENSE="AGPL-3"
SLOT="0"
KEYWORDS="-* ~amd64 ~arm64"
RESTRICT="bindist mirror strip"

RDEPEND="
	~dev-python/PyMuPDF-${PV}[${PYTHON_USEDEP}]
	~dev-python/mupdf-${MUPDF_PV}:=[${PYTHON_USEDEP}]
	dev-python/pyyaml[${PYTHON_USEDEP}]
	dev-python/numpy[${PYTHON_USEDEP}]
	sci-libs/onnxruntime[python,${PYTHON_USEDEP}]
	dev-python/networkx[${PYTHON_USEDEP}]
"
BDEPEND="
	dev-util/patchelf
	dev-python/installer[${PYTHON_USEDEP}]
"

QA_PREBUILT="
	usr/lib/python3.*/site-packages/pymupdf/_features.so
	usr/lib/python3.*/site-packages/pymupdf/_tgif.so
"

src_unpack() {
	mkdir -p "${S}/wheel" || die
	cp "${DISTDIR}/${MY_WHEEL}" "${S}/wheel/" || die
}

python_install() {
	${EPYTHON} -m installer --destdir="${D}" "${S}/wheel/${MY_WHEEL}" || die

	# Retarget the wheel to the exact-version source-built MuPDF libraries.
	local mod
	for mod in _features.so _tgif.so; do
		patchelf --replace-needed "libmupdf.so.${PV#1.}" \
			"libmupdf.so.${MUPDF_PV}" "${D}$(python_get_sitedir)/pymupdf/${mod}" || die
		patchelf --replace-needed "libmupdfcpp.so.${PV#1.}" \
			"libmupdfcpp.so.${MUPDF_PV}" "${D}$(python_get_sitedir)/pymupdf/${mod}" || die
	done
	python_optimize
}