commit: e0428b5cd6592eb5d12fc4474a5f21fc37a138df
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 14 08:34:27 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 14 11:59:08 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0428b5c
dev-python/anyio: Enable py3.14
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
dev-python/anyio/anyio-4.8.0-r2.ebuild | 2 +-
...anyio-4.8.0-r2.ebuild => anyio-4.8.0-r3.ebuild} | 20 +++-
dev-python/anyio/files/anyio-4.8.0-py314.patch | 124 +++++++++++++++++++++
3 files changed, 143 insertions(+), 3 deletions(-)
diff --git a/dev-python/anyio/anyio-4.8.0-r2.ebuild
b/dev-python/anyio/anyio-4.8.0-r2.ebuild
index 734795bd8e7c..714d8c17ab48 100644
--- a/dev-python/anyio/anyio-4.8.0-r2.ebuild
+++ b/dev-python/anyio/anyio-4.8.0-r2.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( pypy3_11 python3_{11..13} )
+PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
inherit distutils-r1 pypi
diff --git a/dev-python/anyio/anyio-4.8.0-r2.ebuild
b/dev-python/anyio/anyio-4.8.0-r3.ebuild
similarity index 75%
copy from dev-python/anyio/anyio-4.8.0-r2.ebuild
copy to dev-python/anyio/anyio-4.8.0-r3.ebuild
index 734795bd8e7c..6ebf7a291939 100644
--- a/dev-python/anyio/anyio-4.8.0-r2.ebuild
+++ b/dev-python/anyio/anyio-4.8.0-r3.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( pypy3_11 python3_{11..13} )
+PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
inherit distutils-r1 pypi
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390
sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv
~s390 ~sparc ~x86"
RDEPEND="
>=dev-python/idna-2.8[${PYTHON_USEDEP}]
@@ -52,12 +52,28 @@ distutils_enable_sphinx docs \
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" )
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?= <[email protected]>
+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?= <[email protected]>
+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?= <[email protected]>
+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 = {