mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-11 16:13:21 -04:00
dev-python/typer: fix build system, add use flags
Signed-off-by: Oz Tiram <oz.tiram@gmail.com>
This commit is contained in:
@@ -9,6 +9,10 @@
|
||||
<name>Proxy Maintainers</name>
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="rich">Rich text output via <pkg>dev-python/rich</pkg></flag>
|
||||
<flag name="shell-detection">detect current shell with <pkg>dev-python/shellingham</pkg> for completions</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="github">tiangolo/typer</remote-id>
|
||||
<remote-id type="pypi">typer</remote-id>
|
||||
|
||||
@@ -1,27 +1,92 @@
|
||||
# Copyright 2025
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_1{1..3} )
|
||||
PYTHON_COMPAT=( python3_{11..13} )
|
||||
DISTUTILS_USE_PEP517=pdm-backend
|
||||
|
||||
DISTUTILS_USE_PEP517="hatchling"
|
||||
inherit distutils-r1 shell-completion pypi
|
||||
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
DESCRIPTION="Typer, build great CLIs. Easy to code. Based on Python type hints."
|
||||
|
||||
HOMEPAGE="https://typer.tiangolo.com/"
|
||||
DESCRIPTION="Build great CLIs. Easy to code. Based on Python type hints."
|
||||
HOMEPAGE="
|
||||
https://typer.tiangolo.com/
|
||||
https://github.com/tiangolo/typer
|
||||
https://pypi.org/project/typer/
|
||||
"
|
||||
SRC_URI="$(pypi_sdist_url "${PN}" "${PV}")"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
KEYWORDS="~amd64 ~arm64"
|
||||
|
||||
DEPEND="
|
||||
dev-python/shellingham[${PYTHON_USEDEP}]
|
||||
>=dev-python/click-8.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/typing-extensions-3.7.4.3[${PYTHON_USEDEP}]
|
||||
dev-python/rich[${PYTHON_USEDEP}]
|
||||
IUSE="+rich shell-detection test"
|
||||
|
||||
BDEPEND="
|
||||
test? (
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/coverage[${PYTHON_USEDEP}]
|
||||
dev-python/shellingham[${PYTHON_USEDEP}]
|
||||
')
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/click[${PYTHON_USEDEP}]
|
||||
dev-python/typing-extensions[${PYTHON_USEDEP}]
|
||||
rich? ( dev-python/rich[${PYTHON_USEDEP}] )
|
||||
shell-detection? ( dev-python/shellingham[${PYTHON_USEDEP}] )
|
||||
')
|
||||
"
|
||||
|
||||
RDEPEND="${DEPEND}"
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_test() {
|
||||
export TERMINAL_WIDTH=3000
|
||||
export _TYPER_FORCE_DISABLE_TERMINAL=1
|
||||
|
||||
distutils-r1_src_test "${@}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
distutils-r1_src_compile "${@}"
|
||||
|
||||
local shell
|
||||
for shell in bash zsh fish; do
|
||||
typer_gencomp ${shell}
|
||||
done
|
||||
}
|
||||
|
||||
typer_get_comp() {
|
||||
local COMPLETIONSDIR="${WORKDIR}/comp"
|
||||
local shell="$1"
|
||||
|
||||
case "${shell}" in
|
||||
bash) echo "${COMPLETIONSDIR}/${PN}" ;;
|
||||
zsh) echo "${COMPLETIONSDIR}/_${PN}" ;;
|
||||
fish) echo "${COMPLETIONSDIR}/${PN}.fish" ;;
|
||||
*) die "unknown shell: ${shell}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
typer_gencomp() {
|
||||
local COMPLETIONSDIR="${WORKDIR}/comp"
|
||||
mkdir "${COMPLETIONSDIR}" 2> /dev/null
|
||||
local shell="$1"
|
||||
|
||||
compfile="$(typer_get_comp "${@}")"
|
||||
|
||||
_TYPER_COMPLETE_TEST_DISABLE_SHELL_DETECTION=1 python -m typer --show-completion "${shell}" |
|
||||
sed 's/python -m //g ; s/_PYTHON _M //g ; s/python_m//g ; s/TYPER_COMPLETE/_TYPER_COMPLETE/' > "${compfile}" ||
|
||||
die "failed to generate ${shell} completion"
|
||||
|
||||
einfo "generated completion script for ${shell}: ${compfile}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
distutils-r1_src_install "${@}"
|
||||
|
||||
dobashcomp "$(typer_get_comp bash)"
|
||||
dozshcomp "$(typer_get_comp zsh)"
|
||||
dofishcomp "$(typer_get_comp fish)"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user