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)"
+}

Reply via email to