public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-python/aiohttp/files/, dev-python/aiohttp/
@ 2021-06-19 12:01 Michał Górny
  0 siblings, 0 replies; 3+ messages in thread
From: Michał Górny @ 2021-06-19 12:01 UTC (permalink / raw
  To: gentoo-commits

commit:     449b6535e1bc097415f34b1930b24c843960015d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 19 11:15:34 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 19 12:01:24 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=449b6535

dev-python/aiohttp: Backport the switch to app-arch/brotli

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 ...iohttp-3.7.4.ebuild => aiohttp-3.7.4-r1.ebuild} |  8 +-
 .../aiohttp/files/aiohttp-3.7.4-brotli.patch       | 97 ++++++++++++++++++++++
 2 files changed, 103 insertions(+), 2 deletions(-)

diff --git a/dev-python/aiohttp/aiohttp-3.7.4.ebuild b/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild
similarity index 95%
rename from dev-python/aiohttp/aiohttp-3.7.4.ebuild
rename to dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild
index f90f64776cf..d35289bb49a 100644
--- a/dev-python/aiohttp/aiohttp-3.7.4.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_COMPAT=( python3_{8..9} )
 
 inherit distutils-r1 multiprocessing
 
@@ -27,8 +27,8 @@ BDEPEND="
 	dev-python/cython[${PYTHON_USEDEP}]
 	test? (
 		!!dev-python/pytest-aiohttp
+		app-arch/brotli[python,${PYTHON_USEDEP}]
 		dev-python/async_generator[${PYTHON_USEDEP}]
-		dev-python/brotlipy[${PYTHON_USEDEP}]
 		dev-python/freezegun[${PYTHON_USEDEP}]
 		www-servers/gunicorn[${PYTHON_USEDEP}]
 		dev-python/pytest-forked[${PYTHON_USEDEP}]
@@ -40,6 +40,10 @@ BDEPEND="
 	)
 "
 
+PATCHES=(
+	"${FILESDIR}"/aiohttp-3.7.4-brotli.patch
+)
+
 DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
 
 distutils_enable_tests pytest

diff --git a/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch b/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch
new file mode 100644
index 00000000000..1e8add00799
--- /dev/null
+++ b/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch
@@ -0,0 +1,97 @@
+From a7424ddf490fc51244d427543cc9683b5427102b Mon Sep 17 00:00:00 2001
+From: Felix Yan <felixonmars@archlinux.org>
+Date: Fri, 19 Jul 2019 21:32:55 +0800
+Subject: [PATCH] Use Brotli instead of brotlipy (#3803)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+brotlipy is stuck at brotli 0.6 and upstream is inactive. Let's switch
+to the official binding which is up-to-date.
+
+(rebased for 3.7.x by Michał Górny)
+---
+ aiohttp/http_parser.py     | 25 +++++++++++++++++++++----
+ docs/client_quickstart.rst |  2 +-
+ docs/index.rst             |  2 +-
+ setup.py                   |  2 +-
+ 4 files changed, 24 insertions(+), 7 deletions(-)
+
+diff --git a/aiohttp/http_parser.py b/aiohttp/http_parser.py
+index 71ba815a..56ecead4 100644
+--- a/aiohttp/http_parser.py
++++ b/aiohttp/http_parser.py
+@@ -821,10 +821,27 @@ class DeflateBuffer:
+         if encoding == "br":
+             if not HAS_BROTLI:  # pragma: no cover
+                 raise ContentEncodingError(
+-                    "Can not decode content-encoding: brotli (br). "
+-                    "Please install `brotlipy`"
+-                )
+-            self.decompressor = brotli.Decompressor()
++                    'Can not decode content-encoding: brotli (br). '
++                    'Please install `Brotli`')
++
++            class BrotliDecoder:
++                # Supports both 'brotlipy' and 'Brotli' packages
++                # since they share an import name. The top branches
++                # are for 'brotlipy' and bottom branches for 'Brotli'
++                def __init__(self) -> None:
++                    self._obj = brotli.Decompressor()
++
++                def decompress(self, data: bytes) -> bytes:
++                    if hasattr(self._obj, "decompress"):
++                        return self._obj.decompress(data)
++                    return self._obj.process(data)
++
++                def flush(self) -> bytes:
++                    if hasattr(self._obj, "flush"):
++                        return self._obj.flush()
++                    return b""
++
++            self.decompressor = BrotliDecoder()  # type: Any
+         else:
+             zlib_mode = 16 + zlib.MAX_WBITS if encoding == "gzip" else zlib.MAX_WBITS
+             self.decompressor = zlib.decompressobj(wbits=zlib_mode)
+diff --git a/docs/client_quickstart.rst b/docs/client_quickstart.rst
+index 95588cb6..b9146584 100644
+--- a/docs/client_quickstart.rst
++++ b/docs/client_quickstart.rst
+@@ -174,7 +174,7 @@ The ``gzip`` and ``deflate`` transfer-encodings are automatically
+ decoded for you.
+ 
+ You can enable ``brotli`` transfer-encodings support,
+-just install  `brotlipy <https://github.com/python-hyper/brotlipy>`_.
++just install  `Brotli <https://pypi.org/project/Brotli>`_.
+ 
+ JSON Request
+ ============
+diff --git a/docs/index.rst b/docs/index.rst
+index 13fe723b..4091c001 100644
+--- a/docs/index.rst
++++ b/docs/index.rst
+@@ -52,7 +52,7 @@ Installing speedups altogether
+ ------------------------------
+ 
+ The following will get you ``aiohttp`` along with :term:`chardet`,
+-:term:`aiodns` and ``brotlipy`` in one bundle. No need to type
++:term:`aiodns` and ``Brotli`` in one bundle. No need to type
+ separate commands anymore!
+ 
+ .. code-block:: bash
+diff --git a/setup.py b/setup.py
+index 54462ba7..7a184817 100644
+--- a/setup.py
++++ b/setup.py
+@@ -137,7 +137,7 @@ args = dict(
+     extras_require={
+         "speedups": [
+             "aiodns",
+-            "brotlipy",
++            "Brotli",
+             "cchardet",
+         ],
+     },
+-- 
+2.32.0
+


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/aiohttp/files/, dev-python/aiohttp/
@ 2023-10-26 19:45 Michał Górny
  0 siblings, 0 replies; 3+ messages in thread
From: Michał Górny @ 2023-10-26 19:45 UTC (permalink / raw
  To: gentoo-commits

commit:     1a399723a6caaab37a7ae544eac8e7d7ee48d841
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 26 19:03:30 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Oct 26 19:45:12 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a399723

dev-python/aiohttp: Backport brotlicffi support

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/aiohttp/aiohttp-3.8.6-r1.ebuild         | 111 +++++++++++++++++++++
 .../aiohttp/files/aiohttp-3.8.6-brotlicffi.patch   |  46 +++++++++
 2 files changed, 157 insertions(+)

diff --git a/dev-python/aiohttp/aiohttp-3.8.6-r1.ebuild b/dev-python/aiohttp/aiohttp-3.8.6-r1.ebuild
new file mode 100644
index 000000000000..626addcde05a
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-3.8.6-r1.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2023 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_{10..12} pypy3 )
+
+inherit distutils-r1 multiprocessing 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 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+	>=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
+	>=dev-python/async-timeout-4.0.0_alpha3[${PYTHON_USEDEP}]
+	>=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
+	dev-python/brotlicffi[${PYTHON_USEDEP}]
+	<dev-python/charset-normalizer-4[${PYTHON_USEDEP}]
+	>=dev-python/charset-normalizer-2.0[${PYTHON_USEDEP}]
+	>=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
+	>=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
+	>=dev-python/yarl-1.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+	dev-python/cython[${PYTHON_USEDEP}]
+	test? (
+		dev-python/freezegun[${PYTHON_USEDEP}]
+		www-servers/gunicorn[${PYTHON_USEDEP}]
+		dev-python/pytest-forked[${PYTHON_USEDEP}]
+		dev-python/pytest-mock[${PYTHON_USEDEP}]
+		dev-python/pytest-xdist[${PYTHON_USEDEP}]
+		dev-python/re-assert[${PYTHON_USEDEP}]
+		test-rust? (
+			dev-python/trustme[${PYTHON_USEDEP}]
+		)
+	)
+"
+
+DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
+
+distutils_enable_tests pytest
+
+src_prepare() {
+	local PATCHES=(
+		"${FILESDIR}/${P}-brotlicffi.patch"
+	)
+
+	# increase the timeout a little
+	sed -e '/abs_tol=/s/0.001/0.01/' -i tests/test_helpers.py || die
+
+	# xfail_strict fails on py3.10
+	sed -i -e '/--cov/d' -e '/xfail_strict/d' setup.cfg || die
+
+	# which(1)... also -Werror, sigh
+	sed -i -e 's:which:command -v:' -e 's:-Werror::' Makefile || die
+
+	distutils-r1_src_prepare
+}
+
+python_configure_all() {
+	# workaround missing files
+	mkdir requirements tools || die
+	> requirements/cython.txt || die
+	> tools/gen.py || die
+	chmod +x tools/gen.py || die
+	# force rehashing first
+	emake requirements/.hash/cython.txt.hash
+	> .update-pip || die
+	> .install-cython || die
+	emake cythonize
+}
+
+python_test() {
+	local EPYTEST_IGNORE=(
+		# proxy is not packaged
+		tests/test_proxy_functional.py
+	)
+
+	local EPYTEST_DESELECT=(
+		# Internet
+		tests/test_client_session.py::test_client_session_timeout_zero
+		# broken by irrelevant deprecation warnings
+		tests/test_circular_imports.py::test_no_warnings
+		# TODO
+		tests/test_client_session.py::test_request_tracing_url_params
+	)
+
+	case ${EPYTHON} in
+		pypy3)
+			# upstream unconditionally blocks building C extensions
+			# on PyPy3 but the test suite needs an explicit switch,
+			# sigh
+			local -x AIOHTTP_NO_EXTENSIONS=1
+			;;
+	esac
+
+	local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+	local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin,pytest_forked
+	rm -rf aiohttp || die
+	epytest -n "$(makeopts_jobs)" --forked
+}

diff --git a/dev-python/aiohttp/files/aiohttp-3.8.6-brotlicffi.patch b/dev-python/aiohttp/files/aiohttp-3.8.6-brotlicffi.patch
new file mode 100644
index 000000000000..20e3c7ea0e5d
--- /dev/null
+++ b/dev-python/aiohttp/files/aiohttp-3.8.6-brotlicffi.patch
@@ -0,0 +1,46 @@
+From 4d60891531637aed2fdc50a5dff4809d7d9b3f32 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Wed, 20 Sep 2023 15:28:37 +0200
+Subject: [PATCH] [3.9] Support brotlicffi alternatively to brotli (#7611)
+ (#7620)
+
+---
+ aiohttp/http_parser.py    | 5 ++++-
+ tests/test_http_parser.py | 5 ++++-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/aiohttp/http_parser.py b/aiohttp/http_parser.py
+index 91e01f43..521ff5db 100644
+--- a/aiohttp/http_parser.py
++++ b/aiohttp/http_parser.py
+@@ -49,7 +49,10 @@ else:
+     from typing_extensions import Literal
+ 
+ try:
+-    import brotli
++    try:
++        import brotlicffi as brotli
++    except ImportError:
++        import brotli
+ 
+     HAS_BROTLI = True
+ except ImportError:  # pragma: no cover
+diff --git a/tests/test_http_parser.py b/tests/test_http_parser.py
+index 4b185c9e..dc373ea8 100644
+--- a/tests/test_http_parser.py
++++ b/tests/test_http_parser.py
+@@ -21,7 +21,10 @@ from aiohttp.http_parser import (
+ )
+ 
+ try:
+-    import brotli
++    try:
++        import brotlicffi as brotli
++    except ImportError:
++        import brotli
+ except ImportError:
+     brotli = None
+ 
+-- 
+2.42.0
+


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/aiohttp/files/, dev-python/aiohttp/
@ 2024-08-24  6:41 Michał Górny
  0 siblings, 0 replies; 3+ messages in thread
From: Michał Górny @ 2024-08-24  6:41 UTC (permalink / raw
  To: gentoo-commits

commit:     850b8b3fe049dd8ed847f728bb1bc45083efc9f5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 24 06:19:59 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug 24 06:41:22 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=850b8b3f

dev-python/aiohttp: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/aiohttp/Manifest                        |   4 -
 dev-python/aiohttp/aiohttp-3.10.1-r1.ebuild        | 118 ---------------------
 dev-python/aiohttp/aiohttp-3.10.2.ebuild           | 112 -------------------
 dev-python/aiohttp/aiohttp-3.10.3.ebuild           | 112 -------------------
 dev-python/aiohttp/aiohttp-3.10.4.ebuild           | 112 -------------------
 .../aiohttp/files/aiohttp-3.10.1-py313.patch       |  97 -----------------
 6 files changed, 555 deletions(-)

diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index 28a995369cfa..1e1ca709506f 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,6 +1,2 @@
-DIST aiohttp-3.10.1.tar.gz 7517572 BLAKE2B 4400cbda0997f3602ace4aae7ba153dcb515d49d8d3431fab087ebba3126d8fa82121998b1d8e36e2b86c9144a5c124ac16c12520cd47fea7956e6c04e2b4e55 SHA512 59f743ce7821b46da531eb576bbf20409407726b6ba78be9615f715ab2404cc3668120d2ec1566dcab7017ba36bf1753a3365b81097da53685c93ba013c3c94a
-DIST aiohttp-3.10.2.tar.gz 7520621 BLAKE2B a8e44ba6292e614ac9a7b15649a9838e354ca17bb14df61ccf9b1f2c0ce647e5786933701c85105a493b11e6a4c3edcb80e6ba43a501c4600a3b7b699c5c64f6 SHA512 61baa7a264a2bf38624a339b8e0ddc066aba7cb3da13d8e24fc705d4bf098796f198354c7b913a12ee3c8bc0c5468313432dad51f343c8dfc8efef020b385c88
-DIST aiohttp-3.10.3.tar.gz 7521618 BLAKE2B 2b5ff621d5b58f5c09060ee2e245fc758dde81741fa98ea9ee2215ea7f0f511f2732111af84df5d14075284376a619c3025fd6790d9a7c460d7e0b9a2cb8d8f2 SHA512 fabf06bb8556b5870be37c76c50664289227d79a0f322aef830ebbcbdd2429d4499a767c74f53c83b1622cbb8278c36294777baae84ee5b86fab652d7fcd5c7c
-DIST aiohttp-3.10.4.tar.gz 7524267 BLAKE2B dc79b89c215ea7c9dcaca674f84b1c13787e80bf32f791439958ad021a2abc650d3e69fef7cc6bad9455a82222ae4abed2392c8d4b3a98fb5fcb1e7c8242bcb8 SHA512 060286794f09e38dda3d5bdb6f5c0bd4cf8bc1eaaf58bf403a526f8afb50f53cb880d9ece1de70f4fb88d5e72357beceba86f33b9e77e748425ae636552406b8
 DIST aiohttp-3.10.5.tar.gz 7524360 BLAKE2B 57ca70d1a075ae7f9ba9b86a19be52e05e88518e28baefb16e852ce83707bfbad9cb06af08a2cea3371349649e85ab6dfb3426ee2759a4e84456041373575a8b SHA512 bb932d24b3ce332d8a232ef3bf1fbe9b0a7df9986ad5e81d5f41bc31a81204653e5250c4f0ee77a9eeb53d404bd907b12977d31caae54c00ef0146350629e750
 DIST aiohttp-3.9.5.tar.gz 7504841 BLAKE2B f051ee88d45952219f72d542f1c6d0cc33c699c6c5fb5dbe3bc054ee4d0e03121b219c8c8524fd1236a8b878329b0997b8afe07d6c66074102d4a2052a8738ff SHA512 da11468a2f131275593395b052700a99cf79055a32d48327dca0f58547ad30add8cd0a375dbd831e2f06fe7a739183251e4ad69c16f3d141799bbed45a8a5dc4

diff --git a/dev-python/aiohttp/aiohttp-3.10.1-r1.ebuild b/dev-python/aiohttp/aiohttp-3.10.1-r1.ebuild
deleted file mode 100644
index 3a7db9402219..000000000000
--- a/dev-python/aiohttp/aiohttp-3.10.1-r1.ebuild
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright 1999-2024 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_{10..13} pypy3 )
-
-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="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test-rust"
-
-RDEPEND="
-	>=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}]
-	>=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}]
-	>=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
-	>=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
-	dev-python/brotlicffi[${PYTHON_USEDEP}]
-	>=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
-	>=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
-	>=dev-python/yarl-1.0[${PYTHON_USEDEP}]
-	$(python_gen_cond_dep '
-		<dev-python/async-timeout-5[${PYTHON_USEDEP}]
-		>=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
-	' 3.10)
-"
-BDEPEND="
-	dev-python/cython[${PYTHON_USEDEP}]
-	test? (
-		dev-python/freezegun[${PYTHON_USEDEP}]
-		www-servers/gunicorn[${PYTHON_USEDEP}]
-		dev-python/pytest-mock[${PYTHON_USEDEP}]
-		dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
-		dev-python/pytest-xdist[${PYTHON_USEDEP}]
-		dev-python/re-assert[${PYTHON_USEDEP}]
-		$(python_gen_cond_dep '
-			dev-python/time-machine[${PYTHON_USEDEP}]
-		' 'python3*')
-		test-rust? (
-			dev-python/trustme[${PYTHON_USEDEP}]
-		)
-	)
-"
-
-DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
-	local PATCHES=(
-		# https://github.com/aio-libs/aiohttp/pull/8623
-		# https://github.com/aio-libs/aiohttp/pull/8648
-		"${FILESDIR}/${P}-py313.patch"
-	)
-
-	# increase the timeout a little
-	sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
-	# xfail_strict fails on py3.10
-	sed -i -e '/--cov/d' -e '/xfail_strict/d' setup.cfg || die
-	sed -i -e 's:-Werror::' Makefile || die
-
-	distutils-r1_src_prepare
-}
-
-python_configure_all() {
-	# workaround missing files
-	mkdir tools || die
-	> requirements/cython.txt || die
-	> tools/gen.py || die
-	chmod +x tools/gen.py || die
-	# force rehashing first
-	emake requirements/.hash/cython.txt.hash
-	> .update-pip || die
-	> .install-cython || die
-	emake cythonize
-}
-
-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
-	)
-
-	local EPYTEST_DESELECT=(
-		# Internet
-		tests/test_client_session.py::test_client_session_timeout_zero
-		# broken by irrelevant deprecation warnings
-		tests/test_circular_imports.py::test_no_warnings
-	)
-
-	case ${EPYTHON} in
-		pypy3)
-			# upstream unconditionally blocks building C extensions
-			# on PyPy3 but the test suite needs an explicit switch,
-			# sigh
-			local -x AIOHTTP_NO_EXTENSIONS=1
-			;;
-	esac
-
-	local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
-	local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin
-	rm -rf aiohttp || die
-	epytest -m "not internal and not dev_mode" \
-		-p rerunfailures --reruns=5
-}

diff --git a/dev-python/aiohttp/aiohttp-3.10.2.ebuild b/dev-python/aiohttp/aiohttp-3.10.2.ebuild
deleted file mode 100644
index 47c2e84f4087..000000000000
--- a/dev-python/aiohttp/aiohttp-3.10.2.ebuild
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright 1999-2024 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_{10..13} pypy3 )
-
-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="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test-rust"
-
-RDEPEND="
-	>=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}]
-	>=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}]
-	>=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
-	>=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
-	dev-python/brotlicffi[${PYTHON_USEDEP}]
-	>=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
-	>=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
-	>=dev-python/yarl-1.0[${PYTHON_USEDEP}]
-	$(python_gen_cond_dep '
-		<dev-python/async-timeout-5[${PYTHON_USEDEP}]
-		>=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
-	' 3.10)
-"
-BDEPEND="
-	dev-python/cython[${PYTHON_USEDEP}]
-	test? (
-		dev-python/freezegun[${PYTHON_USEDEP}]
-		www-servers/gunicorn[${PYTHON_USEDEP}]
-		dev-python/pytest-mock[${PYTHON_USEDEP}]
-		dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
-		dev-python/pytest-xdist[${PYTHON_USEDEP}]
-		dev-python/re-assert[${PYTHON_USEDEP}]
-		$(python_gen_cond_dep '
-			dev-python/time-machine[${PYTHON_USEDEP}]
-		' 'python3*')
-		test-rust? (
-			dev-python/trustme[${PYTHON_USEDEP}]
-		)
-	)
-"
-
-DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
-	# increase the timeout a little
-	sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
-	# xfail_strict fails on py3.10
-	sed -i -e '/--cov/d' -e '/xfail_strict/d' setup.cfg || die
-	sed -i -e 's:-Werror::' Makefile || die
-
-	distutils-r1_src_prepare
-}
-
-python_configure_all() {
-	# workaround missing files
-	mkdir tools || die
-	> requirements/cython.txt || die
-	> tools/gen.py || die
-	chmod +x tools/gen.py || die
-	# force rehashing first
-	emake requirements/.hash/cython.txt.hash
-	> .update-pip || die
-	> .install-cython || die
-	emake cythonize
-}
-
-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
-	)
-
-	local EPYTEST_DESELECT=(
-		# Internet
-		tests/test_client_session.py::test_client_session_timeout_zero
-		# broken by irrelevant deprecation warnings
-		tests/test_circular_imports.py::test_no_warnings
-	)
-
-	case ${EPYTHON} in
-		pypy3)
-			# upstream unconditionally blocks building C extensions
-			# on PyPy3 but the test suite needs an explicit switch,
-			# sigh
-			local -x AIOHTTP_NO_EXTENSIONS=1
-			;;
-	esac
-
-	local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
-	local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin
-	rm -rf aiohttp || die
-	epytest -m "not internal and not dev_mode" \
-		-p rerunfailures --reruns=5
-}

diff --git a/dev-python/aiohttp/aiohttp-3.10.3.ebuild b/dev-python/aiohttp/aiohttp-3.10.3.ebuild
deleted file mode 100644
index 47c2e84f4087..000000000000
--- a/dev-python/aiohttp/aiohttp-3.10.3.ebuild
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright 1999-2024 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_{10..13} pypy3 )
-
-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="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test-rust"
-
-RDEPEND="
-	>=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}]
-	>=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}]
-	>=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
-	>=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
-	dev-python/brotlicffi[${PYTHON_USEDEP}]
-	>=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
-	>=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
-	>=dev-python/yarl-1.0[${PYTHON_USEDEP}]
-	$(python_gen_cond_dep '
-		<dev-python/async-timeout-5[${PYTHON_USEDEP}]
-		>=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
-	' 3.10)
-"
-BDEPEND="
-	dev-python/cython[${PYTHON_USEDEP}]
-	test? (
-		dev-python/freezegun[${PYTHON_USEDEP}]
-		www-servers/gunicorn[${PYTHON_USEDEP}]
-		dev-python/pytest-mock[${PYTHON_USEDEP}]
-		dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
-		dev-python/pytest-xdist[${PYTHON_USEDEP}]
-		dev-python/re-assert[${PYTHON_USEDEP}]
-		$(python_gen_cond_dep '
-			dev-python/time-machine[${PYTHON_USEDEP}]
-		' 'python3*')
-		test-rust? (
-			dev-python/trustme[${PYTHON_USEDEP}]
-		)
-	)
-"
-
-DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
-	# increase the timeout a little
-	sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
-	# xfail_strict fails on py3.10
-	sed -i -e '/--cov/d' -e '/xfail_strict/d' setup.cfg || die
-	sed -i -e 's:-Werror::' Makefile || die
-
-	distutils-r1_src_prepare
-}
-
-python_configure_all() {
-	# workaround missing files
-	mkdir tools || die
-	> requirements/cython.txt || die
-	> tools/gen.py || die
-	chmod +x tools/gen.py || die
-	# force rehashing first
-	emake requirements/.hash/cython.txt.hash
-	> .update-pip || die
-	> .install-cython || die
-	emake cythonize
-}
-
-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
-	)
-
-	local EPYTEST_DESELECT=(
-		# Internet
-		tests/test_client_session.py::test_client_session_timeout_zero
-		# broken by irrelevant deprecation warnings
-		tests/test_circular_imports.py::test_no_warnings
-	)
-
-	case ${EPYTHON} in
-		pypy3)
-			# upstream unconditionally blocks building C extensions
-			# on PyPy3 but the test suite needs an explicit switch,
-			# sigh
-			local -x AIOHTTP_NO_EXTENSIONS=1
-			;;
-	esac
-
-	local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
-	local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin
-	rm -rf aiohttp || die
-	epytest -m "not internal and not dev_mode" \
-		-p rerunfailures --reruns=5
-}

diff --git a/dev-python/aiohttp/aiohttp-3.10.4.ebuild b/dev-python/aiohttp/aiohttp-3.10.4.ebuild
deleted file mode 100644
index 47c2e84f4087..000000000000
--- a/dev-python/aiohttp/aiohttp-3.10.4.ebuild
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright 1999-2024 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_{10..13} pypy3 )
-
-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="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test-rust"
-
-RDEPEND="
-	>=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}]
-	>=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}]
-	>=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
-	>=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
-	dev-python/brotlicffi[${PYTHON_USEDEP}]
-	>=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
-	>=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
-	>=dev-python/yarl-1.0[${PYTHON_USEDEP}]
-	$(python_gen_cond_dep '
-		<dev-python/async-timeout-5[${PYTHON_USEDEP}]
-		>=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
-	' 3.10)
-"
-BDEPEND="
-	dev-python/cython[${PYTHON_USEDEP}]
-	test? (
-		dev-python/freezegun[${PYTHON_USEDEP}]
-		www-servers/gunicorn[${PYTHON_USEDEP}]
-		dev-python/pytest-mock[${PYTHON_USEDEP}]
-		dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
-		dev-python/pytest-xdist[${PYTHON_USEDEP}]
-		dev-python/re-assert[${PYTHON_USEDEP}]
-		$(python_gen_cond_dep '
-			dev-python/time-machine[${PYTHON_USEDEP}]
-		' 'python3*')
-		test-rust? (
-			dev-python/trustme[${PYTHON_USEDEP}]
-		)
-	)
-"
-
-DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
-	# increase the timeout a little
-	sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
-	# xfail_strict fails on py3.10
-	sed -i -e '/--cov/d' -e '/xfail_strict/d' setup.cfg || die
-	sed -i -e 's:-Werror::' Makefile || die
-
-	distutils-r1_src_prepare
-}
-
-python_configure_all() {
-	# workaround missing files
-	mkdir tools || die
-	> requirements/cython.txt || die
-	> tools/gen.py || die
-	chmod +x tools/gen.py || die
-	# force rehashing first
-	emake requirements/.hash/cython.txt.hash
-	> .update-pip || die
-	> .install-cython || die
-	emake cythonize
-}
-
-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
-	)
-
-	local EPYTEST_DESELECT=(
-		# Internet
-		tests/test_client_session.py::test_client_session_timeout_zero
-		# broken by irrelevant deprecation warnings
-		tests/test_circular_imports.py::test_no_warnings
-	)
-
-	case ${EPYTHON} in
-		pypy3)
-			# upstream unconditionally blocks building C extensions
-			# on PyPy3 but the test suite needs an explicit switch,
-			# sigh
-			local -x AIOHTTP_NO_EXTENSIONS=1
-			;;
-	esac
-
-	local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
-	local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin
-	rm -rf aiohttp || die
-	epytest -m "not internal and not dev_mode" \
-		-p rerunfailures --reruns=5
-}

diff --git a/dev-python/aiohttp/files/aiohttp-3.10.1-py313.patch b/dev-python/aiohttp/files/aiohttp-3.10.1-py313.patch
deleted file mode 100644
index 03299a43a3c5..000000000000
--- a/dev-python/aiohttp/files/aiohttp-3.10.1-py313.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 02961d854c8f4277219699cd66970d1e90b371d4 Mon Sep 17 00:00:00 2001
-From: Steve Repsher <steverep@users.noreply.github.com>
-Date: Wed, 7 Aug 2024 07:51:50 -0400
-Subject: [PATCH] Fix monkey patches for pathlib changes in Python 3.13 (#8619)
-
-(cherry picked from commit d1c8dfbb11ea9989446e295fcee350255d5461c0)
----
- CHANGES/8551.contrib.rst        | 1 +
- tests/test_web_urldispatcher.py | 8 ++++----
- 2 files changed, 5 insertions(+), 4 deletions(-)
- create mode 100644 CHANGES/8551.contrib.rst
-
-diff --git a/tests/test_web_urldispatcher.py b/tests/test_web_urldispatcher.py
-index a799f4ba146..de44ea0648c 100644
---- a/tests/test_web_urldispatcher.py
-+++ b/tests/test_web_urldispatcher.py
-@@ -434,10 +434,10 @@ def mock_iterdir(self: pathlib.Path) -> Generator[pathlib.Path, None, None]:
-             raise PermissionError()
-         return real_iterdir(self)
- 
--    def mock_is_dir(self: pathlib.Path) -> bool:
-+    def mock_is_dir(self: pathlib.Path, **kwargs: Any) -> bool:
-         if my_dir.samefile(self.parent):
-             raise PermissionError()
--        return real_is_dir(self)
-+        return real_is_dir(self, **kwargs)
- 
-     monkeypatch.setattr("pathlib.Path.iterdir", mock_iterdir)
-     monkeypatch.setattr("pathlib.Path.is_dir", mock_is_dir)
-@@ -554,8 +554,8 @@ async def test_access_mock_special_resource(
-     real_result = my_special.stat()
-     real_stat = pathlib.Path.stat
- 
--    def mock_stat(self: pathlib.Path) -> os.stat_result:
--        s = real_stat(self)
-+    def mock_stat(self: pathlib.Path, **kwargs: Any) -> os.stat_result:
-+        s = real_stat(self, **kwargs)
-         if os.path.samestat(s, real_result):
-             mock_mode = S_IFIFO | S_IMODE(s.st_mode)
-             s = os.stat_result([mock_mode] + list(s)[1:])
-From 75ff8e12d0c95af9347bb16de785d028930f7228 Mon Sep 17 00:00:00 2001
-From: Steve Repsher <steverep@users.noreply.github.com>
-Date: Thu, 8 Aug 2024 10:55:35 -0400
-Subject: [PATCH] Fix response to circular symlinks with Python v3.13 (#8642)
-
-Co-authored-by: J. Nick Koston <nick@koston.org>
-(cherry picked from commit e494277110e40fb5c1cc65a1558dfea7d8ae7ca8)
----
- CHANGES/8565.bugfix.rst      | 1 +
- aiohttp/web_fileresponse.py  | 4 +++-
- aiohttp/web_urldispatcher.py | 9 +++++----
- 3 files changed, 9 insertions(+), 5 deletions(-)
- create mode 100644 CHANGES/8565.bugfix.rst
-
-diff --git a/aiohttp/web_fileresponse.py b/aiohttp/web_fileresponse.py
-index 7fc5b3d787f..d8bbbe08993 100644
---- a/aiohttp/web_fileresponse.py
-+++ b/aiohttp/web_fileresponse.py
-@@ -191,7 +191,9 @@ async def prepare(self, request: "BaseRequest") -> Optional[AbstractStreamWriter
-             file_path, st, file_encoding = await loop.run_in_executor(
-                 None, self._get_file_path_stat_encoding, accept_encoding
-             )
--        except FileNotFoundError:
-+        except OSError:
-+            # Most likely to be FileNotFoundError or OSError for circular
-+            # symlinks in python >= 3.13, so respond with 404.
-             self.set_status(HTTPNotFound.status_code)
-             return await super().prepare(request)
- 
-diff --git a/aiohttp/web_urldispatcher.py b/aiohttp/web_urldispatcher.py
-index 688946626fd..558fb7d0c9b 100644
---- a/aiohttp/web_urldispatcher.py
-+++ b/aiohttp/web_urldispatcher.py
-@@ -80,9 +80,9 @@
-     BaseDict = dict
- 
- CIRCULAR_SYMLINK_ERROR = (
--    OSError
-+    (OSError,)
-     if sys.version_info < (3, 10) and sys.platform.startswith("win32")
--    else RuntimeError
-+    else (RuntimeError,) if sys.version_info < (3, 13) else ()
- )
- 
- YARL_VERSION: Final[Tuple[int, ...]] = tuple(map(int, yarl_version.split(".")[:2]))
-@@ -694,8 +694,9 @@ def _resolve_path_to_response(self, unresolved_path: Path) -> StreamResponse:
-             else:
-                 file_path = unresolved_path.resolve()
-                 file_path.relative_to(self._directory)
--        except (ValueError, CIRCULAR_SYMLINK_ERROR) as error:
--            # ValueError for relative check; RuntimeError for circular symlink.
-+        except (ValueError, *CIRCULAR_SYMLINK_ERROR) as error:
-+            # ValueError is raised for the relative check. Circular symlinks
-+            # raise here on resolving for python < 3.13.
-             raise HTTPNotFound() from error
- 
-         # if path is a directory, return the contents if permitted. Note the


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-08-24  6:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-26 19:45 [gentoo-commits] repo/gentoo:master commit in: dev-python/aiohttp/files/, dev-python/aiohttp/ Michał Górny
  -- strict thread matches above, loose matches on Subject: below --
2024-08-24  6:41 Michał Górny
2021-06-19 12:01 Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox