summaryrefslogtreecommitdiff
path: root/dev-python/aiohttp
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/aiohttp')
-rw-r--r--dev-python/aiohttp/Manifest2
-rw-r--r--dev-python/aiohttp/aiohttp-3.14.4.ebuild156
2 files changed, 158 insertions, 0 deletions
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index 217c13b6e6b5..a2ec83c7f1d1 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,2 +1,4 @@
DIST aiohttp-3.14.3.tar.gz 7971213 BLAKE2B cdad9e58dd0b88ea1acf393237d7fd62fae8d9f1b0c3142987c9abd9c8821212d81bcac70ad9923026d3444bbfaf33fceb4bf91b77fbc55f1fe2fc5fe6f5f311 SHA512 5130673c6e8e798a20d717a89e142e626e669bf0a0db1750299e69970daacf7602012b837190a9e038b6402fcb711dee388b027dfca82b5f769b421ebaf53be7
DIST aiohttp-3.14.3.tar.gz.provenance 9781 BLAKE2B dcf0d39420f1b17fa7d369d3033305a67457cd771e8d16170643589a09a887a2d42dff150dff3e0a3e5bcf5b94af54b8da8a7f40791d9bb2f4165222bd0cb336 SHA512 7e20f865b2a11e3aec9d4005f5f70cd116884868a10c1a49ab4eb7fe3efd30b0f00f6152087ca39115dd37cf9901f53618bf65cd1d4368963369928c6d924b88
+DIST aiohttp-3.14.4.tar.gz 8077839 BLAKE2B d1d78d6fdbe41f3d97ab2d7383c40a9a83a91b4f84a7081c49d0caea359c6451494d7e02f8293b2b3310dedafacd31ce6f2bc07b65e3a9665ea8955a798b4b90 SHA512 5598c1e529dec29e6c19f447b596a6ddfb10927cfdf7b24e628b7eb1e73c3d9b2cab7e6c6bdf67cd3b7efb20756ff09fed9d94ef95242a0a761ba015aa492f2e
+DIST aiohttp-3.14.4.tar.gz.provenance 9728 BLAKE2B bc76e1ee3b2954d73bfd233734c9fb0d8941a713bd459135895ac5cefc88cc142a04cda0bf7622785593bb65f19106aa5044a0d5a4b8ea2f97fec97f20571b34 SHA512 ac268c76a200f6afc1e1d4488c873f062b314021c0d772c35a1c65b63ac081472a9ac1b02bb8966b42303683ab79b5d2d0dc437c3a0597f20402b707bb5e9413
diff --git a/dev-python/aiohttp/aiohttp-3.14.4.ebuild b/dev-python/aiohttp/aiohttp-3.14.4.ebuild
new file mode 100644
index 000000000000..77dd22bfa6f6
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-3.14.4.ebuild
@@ -0,0 +1,156 @@
+# 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
+PYPI_VERIFY_REPO=https://github.com/aio-libs/aiohttp
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="HTTP client/server for asyncio"
+HOMEPAGE="
+ https://github.com/aio-libs/aiohttp/
+ https://pypi.org/project/aiohttp/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions test-rust"
+
+DEPEND="
+ native-extensions? (
+ net-libs/llhttp:=
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/aiodns-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/aiohappyeyeballs-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/aiosignal-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
+ >=dev-python/brotlicffi-1.2[${PYTHON_USEDEP}]
+ >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
+ >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.25.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/backports-zstd[${PYTHON_USEDEP}]
+ ' 3.12 3.13)
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
+ ' 3.12)
+"
+BDEPEND="
+ >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
+ native-extensions? (
+ >=dev-python/cython-3.1.1[${PYTHON_USEDEP}]
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/blockbuster[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/isal[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ dev-python/zlib-ng[${PYTHON_USEDEP}]
+ www-servers/gunicorn[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( pytest-{mock,xdist} )
+EPYTEST_RERUNS=5
+: ${EPYTEST_TIMEOUT:=180}
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unpin dependencies
+ sed -i -e 's:, < [0-9.]*::' pyproject.toml || die
+ # increase the timeout a little
+ sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
+ sed -i -e 's:-Werror::' Makefile || die
+ # remove vendored llhttp
+ rm -r vendor || die
+}
+
+python_configure() {
+ # check for .install-cython, so that we do this only once
+ if [[ ! -f .install-cython && ${EPYTHON} != pypy3 ]] &&
+ use native-extensions
+ then
+ # force rehashing first
+ emake requirements/.hash/cython.txt.hash
+ > .update-pip || die
+ > .install-cython || die
+ emake cythonize
+ fi
+}
+
+python_compile() {
+ # implicitly disabled for pypy3
+ if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ else
+ local -x AIOHTTP_USE_SYSTEM_DEPS=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # proxy is not packaged
+ tests/test_proxy_functional.py
+ # python_on_whales is not packaged
+ tests/autobahn/test_autobahn.py
+ # benchmarks
+ tests/test_benchmarks_client.py
+ tests/test_benchmarks_client_request.py
+ tests/test_benchmarks_client_ws.py
+ tests/test_benchmarks_cookiejar.py
+ tests/test_benchmarks_http_websocket.py
+ tests/test_benchmarks_http_writer.py
+ tests/test_benchmarks_web_fileresponse.py
+ tests/test_benchmarks_web_middleware.py
+ tests/test_benchmarks_web_response.py
+ tests/test_benchmarks_web_urldispatcher.py
+ )
+
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_client_session.py::test_client_session_timeout_zero
+ tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_nonzero_passed
+ tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_passed_to_create_connection
+ tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_zero_not_passed
+ tests/test_client_functional.py::test_invalid_idna
+ # broken by irrelevant deprecation warnings
+ tests/test_circular_imports.py::test_no_warnings
+ # https://github.com/aio-libs/aiohttp/issues/11400#issuecomment-4168569526
+ # https://github.com/python/cpython/issues/145599
+ # https://github.com/python/cpython/pull/145600
+ tests/test_cookie_helpers.py::test_parse_set_cookie_headers_uses_unquote_with_octal
+ # some warnings
+ tests/test_multipart.py::TestPartReader::test_read_decode_compressed_exceeds_max_size
+ )
+
+ # upstream unconditionally blocks building C extensions
+ # on PyPy3 but the test suite needs an explicit switch
+ if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ rm -rf aiohttp || die
+ epytest -m "not internal and not dev_mode"
+}