diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-06-15 00:09:17 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-06-15 00:09:17 +0100 |
commit | 6a7029e0f7370d4d5dfe9e31cc2719a870482392 (patch) | |
tree | 28c6c747114eaedfd2db81f86ac2ff3d7d13111e /dev-python/anyio | |
parent | 5e41a38157bb40e8513e8e34426e85faba672fe7 (diff) |
gentoo auto-resync : 15:06:2024 - 00:09:17
Diffstat (limited to 'dev-python/anyio')
-rw-r--r-- | dev-python/anyio/Manifest | 2 | ||||
-rw-r--r-- | dev-python/anyio/anyio-4.4.0-r1.ebuild | 87 | ||||
-rw-r--r-- | dev-python/anyio/files/anyio-4.4.0-py313.patch | 90 |
3 files changed, 179 insertions, 0 deletions
diff --git a/dev-python/anyio/Manifest b/dev-python/anyio/Manifest index 0a1329415bc4..fd326388f502 100644 --- a/dev-python/anyio/Manifest +++ b/dev-python/anyio/Manifest @@ -1,3 +1,5 @@ +AUX anyio-4.4.0-py313.patch 3403 BLAKE2B d58254482e73351f19bdc63dbb0aac98e472a780e5e646caed3ded574a17346ed9f9a25e792d4877b85f13282bb0e0f2159ec561fc0be936f1fc07bcabfa3c54 SHA512 37d248f1a4aa9b1644c0c6568789852aeba062b3c80aeb7f6b06a0e6d4b1c92b6f289f0d23d5479a59b9329a8b7e9587a79e440e381dae2ed99b66ff3fae4637 DIST anyio-4.4.0.tar.gz 163930 BLAKE2B a37b8bc05e43cf1a4bc3f15ab399c78c7a76235942d776848307b189898973e46ddfb553bd20da154dc740d8b8bb93050ac460e56607b686bc2936c5a1e09332 SHA512 db8ad7a4faf257269de9975c3a6325023a95255a8bfe1a9642221080f44a2487160f3c0e8b220d637816e9eb3641550393a3c80b23bddafc33fd9ebe9a23b33d +EBUILD anyio-4.4.0-r1.ebuild 2351 BLAKE2B b22cb9b5bd371ac208bc502b1ac19afc4bfd640f894807ece6859f13fa4b9e3d291441a93f4ae084d656a726543877651a5709a4a9169b0070bccb86bc6d9634 SHA512 4a46521762db7034b5ebf729f3ae4ad9a70f481d595c62794657382195912f6550ff0539f2cd7d675548ca4cd88aff702dcb1cd2412b1c36cae4f0108a1b83ab EBUILD anyio-4.4.0.ebuild 2251 BLAKE2B 067436639672e94eebba5211f75c43a8039f106cbfb37e752ca45b459a14b32912fca369114faae30ecf26d2d469bc04ee38576cde249e73d8a593187e12af10 SHA512 cba98cbff84aade3c28a72449485d79d6c2d60a301f64f7fb20270f326b5759074c711e88184fe6ade05de9c5fcc0246e02b946f60c166a01f7d3e9a1fef37c2 MISC metadata.xml 1422 BLAKE2B 63acae587e7088e33ee5eb93a2a222899e54a5eb511118794f88e7c5a012d10983eb925427688a0b509b094e30a9cc9acc5f0c1765ea73e569161e0c30722000 SHA512 e0b540d5d739b7673a5a8682477f209f8b3648aad06a1c0610543a2e9dcbeca1cb1e52212d8088a5987a1c3bc3152cc5984ad5b5d0706fcdb5866b22de07b1eb diff --git a/dev-python/anyio/anyio-4.4.0-r1.ebuild b/dev-python/anyio/anyio-4.4.0-r1.ebuild new file mode 100644 index 000000000000..089ffcd3b09d --- /dev/null +++ b/dev-python/anyio/anyio-4.4.0-r1.ebuild @@ -0,0 +1,87 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( pypy3 python3_{10..13} ) + +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 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/idna-2.8[${PYTHON_USEDEP}] + >=dev-python/sniffio-1.1[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/exceptiongroup-1.2.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.1[${PYTHON_USEDEP}] + ' 3.10) +" +# 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/pytest-mock-3.6.1[${PYTHON_USEDEP}] + dev-python/trustme[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/trio-0.23[${PYTHON_USEDEP}] + ' 3.{10..13}) + amd64? ( + $(python_gen_cond_dep ' + >=dev-python/uvloop-0.17[${PYTHON_USEDEP}] + ' python3_{10..12}) + ) + ) +" + +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/pull/740 + "${FILESDIR}/${P}-py313.patch" +) + +python_test() { + local EPYTEST_DESELECT=( + # requires link-local IPv6 interface + tests/test_sockets.py::TestTCPListener::test_bind_link_local + ) + + local filter=() + if ! has_version ">=dev-python/trio-0.23[${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 + + case ${EPYTHON} in + python3.13) + EPYTEST_DESELECT+=( + 'tests/test_fileio.py::TestPath::test_properties[asyncio]' + ) + ;; + esac + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -m 'not network' "${filter[@]}" +} diff --git a/dev-python/anyio/files/anyio-4.4.0-py313.patch b/dev-python/anyio/files/anyio-4.4.0-py313.patch new file mode 100644 index 000000000000..ebd3763f7544 --- /dev/null +++ b/dev-python/anyio/files/anyio-4.4.0-py313.patch @@ -0,0 +1,90 @@ +From 8a4d651610abb71da66cef58f350788eab6b0bd1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <alex.gronholm@nextday.fi> +Date: Tue, 28 May 2024 01:00:49 +0300 +Subject: [PATCH 1/3] Added missing Path properties from Python 3.13 + +Fixes #737. +--- + src/anyio/_core/_fileio.py | 24 ++++++++++++++++++++++-- + tests/test_fileio.py | 18 ++++++++++++++++++ + 4 files changed, 47 insertions(+), 4 deletions(-) + +diff --git a/src/anyio/_core/_fileio.py b/src/anyio/_core/_fileio.py +index df2057fe..8053dce5 100644 +--- a/src/anyio/_core/_fileio.py ++++ b/src/anyio/_core/_fileio.py +@@ -358,8 +358,28 @@ def as_posix(self) -> str: + def as_uri(self) -> str: + return self._path.as_uri() + +- def match(self, path_pattern: str) -> bool: +- return self._path.match(path_pattern) ++ if sys.version_info >= (3, 13): ++ parser = pathlib.Path.parser # type: ignore[attr-defined] ++ ++ @classmethod ++ def from_uri(cls, uri: str) -> Path: ++ return Path(pathlib.Path.from_uri(uri)) # type: ignore[attr-defined] ++ ++ def full_match( ++ self, path_pattern: str, *, case_sensitive: bool | None = None ++ ) -> bool: ++ return self._path.full_match( # type: ignore[attr-defined] ++ path_pattern, case_sensitive=case_sensitive ++ ) ++ ++ def match( ++ self, path_pattern: str, *, case_sensitive: bool | None = None ++ ) -> bool: ++ return self._path.match(path_pattern, case_sensitive=case_sensitive) ++ else: ++ ++ def match(self, path_pattern: str) -> bool: ++ return self._path.match(path_pattern) + + def is_relative_to(self, other: str | PathLike[str]) -> bool: + try: +diff --git a/tests/test_fileio.py b/tests/test_fileio.py +index bcd7fe1d..ff9178e0 100644 +--- a/tests/test_fileio.py ++++ b/tests/test_fileio.py +@@ -186,6 +186,15 @@ def test_as_uri(self) -> None: + else: + assert Path("/foo/bar").as_uri() == "file:///foo/bar" + ++ @pytest.mark.skipif( ++ sys.version_info < (3, 13), ++ reason="Path.from_uri() is only available on Python 3.13+", ++ ) ++ def test_from_uri(self) -> None: ++ path = Path.from_uri("file:///foo/bar") ++ assert isinstance(path, Path) ++ assert path.as_uri() == "file:///foo/bar" ++ + async def test_cwd(self) -> None: + result = await Path.cwd() + assert isinstance(result, Path) +@@ -269,6 +278,7 @@ async def test_is_mount(self) -> None: + assert not await Path("/gfobj4ewiotj").is_mount() + assert await Path("/").is_mount() + ++ @pytest.mark.filterwarnings("ignore::DeprecationWarning") + def test_is_reserved(self) -> None: + expected_result = platform.system() == "Windows" + assert Path("nul").is_reserved() == expected_result +@@ -339,6 +349,14 @@ def test_joinpath(self) -> None: + path = Path("/foo").joinpath("bar") + assert path == Path("/foo/bar") + ++ @pytest.mark.skipif( ++ sys.version_info < (3, 13), ++ reason="Path.full_match() is only available on Python 3.13+", ++ ) ++ def test_fullmatch(self) -> None: ++ assert Path("/foo/bar").full_match("/foo/*") ++ assert not Path("/foo/bar").full_match("/baz/*") ++ + def test_match(self) -> None: + assert Path("/foo/bar").match("/foo/*") + assert not Path("/foo/bar").match("/baz/*") + |