- 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:
parent
6cc0fdae53
commit
e684201f2d
BIN
anyio-3.7.1.tar.gz
(Stored with Git LFS)
BIN
anyio-3.7.1.tar.gz
(Stored with Git LFS)
Binary file not shown.
3
anyio-4.1.0.tar.gz
Normal file
3
anyio-4.1.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5a0bec7085176715be77df87fc66d6c9d70626bd752fcc85f57cdbee5b3760da
|
||||
size 155773
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user