From e684201f2d5e07df8cec1523ecc03cb2905d723b56c80f50a7fcdb79b4b53ce8 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Fri, 1 Dec 2023 16:55:19 +0000 Subject: [PATCH] - update to 4.1.0: * Adapted to API changes made in Trio v0.23 * Removed a checkpoint when exiting a task group * Renamed the ``cancellable`` argument in ``anyio.to_thread.run_sync()`` to * ``abandon_on_cancel`` (and deprecated the old parameter name) * Added support for voluntary thread cancellation via * ``anyio.from_thread.check_cancelled()`` * Bumped minimum version of trio to v0.23 * Exposed the ``ResourceGuard`` class in the public API * Fixed ``RuntimeError: Runner is closed`` when running higher- scoped async generator fixtures in some cases * Fixed discrepancy between ``asyncio`` and ``trio`` where reraising a cancellation exception in an ``except*`` block would incorrectly bubble out of its cancel scope * Any exceptions raising out of a task groups are now nested inside an ``ExceptionGroup`` (or ``BaseExceptionGroup`` if one or more ``BaseException`` were included) * Fixed task group not raising a cancellation exception on asyncio at exit if no child tasks were spawned and an outer cancellation scope had been cancelled before * Ensured that exiting a ``TaskGroup`` always hits a yield point, regardless of whether there are running child tasks to be waited on * On asyncio, cancel scopes will defer cancelling tasks that are scheduled to resume with a finished future * On asyncio and Python 3.9/3.10, cancel scopes now only suppress cancellation exceptions if the cancel message matches the scope * Task groups on all backends now raise a single cancellation OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=36 --- anyio-3.7.1.tar.gz | 3 - anyio-4.1.0.tar.gz | 3 + python-anyio.changes | 63 +++++++++++++++++++ python-anyio.spec | 8 +-- ...leio.py-don-t-follow-symlinks-in-dev.patch | 33 ---------- 5 files changed, 69 insertions(+), 41 deletions(-) delete mode 100644 anyio-3.7.1.tar.gz create mode 100644 anyio-4.1.0.tar.gz delete mode 100644 tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch diff --git a/anyio-3.7.1.tar.gz b/anyio-3.7.1.tar.gz deleted file mode 100644 index 5c1ae7e..0000000 --- a/anyio-3.7.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780 -size 142927 diff --git a/anyio-4.1.0.tar.gz b/anyio-4.1.0.tar.gz new file mode 100644 index 0000000..48557ee --- /dev/null +++ b/anyio-4.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a0bec7085176715be77df87fc66d6c9d70626bd752fcc85f57cdbee5b3760da +size 155773 diff --git a/python-anyio.changes b/python-anyio.changes index cf24bb6..47da461 100644 --- a/python-anyio.changes +++ b/python-anyio.changes @@ -1,3 +1,66 @@ +------------------------------------------------------------------- +Fri Dec 1 16:52:20 UTC 2023 - Dirk Müller + +- update to 4.1.0: + * Adapted to API changes made in Trio v0.23 + * Removed a checkpoint when exiting a task group + * Renamed the ``cancellable`` argument in + ``anyio.to_thread.run_sync()`` to + * ``abandon_on_cancel`` (and deprecated the old parameter name) + * Added support for voluntary thread cancellation via + * ``anyio.from_thread.check_cancelled()`` + * Bumped minimum version of trio to v0.23 + * Exposed the ``ResourceGuard`` class in the public API + * Fixed ``RuntimeError: Runner is closed`` when running higher- + scoped async generator fixtures in some cases + * Fixed discrepancy between ``asyncio`` and ``trio`` where + reraising a cancellation exception in an ``except*`` block + would incorrectly bubble out of its cancel scope + * Any exceptions raising out of a task groups are now nested + inside an ``ExceptionGroup`` (or ``BaseExceptionGroup`` if one + or more ``BaseException`` were included) + * Fixed task group not raising a cancellation exception on + asyncio at exit if no child tasks were spawned and an outer + cancellation scope had been cancelled before + * Ensured that exiting a ``TaskGroup`` always hits a yield + point, regardless of whether there are running child tasks to + be waited on + * On asyncio, cancel scopes will defer cancelling tasks that + are scheduled to resume with a finished future + * On asyncio and Python 3.9/3.10, cancel scopes now only + suppress cancellation exceptions if the cancel message matches + the scope + * Task groups on all backends now raise a single cancellation + exception when an outer cancel scope is cancelled, and no + exceptions other than cancellation exceptions are raised in + the group + * **BACKWARDS INCOMPATIBLE** Changes the pytest plugin to run + all tests and fixtures in the same task, allowing fixtures to + set context variables for tests and other fixtures + ``anyio.Path.relative_to()`` and + * ``anyio.Path.is_relative_to()`` to only accept one argument, + as passing multiple arguments is deprecated as of Python 3.12 + * **BACKWARDS INCOMPATIBLE** Dropped support for spawning tasks + from old-style coroutine functions (``@asyncio.coroutine``) + * **BACKWARDS INCOMPATIBLE** The ``policy`` option on the + ``asyncio`` backend was changed to ``loop_factory`` to + accommodate ``asyncio.Runner`` + * Dropped support for Python 3.7 + * Added support for Python 3.12 + * Fixed ``from_thread.run`` failing when used to call sniffio- + dependent functions on asyncio from a thread running trio or curio + * Fixed deadlock when using + ``from_thread.start_blocking_portal(backend="asyncio")`` + * in a thread running trio or curio (PR by Ganden Schaffner) + * Improved type annotations: + * The ``item_type`` argument of ``create_memory_object_stream`` + was deprecated. + * To indicate the item type handled by the stream, use + * ``create_memory_object_stream[T_Item]()`` instead. Type + checking should no longer fail when annotating memory object +- drop tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch + (upstream) + ------------------------------------------------------------------- Thu Nov 16 15:31:07 UTC 2023 - Dirk Müller diff --git a/python-anyio.spec b/python-anyio.spec index e2887c6..ec3a207 100644 --- a/python-anyio.spec +++ b/python-anyio.spec @@ -18,14 +18,12 @@ %{?sle15_python_module_pythons} Name: python-anyio -Version: 3.7.1 +Version: 4.1.0 Release: 0 Summary: High level compatibility layer for asynchronous event loop implementations License: MIT URL: https://github.com/agronholm/anyio Source: https://files.pythonhosted.org/packages/source/a/anyio/anyio-%{version}.tar.gz -# PATCH-FIX-UPSTREAM see gh#agronholm/anyio#626 -Patch2: tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch BuildRequires: %{python_module contextlib2 if %python-base < 3.7} BuildRequires: %{python_module dataclasses if %python-base < 3.7} BuildRequires: %{python_module idna >= 2.8} @@ -42,7 +40,7 @@ BuildRequires: %{python_module hypothesis >= 4.0} BuildRequires: %{python_module mock >= 4.0 if %python-base < 3.8} BuildRequires: %{python_module pytest >= 7.0} BuildRequires: %{python_module pytest-mock >= 3.6.1} -BuildRequires: %{python_module trio >= 0.16} +BuildRequires: %{python_module trio >= 0.23} BuildRequires: %{python_module trustme} # /SECTION BuildRequires: fdupes @@ -55,7 +53,7 @@ Requires: python-typing_extensions Requires: python-contextvars Requires: python-dataclasses %endif -Suggests: python-trio >= 0.16 +Suggests: python-trio >= 0.23 BuildArch: noarch %python_subpackages diff --git a/tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch b/tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch deleted file mode 100644 index 615f49b..0000000 --- a/tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Jiri Slaby -Date: Thu, 2 Nov 2023 11:37:44 +0100 -Subject: tests: test_fileio.py: don't follow symlinks in /dev -Patch-mainline: submitted https://github.com/agronholm/anyio/pull/626 -References: fix for kernel 6.6 - -There might be a broken one like /dev/log and this causes the tests to -fail. - -This is highly is unpredictable, because os.scandir() sometimes returns -a block device, sometimes the broken link is hit. - -So pass follow_symlinks=False to entry.stat(). ---- - tests/test_fileio.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test_fileio.py b/tests/test_fileio.py -index 9e6b2a8325..c4801187db 100644 ---- a/tests/test_fileio.py -+++ b/tests/test_fileio.py -@@ -218,7 +218,7 @@ class TestPath: - assert not await Path("/btelkbee").is_block_device() - with os.scandir("/dev") as iterator: - for entry in iterator: -- if stat.S_ISBLK(entry.stat().st_mode): -+ if stat.S_ISBLK(entry.stat(follow_symlinks=False).st_mode): - assert await Path(entry.path).is_block_device() - break - else: --- -2.42.0 -