Accepting request 1136274 from devel:languages:python
- update to 4.2.0: * Add support for byte-based paths in connect_unix, create_unix_listeners, create_unix_datagram_socket, and create_connected_unix_datagram_socket. (PR by Lura Skye) * Enabled the Event and CapacityLimiter classes to be instantiated outside an event loop thread * Broadly improved/fixed the type annotations. Among other things, many functions and methods that take variadic positional arguments now make use of PEP 646 TypeVarTuple to allow the positional arguments to be validated by static type checkers. These changes affected numerous methods and functions, including: * anyio.run() * TaskGroup.start_soon() * anyio.from_thread.run() * anyio.from_thread.run_sync() * anyio.to_thread.run_sync() * anyio.to_process.run_sync() * BlockingPortal.call() * BlockingPortal.start_task_soon() * BlockingPortal.start_task() (also resolves #560) * Fixed various type annotations of anyio.Path to match Typeshed: * anyio.Path.__lt__() * anyio.Path.__le__() * anyio.Path.__gt__() * anyio.Path.__ge__() * anyio.Path.__truediv__() * anyio.Path.__rtruediv__() * anyio.Path.hardlink_to() * anyio.Path.samefile() * anyio.Path.symlink_to() * anyio.Path.with_segments() (PR by Ganden Schaffner) * Fixed adjusting the total number of tokens in a CapacityLimiter on asyncio failing to wake up tasks waiting to acquire the limiter in certain edge cases (fixed with help from Egor Blagov) * Fixed loop_factory and use_uvloop options not being used on the asyncio backend * Fixed cancellation propagating on asyncio from a task group OBS-URL: https://build.opensuse.org/request/show/1136274 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-anyio?expand=0&rev=19
This commit is contained in:
commit
0d3c7168b6
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.2.0.tar.gz
Normal file
3
anyio-4.2.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f
|
||||
size 158770
|
@ -1,3 +1,102 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 2 20:50:56 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 4.2.0:
|
||||
* Add support for byte-based paths in connect_unix,
|
||||
create_unix_listeners, create_unix_datagram_socket, and
|
||||
create_connected_unix_datagram_socket. (PR by Lura Skye)
|
||||
* Enabled the Event and CapacityLimiter classes to be
|
||||
instantiated outside an event loop thread
|
||||
* Broadly improved/fixed the type annotations. Among other
|
||||
things, many functions and methods that take variadic
|
||||
positional arguments now make use of PEP 646 TypeVarTuple to
|
||||
allow the positional arguments to be validated by static type
|
||||
checkers. These changes affected numerous methods and
|
||||
functions, including: * anyio.run() * TaskGroup.start_soon()
|
||||
* anyio.from_thread.run() * anyio.from_thread.run_sync() *
|
||||
anyio.to_thread.run_sync() * anyio.to_process.run_sync() *
|
||||
BlockingPortal.call() * BlockingPortal.start_task_soon() *
|
||||
BlockingPortal.start_task() (also resolves #560)
|
||||
* Fixed various type annotations of anyio.Path to match
|
||||
Typeshed: * anyio.Path.__lt__() * anyio.Path.__le__() *
|
||||
anyio.Path.__gt__() * anyio.Path.__ge__() *
|
||||
anyio.Path.__truediv__() * anyio.Path.__rtruediv__() *
|
||||
anyio.Path.hardlink_to() * anyio.Path.samefile() *
|
||||
anyio.Path.symlink_to() * anyio.Path.with_segments() (PR by
|
||||
Ganden Schaffner)
|
||||
* Fixed adjusting the total number of tokens in a
|
||||
CapacityLimiter on asyncio failing to wake up tasks waiting
|
||||
to acquire the limiter in certain edge cases (fixed with help
|
||||
from Egor Blagov)
|
||||
* Fixed loop_factory and use_uvloop options not being used on
|
||||
the asyncio backend
|
||||
* Fixed cancellation propagating on asyncio from a task group
|
||||
to child tasks if the task hosting the task group is in a
|
||||
shielded cancel scope
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package python-anyio
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -18,14 +18,12 @@
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-anyio
|
||||
Version: 3.7.1
|
||||
Version: 4.2.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}
|
||||
@ -34,7 +32,7 @@ BuildRequires: %{python_module psutil >= 5.9}
|
||||
BuildRequires: %{python_module setuptools_scm}
|
||||
BuildRequires: %{python_module sniffio >= 1.1}
|
||||
BuildRequires: %{python_module toml}
|
||||
BuildRequires: %{python_module typing_extensions if %python-base < 3.8}
|
||||
BuildRequires: %{python_module typing_extensions if %python-base < 3.11}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: python-rpm-macros >= 20210127.3a18043
|
||||
# SECTION test requirements
|
||||
@ -42,20 +40,18 @@ 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
|
||||
Requires: python-idna >= 2.8
|
||||
Requires: python-sniffio >= 1.1
|
||||
%if 0%{?python_version_nodots} < 38
|
||||
Requires: python-typing_extensions
|
||||
%endif
|
||||
Requires: (python-typing_extensions if python-base < 3.11)
|
||||
%if 0%{?python_version_nodots} < 37
|
||||
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