summaryrefslogtreecommitdiff
path: root/dev-python/uvloop
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/uvloop')
-rw-r--r--dev-python/uvloop/Manifest2
-rw-r--r--dev-python/uvloop/metadata.xml13
-rw-r--r--dev-python/uvloop/uvloop-0.22.1.ebuild88
3 files changed, 103 insertions, 0 deletions
diff --git a/dev-python/uvloop/Manifest b/dev-python/uvloop/Manifest
new file mode 100644
index 000000000000..42b1f8a7f988
--- /dev/null
+++ b/dev-python/uvloop/Manifest
@@ -0,0 +1,2 @@
+DIST uvloop-0.19.0-cython3.patch.xz 6352 BLAKE2B 4a7056299d3d430ce5b6986d43ba4f20726ae4f9635042a43e2995ea373ed53ddce6af2eaa32202f81f80a27bd1d814e635a6be091b5f751bcf6825fd2c8e88a SHA512 aeda541f1327860d23b31ffda9923270a56a8311ec86b06f3bd653478bff591372106e8848af5229e3ad298e950b4c3a728ab4dd9056219b8afe55f5dd58ee3d
+DIST uvloop-0.22.1.tar.gz 2443250 BLAKE2B 2974895dbad08aa987ce3228f6c4b143926b698b0b2131019f1ee5a21541b21c59d7ee60dcdfc693e34916d802945eeea9ab93004eb627005f77f048809891d0 SHA512 9bbb87c7ec344c254178c3fff322fe772cf4ebced9c45514860ed004242dba6e7f3b7774ed6c4ded36f915f8b4809747f0bace8b00338ac15dbe57f09b985ed2
diff --git a/dev-python/uvloop/metadata.xml b/dev-python/uvloop/metadata.xml
new file mode 100644
index 000000000000..6e43b446b554
--- /dev/null
+++ b/dev-python/uvloop/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ uvloop is a fast, drop-in replacement of the built-in asyncio
+ event loop. uvloop is implemented in Cython and uses libuv under
+ the hood.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/uvloop/uvloop-0.22.1.ebuild b/dev-python/uvloop/uvloop-0.22.1.ebuild
new file mode 100644
index 000000000000..0406e02caf1f
--- /dev/null
+++ b/dev-python/uvloop/uvloop-0.22.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Ultra-fast implementation of asyncio event loop on top of libuv"
+HOMEPAGE="
+ https://github.com/magicstack/uvloop/
+ https://pypi.org/project/uvloop/
+"
+SRC_URI+="
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-0.19.0-cython3.patch.xz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 -riscv ~sparc x86"
+IUSE="examples"
+
+DEPEND="
+ >=dev-libs/libuv-1.11.0:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-python/cython-3.0[${PYTHON_USEDEP}]
+ dev-python/pkg-resources[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/pyopenssl-22.0.0[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( aiohttp )
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ rm -r vendor || die
+ cat <<-EOF >> setup.cfg || die
+ [build_ext]
+ use_system_libuv=True
+ cython_always=True
+ EOF
+
+ # force cythonization
+ rm uvloop/loop.c || die
+
+ # don't append -O2... however, it's not splitting args correctly,
+ # so let's pass something safe
+ export UVLOOP_OPT_CFLAGS=-Wall
+
+ # https://github.com/MagicStack/uvloop/issues/701
+ sed -i -e 's:3, 14:3, 13:' tests/test_tcp.py || die
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # linting
+ tests/test_sourcecode.py
+ )
+ local EPYTEST_DESELECT=(
+ # unhappy about sandbox injecting its envvars
+ tests/test_process.py::Test_UV_Process::test_process_env_2
+ tests/test_process.py::Test_AIO_Process::test_process_env_2
+ # crashes on assertion
+ # https://github.com/MagicStack/uvloop/issues/574
+ tests/test_cython.py::TestCythonIntegration::test_cython_coro_is_coroutine
+ # Internet
+ tests/test_dns.py::Test_UV_DNS::test_getaddrinfo_{8,9}
+ )
+
+ rm -rf uvloop || die
+ epytest -s
+}
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}