commit: 8ab7a1d0df0d51d2dd5fd3f519844ef5269ef31c
Author: Oz Tiram <oz.tiram <AT> gmail <DOT> com>
AuthorDate: Mon May 5 08:37:13 2025 +0000
Commit: Oz N Tiram <oz.tiram <AT> gmail <DOT> com>
CommitDate: Mon May 5 08:39:37 2025 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=8ab7a1d0
dev-python/typer: fix build system, add use flags
Signed-off-by: Oz Tiram <oz.tiram <AT> gmail.com>
dev-python/typer/metadata.xml | 4 ++
dev-python/typer/typer-0.15.3.ebuild | 95 ++++++++++++++++++++++++++++++------
2 files changed, 84 insertions(+), 15 deletions(-)
diff --git a/dev-python/typer/metadata.xml b/dev-python/typer/metadata.xml
index 79d13253e..3e3c35e14 100644
--- a/dev-python/typer/metadata.xml
+++ b/dev-python/typer/metadata.xml
@@ -9,6 +9,10 @@
<name>Proxy Maintainers</name>
<email>[email protected]</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>
diff --git a/dev-python/typer/typer-0.15.3.ebuild
b/dev-python/typer/typer-0.15.3.ebuild
index 0453ec984..70c0e3d29 100644
--- a/dev-python/typer/typer-0.15.3.ebuild
+++ b/dev-python/typer/typer-0.15.3.ebuild
@@ -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)"
+}