mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-23 18:38:08 -07:00
72 lines
1.9 KiB
Bash
72 lines
1.9 KiB
Bash
# Copyright 1999-2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
DISTUTILS_USE_PEP517=hatchling
|
|
PYTHON_COMPAT=( python3_{12..13} )
|
|
|
|
inherit distutils-r1
|
|
|
|
DESCRIPTION="Signature generator for Python programs"
|
|
HOMEPAGE="
|
|
https://mkdocstrings.github.io/griffe/
|
|
https://github.com/mkdocstrings/griffe/
|
|
https://pypi.org/project/griffe/
|
|
"
|
|
# Tests need files absent from the PyPI tarballs
|
|
SRC_URI="
|
|
https://github.com/mkdocstrings/griffe/archive/${PV}.tar.gz
|
|
-> ${P}.gh.tar.gz
|
|
"
|
|
|
|
LICENSE="ISC"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~arm64 ~riscv"
|
|
|
|
# pdm-backend used via hatchling hooks
|
|
BDEPEND="
|
|
dev-python/pdm-backend[${PYTHON_USEDEP}]
|
|
dev-python/uv-dynamic-versioning[${PYTHON_USEDEP}]
|
|
dev-vcs/git
|
|
test? (
|
|
>=dev-python/griffe-inherited-docstrings-1.1.2[${PYTHON_USEDEP}]
|
|
>=dev-python/jsonschema-4.17[${PYTHON_USEDEP}]
|
|
>=dev-python/mkdocstrings-0.28.0[${PYTHON_USEDEP}]
|
|
)
|
|
"
|
|
|
|
EPYTEST_PLUGINS=( pytest-gitconfig )
|
|
distutils_enable_tests pytest
|
|
|
|
EPYTEST_DESELECT=(
|
|
# fragile to installed packages
|
|
# (failed on PySide2 for me)
|
|
tests/test_stdlib.py::test_fuzzing_on_stdlib
|
|
)
|
|
|
|
src_compile() {
|
|
# The build system combines hatchling with git hooks from pdm-backend
|
|
# and uv-dynamic-versioning. It does not respect PDM_BUILD_SCM_VERSION,
|
|
# and uv-dynamic-versioning does not work without a git repository
|
|
# at all, even though it does not use it for anything.
|
|
git config --global user.email "you@example.com" || die
|
|
git config --global user.name "Your Name" || die
|
|
git init || die
|
|
git commit --allow-empty -m "force version" || die
|
|
git tag "${PV}" || die
|
|
|
|
distutils-r1_src_compile
|
|
}
|
|
|
|
python_compile() {
|
|
# This packages is a horrendous mess. It's split into three packages,
|
|
# and tests require all of them.
|
|
local pkg
|
|
for pkg in packages/griffe{lib,cli} .; do
|
|
pushd "${pkg}" >/dev/null || die
|
|
distutils-r1_python_compile
|
|
popd >/dev/null || die
|
|
done
|
|
}
|