# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{10..14} ) DISTUTILS_USE_PEP517=setuptools # changelogs: # https://todoman.readthedocs.io/en/stable/changelog.html inherit pypi distutils-r1 optfeature shell-completion DESCRIPTION="Simple, standards-based, command line todo (aka: task) manager. " HOMEPAGE=" https://todoman.readthedocs.io/ https://github.com/pimutils/todoman " LICENSE="ISC" SLOT="0" KEYWORDS="~amd64" DEPEND=" ${PYTHON_DEPS} $(python_gen_cond_dep ' dev-python/click[${PYTHON_USEDEP}] >=dev-python/click-log-0.2.1[${PYTHON_USEDEP}] dev-python/humanize[${PYTHON_USEDEP}] >=dev-python/icalendar-4.0.3[${PYTHON_USEDEP}] dev-python/parsedatetime[${PYTHON_USEDEP}] dev-python/python-dateutil[${PYTHON_USEDEP}] dev-python/pyxdg[${PYTHON_USEDEP}] dev-python/urwid[${PYTHON_USEDEP}] ') " #RDEPEND=" # ${RDEPEND} #" BDEPEND=" $(python_gen_cond_dep ' dev-python/setuptools-scm[${PYTHON_USEDEP}] ') ${DEPEND} " # test? ( # dev-python/freezegun # dev-python/hypothesis # dev-python/pytest # dev-python/pytz # ) #IUSE="test" #distutils_enable_tests pytest # FAILED tests/test_ui.py::test_todo_editor_list - AttributeError: 'bool' object has no attribute 'name' # https://github.com/pimutils/todoman/issues/600 RESTRICT="test" # XXX: upstream the build backend patch? PATCHES=( "${FILESDIR}/specify-build-backend.patch" "${FILESDIR}/disable-test-coverage.patch" ) # dev-python/sphinx-click is ::guru distutils_enable_sphinx "docs/source" \ dev-python/sphinx-click \ dev-python/sphinx-rtd-theme python_compile_all() { if use doc; then sphinx_compile_all # i took this trick from python-utils-r1's build_sphinx ${EPYTHON} -m sphinx.cmd.build -b man docs/source docs/build/man || die fi } python_install_all() { if use doc; then doman docs/build/man/todo.1 einstalldocs fi newbashcomp contrib/completion/bash/_todo todo dozshcomp contrib/completion/zsh/_todo dofishcomp contrib/completion/fish/todo.fish } python_test() { # https://github.com/pimutils/todoman/issues/404#issuecomment-643789777 export TZ=UTC distutils-r1_python_test } pkg_postinst() { if ! use doc; then elog "Man pages require enabling the doc USE flag due to extra required dependencies," elog "one of them only available in ::guru." fi optfeature "repl command support (in ::guru)" dev-python/click-repl }