diff options
Diffstat (limited to 'dev-python/pyrate-limiter/pyrate-limiter-3.1.0.ebuild')
-rw-r--r-- | dev-python/pyrate-limiter/pyrate-limiter-3.1.0.ebuild | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/dev-python/pyrate-limiter/pyrate-limiter-3.1.0.ebuild b/dev-python/pyrate-limiter/pyrate-limiter-3.1.0.ebuild new file mode 100644 index 000000000000..47947453dc89 --- /dev/null +++ b/dev-python/pyrate-limiter/pyrate-limiter-3.1.0.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( python3_{10..11} ) + +inherit distutils-r1 multiprocessing pypi + +DESCRIPTION="Python Rate-Limiter using Leaky-Bucket Algorimth Family" +HOMEPAGE=" + https://github.com/vutran1710/PyrateLimiter/ + https://pypi.org/project/pyrate-limiter/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + dev-python/filelock[${PYTHON_USEDEP}] + dev-python/redis[${PYTHON_USEDEP}] +" + +BDEPEND=" + test? ( + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + ) +" + +EPYTEST_DESELECT=( + # Optional dependency redis-py-cluster not packaged + "tests/test_02.py::test_redis_cluster" + # Python 3.11 is slightly faster, leading to a non-critical failure here + "tests/test_concurrency.py::test_concurrency[ProcessPoolExecutor-SQLiteBucket]" +) + +# TODO: package sphinx-copybutton +# distutils_enable_sphinx docs \ +# dev-python/sphinx-autodoc-typehints \ +# dev-python/furo \ +# dev-python/myst-parser \ +# dev-python/sphinxcontrib-apidoc +distutils_enable_tests pytest + +src_test() { + local redis_pid="${T}"/redis.pid + local redis_port=6379 + + # Spawn Redis itself for testing purposes + einfo "Spawning Redis" + einfo "NOTE: Port ${redis_port} must be free" + "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server" + daemonize yes + pidfile ${redis_pid} + port ${redis_port} + bind 127.0.0.1 ::1 + ${extra_conf} + EOF + + # Run the tests + distutils-r1_src_test + + # Clean up afterwards + kill "$(<"${redis_pid}")" || die +} + +python_test() { + epytest -n "$(makeopts_jobs)" --dist=worksteal +} |