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.1.ebuild158
2 files changed, 160 insertions, 0 deletions
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index 47f36a6063a6..73029c9ff46a 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -2,3 +2,5 @@ DIST aiohttp-3.13.5.tar.gz 7858271 BLAKE2B 33b8f7f977a429fcd14401042f0be88c4cf68
DIST aiohttp-3.13.5.tar.gz.provenance 9326 BLAKE2B 0ed4219dc79a8b48cbc69f1a926a75210069f8382d61e217aaae6c8d51871c03c03336c812a9c7ecff0972ab070d6f2954482bced18edfaa71cf06cf8ef019bd SHA512 801915c3639db98f363a14e0e2e9e7b3e6e76d8e7988f43749580e4fa04404fe6b72f50370a07f37a922541d111361106d8fd8c4ffa4be326b130148a407c0e0
DIST aiohttp-3.14.0.tar.gz 7940674 BLAKE2B 259de386734fd64e6c9de5d7f0b2d71d4672c24c0ea38a434ca8f1e8bb0ad1ea4e4c0d5e11ecc22dbb95f8e2ff51c89163c1a1ab5ce49463e8b5a3a1b3785be9 SHA512 7888be5d7c285efb84e38cebd3b4dcd8dd199ba654df5faac87d254f9a423d7b5300d195e2d99b196c3d1d53fd8f0cadbcf368ce985e2269ec9c31400e40c036
DIST aiohttp-3.14.0.tar.gz.provenance 9781 BLAKE2B 705c780ee0b659d2e3e2ce8450c1ddc9759f6d03d702996c0754340d9aee0e303fa91a78b6f2922d4932c779d80903c8a73b5734c813a562de23b31aced1e2b3 SHA512 b3ec14b7961fe8be81e67ae556dd89ad85efd16a962ef8a3169a0f8d6f454aa177485a9f8f7ea5eb42d3a754e98c6eea58e18300f4c7b6a28d82a0111a411ae7
+DIST aiohttp-3.14.1.tar.gz 7955794 BLAKE2B b8b66efa9410871de7cce19427b53329460740c32bc46595933f9af21d6807493f6b5549217d993227f50b92850c5ee1a8a4b652b740e8770889ad0991789716 SHA512 8cba5eff6e62f29fc2f600b30c840febc2a6b947134d6e194a2dcd873972ada2d48cbdaa01216b53cc3127b973b0f30ef1ac69713081b5e1ed2efbfd654fdebc
+DIST aiohttp-3.14.1.tar.gz.provenance 9456 BLAKE2B 9cccbaff0ee8d38a6a68704890c8af1d48673b434d52d4fed9fe4045dba84486e764016b1a55d648d81bc266d20dc031cc47798b0a7aa87e6b5b44a22a1b3502 SHA512 267af513e2492462a2da7ac48fb71a47d84efc5129e4b84c79dc86b20f823232e1c199eeb3e278cee9469af9d20a344a920e8c63c7087a2a87b8bfdd0e5ac61e
diff --git a/dev-python/aiohttp/aiohttp-3.14.1.ebuild b/dev-python/aiohttp/aiohttp-3.14.1.ebuild
new file mode 100644
index 000000000000..1f568e4f0d5e
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-3.14.1.ebuild
@@ -0,0 +1,158 @@
+# 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? (
+ $(python_gen_cond_dep '
+ net-libs/llhttp:=
+ ' 'python3*')
+ )
+"
+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.17.0[${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}]
+ dev-python/pkgconfig[${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}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python3*')
+ 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
+
+ # 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() {
+ local -x AIOHTTP_USE_SYSTEM_DEPS=1
+ # implicitly disabled for pypy3
+ if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=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"
+}