diff options
| author | Michał Górny <mgorny@gentoo.org> | 2024-08-24 08:19:59 +0200 |
|---|---|---|
| committer | Michał Górny <mgorny@gentoo.org> | 2024-08-24 08:41:22 +0200 |
| commit | 850b8b3fe049dd8ed847f728bb1bc45083efc9f5 (patch) | |
| tree | a8f9750a0d0c5dfa7fe97263b267ac2e32735b48 /dev-python | |
| parent | 55926352d1d25b48dfacf88d4546ee373406a411 (diff) | |
| download | gentoo-850b8b3fe049dd8ed847f728bb1bc45083efc9f5.tar.gz gentoo-850b8b3fe049dd8ed847f728bb1bc45083efc9f5.tar.bz2 gentoo-850b8b3fe049dd8ed847f728bb1bc45083efc9f5.zip | |
dev-python/aiohttp: Remove old
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python')
| -rw-r--r-- | dev-python/aiohttp/Manifest | 4 | ||||
| -rw-r--r-- | dev-python/aiohttp/aiohttp-3.10.1-r1.ebuild | 118 | ||||
| -rw-r--r-- | dev-python/aiohttp/aiohttp-3.10.2.ebuild | 112 | ||||
| -rw-r--r-- | dev-python/aiohttp/aiohttp-3.10.3.ebuild | 112 | ||||
| -rw-r--r-- | dev-python/aiohttp/aiohttp-3.10.4.ebuild | 112 | ||||
| -rw-r--r-- | dev-python/aiohttp/files/aiohttp-3.10.1-py313.patch | 97 |
6 files changed, 0 insertions, 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 |
