diff options
Diffstat (limited to 'dev-python/anyio')
-rw-r--r-- | dev-python/anyio/Manifest | 4 | ||||
-rw-r--r-- | dev-python/anyio/anyio-4.8.0-r2.ebuild (renamed from dev-python/anyio/anyio-4.8.0-r1.ebuild) | 11 | ||||
-rw-r--r-- | dev-python/anyio/anyio-4.8.0-r3.ebuild | 89 | ||||
-rw-r--r-- | dev-python/anyio/files/anyio-4.8.0-py314.patch | 124 |
4 files changed, 220 insertions, 8 deletions
diff --git a/dev-python/anyio/Manifest b/dev-python/anyio/Manifest index 67d0f406f073..fa8b0f97a78f 100644 --- a/dev-python/anyio/Manifest +++ b/dev-python/anyio/Manifest @@ -1,3 +1,5 @@ +AUX anyio-4.8.0-py314.patch 4855 BLAKE2B 180bdf9b8b4528e10c8349384fde0900039aa2fa2bf85d0de9066730c5aad4f5d5ac99ed9a6f3a70092c63930c37cc0ea268e6d4a18e3bbf628baf1e03bd03dc SHA512 6baea920efa72782940ffc7614013bf15edd7a4a0a3cc907c4b05ff162546327c49f4520e9d458ff50205ecf28defdcd3808ea1973255a763339c2c4fba8f179 DIST anyio-4.8.0.tar.gz 181126 BLAKE2B f33df2d5df27ff05d553544e1c4f351fa20d6f551d23b80d5f0beaa658c145c7b13d7d7da1c4c3c17e97ecfc595b3662dbc1c7bedbbda7471d1004090599c557 SHA512 939ae76eff4c91979f1ce2bdf3ef1f05f488931e7ae357632090855125656721099732a9a1e167755677757c2125287842e49fce19302f90615bd79b41cc9e67 -EBUILD anyio-4.8.0-r1.ebuild 2166 BLAKE2B 82b42bdf2ddc5c0a342c9c2ccf512e7f252cc8cfb4e0fe20d336bac5d7985210b2442c5bcf0b4a1d8a32d37173f13ce03dd70992fa504983221b91601b33a328 SHA512 2081e1b5f6ee29d08af69c6e3bbd539862613061a249e31ba43d1618e6acf3b26d2f590137fde4afedf10f295def05e0dd1194a95dced3acc4c1fa0e01d4a6eb +EBUILD anyio-4.8.0-r2.ebuild 2072 BLAKE2B 5c2387e5b7030330113efe49936da9f03a141b2b31bfd01e3af31988578661fc534f63249f18507386d22e57e682b8e91162b13947fb7a705a38d49396f56069 SHA512 bd2989709c728033c41ccf42b55c12c8ba8c73b2d9aec7ea4b691aee683db52bcd691058bd56800d5b3e097238e4d9f7e71fae68723abe56cacbcc3d1a72f802 +EBUILD anyio-4.8.0-r3.ebuild 2570 BLAKE2B 1b0e67356a9ff5bd14475d2ba48a6925943a82dda6c07906b5f98a350e4adeb11a445e01629359055ee1dd90e53982547efbb376f2cc43b88f987a42ed29414b SHA512 24c25d56fe57605d893eef98a944300eed620c5a33a781f1d0692cf029b647cc2c355cabb8b2c0ae61a8f80169d80eb24e2c0cc9e3d71e39c1be0d2e688fce97 MISC metadata.xml 1422 BLAKE2B 63acae587e7088e33ee5eb93a2a222899e54a5eb511118794f88e7c5a012d10983eb925427688a0b509b094e30a9cc9acc5f0c1765ea73e569161e0c30722000 SHA512 e0b540d5d739b7673a5a8682477f209f8b3648aad06a1c0610543a2e9dcbeca1cb1e52212d8088a5987a1c3bc3152cc5984ad5b5d0706fcdb5866b22de07b1eb diff --git a/dev-python/anyio/anyio-4.8.0-r1.ebuild b/dev-python/anyio/anyio-4.8.0-r2.ebuild index 35da9e946fac..714d8c17ab48 100644 --- a/dev-python/anyio/anyio-4.8.0-r1.ebuild +++ b/dev-python/anyio/anyio-4.8.0-r2.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} ) +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) inherit distutils-r1 pypi @@ -23,11 +23,8 @@ RDEPEND=" >=dev-python/sniffio-1.1[${PYTHON_USEDEP}] >=dev-python/truststore-0.9.1[${PYTHON_USEDEP}] $(python_gen_cond_dep ' - >=dev-python/exceptiongroup-1.2.0[${PYTHON_USEDEP}] - ' 3.10) - $(python_gen_cond_dep ' >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}] - ' 3.{10..12}) + ' 3.{11..12}) " # On amd64, let's get more test coverage by dragging in uvloop, but let's # not bother on other arches where uvloop may not be supported. @@ -40,11 +37,11 @@ BDEPEND=" dev-python/trustme[${PYTHON_USEDEP}] $(python_gen_cond_dep ' >=dev-python/trio-0.26.1[${PYTHON_USEDEP}] - ' 3.{10..13}) + ' 3.{11..13}) amd64? ( $(python_gen_cond_dep ' >=dev-python/uvloop-0.21.0_beta1[${PYTHON_USEDEP}] - ' python3_{10..13}) + ' python3_{11..13}) ) ) " diff --git a/dev-python/anyio/anyio-4.8.0-r3.ebuild b/dev-python/anyio/anyio-4.8.0-r3.ebuild new file mode 100644 index 000000000000..6ebf7a291939 --- /dev/null +++ b/dev-python/anyio/anyio-4.8.0-r3.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Compatibility layer for multiple asynchronous event loop implementations" +HOMEPAGE=" + https://github.com/agronholm/anyio/ + https://pypi.org/project/anyio/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/idna-2.8[${PYTHON_USEDEP}] + >=dev-python/sniffio-1.1[${PYTHON_USEDEP}] + >=dev-python/truststore-0.9.1[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}] + ' 3.{11..12}) +" +# On amd64, let's get more test coverage by dragging in uvloop, but let's +# not bother on other arches where uvloop may not be supported. +BDEPEND=" + >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}] + test? ( + >=dev-python/exceptiongroup-1.2.0[${PYTHON_USEDEP}] + >=dev-python/hypothesis-4.0[${PYTHON_USEDEP}] + >=dev-python/psutil-5.9[${PYTHON_USEDEP}] + dev-python/trustme[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/trio-0.26.1[${PYTHON_USEDEP}] + ' 3.{11..13}) + amd64? ( + $(python_gen_cond_dep ' + >=dev-python/uvloop-0.21.0_beta1[${PYTHON_USEDEP}] + ' python3_{11..13}) + ) + ) +" + +distutils_enable_tests pytest +distutils_enable_sphinx docs \ + '>=dev-python/sphinx-rtd-theme-1.2.2' \ + dev-python/sphinxcontrib-jquery \ + dev-python/sphinx-autodoc-typehints + +PATCHES=( + # https://github.com/agronholm/anyio/commit/f051fd45a1d34bae8dd70dba726e711e7a49deee + # https://github.com/agronholm/anyio/commit/e0e2531de14c54eed895c92b4c8e87b44f47634b + # https://github.com/agronholm/anyio/commit/8bad9c05d966f6edfa58f26257015cb657d4e5ef + "${FILESDIR}/${P}-py314.patch" +) + +python_test() { + local EPYTEST_DESELECT=( + # requires link-local IPv6 interface + tests/test_sockets.py::TestTCPListener::test_bind_link_local + ) + + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + # likely related to https://github.com/pypy/pypy/issues/5264 + tests/test_debugging.py::test_main_task_name + ) + ;; + esac + + local filter=() + if ! has_version ">=dev-python/trio-0.26.1[${PYTHON_USEDEP}]"; then + filter+=( -k "not trio" ) + EPYTEST_DESELECT+=( + tests/test_pytest_plugin.py::test_plugin + tests/test_pytest_plugin.py::test_autouse_async_fixture + tests/test_pytest_plugin.py::test_cancel_scope_in_asyncgen_fixture + ) + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -m 'not network' "${filter[@]}" +} diff --git a/dev-python/anyio/files/anyio-4.8.0-py314.patch b/dev-python/anyio/files/anyio-4.8.0-py314.patch new file mode 100644 index 000000000000..9e1ad2fb151c --- /dev/null +++ b/dev-python/anyio/files/anyio-4.8.0-py314.patch @@ -0,0 +1,124 @@ +From f051fd45a1d34bae8dd70dba726e711e7a49deee Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <alex.gronholm@nextday.fi> +Date: Tue, 18 Mar 2025 14:38:12 +0200 +Subject: [PATCH] Fixed Path tests on Python 3.14.0a6 + +--- + src/anyio/_core/_fileio.py | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/src/anyio/_core/_fileio.py b/src/anyio/_core/_fileio.py +index a0d61984..17459b79 100644 +--- a/src/anyio/_core/_fileio.py ++++ b/src/anyio/_core/_fileio.py +@@ -421,13 +421,11 @@ async def copy( + target: str | os.PathLike[str], + *, + follow_symlinks: bool = True, +- dirs_exist_ok: bool = False, + preserve_metadata: bool = False, + ) -> Path: + func = partial( + self._path.copy, + follow_symlinks=follow_symlinks, +- dirs_exist_ok=dirs_exist_ok, + preserve_metadata=preserve_metadata, + ) + return Path(await to_thread.run_sync(func, target)) +@@ -437,13 +435,11 @@ async def copy_into( + target_dir: str | os.PathLike[str], + *, + follow_symlinks: bool = True, +- dirs_exist_ok: bool = False, + preserve_metadata: bool = False, + ) -> Path: + func = partial( + self._path.copy_into, + follow_symlinks=follow_symlinks, +- dirs_exist_ok=dirs_exist_ok, + preserve_metadata=preserve_metadata, + ) + return Path(await to_thread.run_sync(func, target_dir)) +@@ -616,7 +612,9 @@ async def read_text( + def relative_to( + self, *other: str | PathLike[str], walk_up: bool = False + ) -> Path: +- return Path(self._path.relative_to(*other, walk_up=walk_up)) ++ # relative_to() should work with any PathLike but it doesn't ++ others = [pathlib.Path(other) for other in other] ++ return Path(self._path.relative_to(*others, walk_up=walk_up)) + + else: + +From e0e2531de14c54eed895c92b4c8e87b44f47634b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <alex.gronholm@nextday.fi> +Date: Tue, 15 Apr 2025 00:54:22 +0300 +Subject: [PATCH] Fixed Path.copy() and Path.copy_info failing on Python + 3.14.0a7 + +--- + docs/versionhistory.rst | 1 + + src/anyio/_core/_fileio.py | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/anyio/_core/_fileio.py b/src/anyio/_core/_fileio.py +index 17459b79..2eae029e 100644 +--- a/src/anyio/_core/_fileio.py ++++ b/src/anyio/_core/_fileio.py +@@ -428,7 +428,7 @@ async def copy( + follow_symlinks=follow_symlinks, + preserve_metadata=preserve_metadata, + ) +- return Path(await to_thread.run_sync(func, target)) ++ return Path(await to_thread.run_sync(func, pathlib.Path(target))) + + async def copy_into( + self, +@@ -442,7 +442,7 @@ async def copy_into( + follow_symlinks=follow_symlinks, + preserve_metadata=preserve_metadata, + ) +- return Path(await to_thread.run_sync(func, target_dir)) ++ return Path(await to_thread.run_sync(func, pathlib.Path(target_dir))) + + async def move(self, target: str | os.PathLike[str]) -> Path: + # Upstream does not handle anyio.Path properly as a PathLike +From 8bad9c05d966f6edfa58f26257015cb657d4e5ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <alex.gronholm@nextday.fi> +Date: Sat, 15 Feb 2025 16:41:44 +0200 +Subject: [PATCH] Fixed test failures caused by Python 3.14.0a5 + +--- + docs/versionhistory.rst | 1 + + src/anyio/_core/_fileio.py | 15 ++++++++++----- + tests/test_fileio.py | 2 ++ + 3 files changed, 13 insertions(+), 5 deletions(-) + +diff --git a/src/anyio/_core/_fileio.py b/src/anyio/_core/_fileio.py +index 3728734c..350a873a 100644 +--- a/src/anyio/_core/_fileio.py ++++ b/src/anyio/_core/_fileio.py +@@ -411,6 +412,10 @@ def match(self, path_pattern: str) -> bool: + + if sys.version_info >= (3, 14): + ++ @property ++ def info(self) -> Any: # TODO: add return type annotation when Typeshed gets it ++ return self._path.info ++ + async def copy( + self, + target: str | os.PathLike[str], +diff --git a/tests/test_fileio.py b/tests/test_fileio.py +index d7a769bd..28830e6e 100644 +--- a/tests/test_fileio.py ++++ b/tests/test_fileio.py +@@ -106,6 +106,8 @@ async def test_properties(self) -> None: + stdlib_properties.discard("__enter__") + stdlib_properties.discard("__exit__") + stdlib_properties.discard("__firstlineno__") ++ stdlib_properties.discard("__open_rb__") ++ stdlib_properties.discard("__open_wb__") + + async_path = Path(path) + anyio_properties = { |