Install this version:
emerge -a =dev-python/lupa-2.8
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =dev-python/lupa-2.8
Or alternatively:
emerge --autounmask-write -a =dev-python/lupa-2.8
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
LUA_COMPAT=( lua5-{1..4} luajit )
PYTHON_COMPAT=( python3_{12..15} )
inherit distutils-r1 lua pypi
DESCRIPTION="Python wrapper around Lua and LuaJIT"
HOMEPAGE="
https://github.com/scoder/lupa
https://pypi.org/project/lupa/
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
REQUIRED_USE="${LUA_REQUIRED_USE} ${PYTHON_REQUIRED_USE}"
DEPEND="${LUA_DEPS}"
RDEPEND="${DEPEND}"
BDEPEND="
>=dev-python/cython-3.2.4[${PYTHON_USEDEP}]
virtual/pkgconfig
"
src_prepare() {
distutils-r1_src_prepare
mv lupa/tests . || die
sed -i "s/lupa.tests/tests/g" tests/test.py || die
}
python_configure_all() {
DISTUTILS_ARGS=(
--no-bundle
--with-cython
)
local -a config_items
_build_config_items() {
local incdir=$(lua_get_include_dir "${ELUA}")
local libpath=$(lua_get_shared_lib "${ELUA}")
local modname="${ELUA/./}"
config_items+=(
"dict(extra_objects=['${libpath}'], include_dirs=['${incdir}'], libversion='${modname}')"
)
}
lua_foreach_impl _build_config_items
local IFS=","
local configs="[${config_items[*]}]"
sed -i "s|^configs = get_lua_build_from_arguments()|configs = ${configs}|" setup.py || die
}
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
EPYTEST_DESELECT=(
# not a test case
tests/test.py::TestOverflowMixin
)
rm -rf lupa || die
epytest tests/test.py
}