guru/app-office/beancount/beancount-2.3.6.ebuild
Anna (cybertailor) Vyalkova bb0aae8ad3
*/*: disable py3.10
Python 3.10 target is scheduled for removal in Gentoo:
https://public-inbox.gentoo.org/gentoo-dev/e6ca9f1f4ababb79ab2a3d005c39b483c3ecef6e.camel@gentoo.org/

Sphinx 8.2.0 already dropped support for CPython 3.10 and PyPy 3.10,
leading to multiple CI failures in ::guru.

We can safely remove this target, because GURU is "experimental" and
does not have stable keywords.

Let's not remove "pypy3" right now because
a) There are not many packages using it.
b) So we can see which packages supported PyPy 3.10, and test them with
   PyPy 3.11.

Closes: https://github.com/gentoo/guru/pull/291
Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
2025-02-21 17:51:14 +05:00

113 lines
2.4 KiB
Bash

# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..12} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_SINGLE_IMPL=1
inherit distutils-r1 toolchain-funcs
DESCRIPTION="A double-entry accounting system that uses text files as input"
HOMEPAGE="
https://beancount.github.io
https://github.com/beancount/beancount
"
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="
$(python_gen_cond_dep '
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
dev-python/bottle[${PYTHON_USEDEP}]
dev-python/chardet[${PYTHON_USEDEP}]
dev-python/google-api-python-client[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
dev-python/ply[${PYTHON_USEDEP}]
dev-python/python-dateutil[${PYTHON_USEDEP}]
dev-python/python-magic[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
')
"
BDEPEND="
sys-devel/bison
sys-devel/flex
"
EPYTEST_DESELECT=( scripts/setup_test.py )
distutils_enable_tests pytest
src_prepare() {
distutils-r1_src_prepare
# remove test deps from 'install_requires'
sed "/pytest/d" -i setup.py || die
# we'll regenerate C sources
rm ${PN}/parser/grammar.{c,h} || die
rm ${PN}/parser/lexer.{c,h} || die
# repair tests
sed "/def find_repository_root/a\ return '${S}'" \
-i ${PN}/utils/test_utils.py || die
sed "s/\[PROGRAM\]/['${EPYTHON}', PROGRAM]/" \
-i ${PN}/tools/treeify_test.py || die
sed "/DATA_DIR =/c\ DATA_DIR = '${S}/${PN}/utils/file_type_testdata'" \
-i ${PN}/utils/file_type_test.py || die
}
src_configure() {
tc-export CC
}
python_compile() {
distutils-r1_python_compile
# keep in sync with hashsrc.py, otherwise expect test failures
local csources=(
decimal.{c,h}
grammar.y
lexer.l
macros.h
parser.{c,h}
tokens.h
)
for file in "${csources[@]}"; do
cp ${PN}/parser/${file} "${BUILD_DIR}"/install$(python_get_sitedir)/${PN}/parser || die
done
}
src_compile() {
local mymakeflags=(
PYCONFIG="$(python_get_PYTHON_CONFIG)"
)
emake "${mymakeflags[@]}" ${PN}/parser/grammar.c
emake "${mymakeflags[@]}" ${PN}/parser/lexer.c
distutils-r1_src_compile
use test && \
emake "${mymakeflags[@]}" ${PN}/parser/tokens_test
}
python_test(){
cd "${T}" || die
epytest --pyargs ${PN}
}
src_test() {
local mymakeflags=(
PYCONFIG="$(python_get_PYTHON_CONFIG)"
)
emake "${mymakeflags[@]}" ctest
distutils-r1_src_test
}