- 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
This commit is contained in:
Dirk Mueller 2023-12-01 16:55:19 +00:00 committed by Git OBS Bridge
parent 6cc0fdae53
commit e684201f2d
5 changed files with 69 additions and 41 deletions

BIN
anyio-3.7.1.tar.gz (Stored with Git LFS)

Binary file not shown.

3
anyio-4.1.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5a0bec7085176715be77df87fc66d6c9d70626bd752fcc85f57cdbee5b3760da
size 155773

View File

@ -1,3 +1,66 @@
-------------------------------------------------------------------
Fri Dec 1 16:52:20 UTC 2023 - Dirk Müller <dmueller@suse.com>
- 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 <dmueller@suse.com>

View File

@ -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

View File

@ -1,33 +0,0 @@
From: Jiri Slaby <jirislaby@gmail.com>
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