app-misc/todoman - 4.7.0 (jacksonchen666)

Search

Install

Install this version:

emerge -a =app-misc/todoman-4.7.0

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =app-misc/todoman-4.7.0

Or alternatively:

emerge --autounmask-write -a =app-misc/todoman-4.7.0

Package Information

Description:
Simple, standards-based, command line todo (aka: task) manager.
Homepage:
https://todoman.readthedocs.io/ https://github.com/pimutils/todoman
License:
ISC

Ebuild Details

Version EAPI Keywords Slot
4.7.0 8 ~amd64 0
View Raw Ebuild
# 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
}

Inherited Eclasses

Dependencies

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}]
	')

BDEPEND

	$(python_gen_cond_dep '
		dev-python/setuptools-scm[${PYTHON_USEDEP}]
	')
	${DEPEND}