Install this version:
emerge -a =app-office/beancount-3.2.3
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =app-office/beancount-3.2.3
Or alternatively:
emerge --autounmask-write -a =app-office/beancount-3.2.3
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=meson-python
PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1 pypi
DESCRIPTION="A double-entry accounting system that uses text files as input"
HOMEPAGE="
https://beancount.github.io
https://github.com/beancount/beancount
"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
RDEPEND="
dev-python/click[${PYTHON_USEDEP}]
dev-python/python-dateutil[${PYTHON_USEDEP}]
dev-python/regex[${PYTHON_USEDEP}]
"
# meson.build resolves bison/flex via find_program() and generates the
# parser at build time, so the v2 hand-rolled grammar/lexer rebuild dance
# is gone — these are pure build tools now.
BDEPEND="
>=sys-devel/bison-3.8.0
>=sys-devel/flex-2.6.4
"
# The suite uses only stock pytest + unittest (self.subTest is built-in,
# not pytest-subtests), so load no third-party plugins.
EPYTEST_PLUGINS=()
EPYTEST_DESELECT=(
# Both call find_repository_root() to locate the top-level examples/
# ledgers, which live in the source tree only — not installed as part
# of the Python package, so they cannot pass against the install tree.
projects/export_test.py::TestExport::test_export_basic
scripts/check_examples_test.py::TestCheckExamples::test_example_files
)
distutils_enable_tests pytest
python_test() {
# Run against the installed copy from an empty dir: the C _parser
# extension is built into the meson install tree, not in-place in
# ${S}, so collecting tests from the source tree fails to import it.
cd "${T}" || die
epytest --pyargs beancount
}
dev-python/click[] dev-python/python-dateutil[] dev-python/regex[]
>=sys-devel/bison-3.8.0 >=sys-devel/flex-2.6.4