Sync from SUSE:SLFO:Main python-anyio revision e268938253e1734717a310c4376b342a
This commit is contained in:
parent
cf019498cc
commit
e04082b963
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.
BIN
anyio-4.4.0.tar.gz
(Stored with Git LFS)
Normal file
BIN
anyio-4.4.0.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,3 +1,170 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 12 09:21:08 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 4.4.0:
|
||||||
|
* Added the BlockingPortalProvider class to aid with
|
||||||
|
constructing synchronous counterparts to asynchronous
|
||||||
|
interfaces that would otherwise require multiple blocking
|
||||||
|
portals
|
||||||
|
* Added __slots__ to AsyncResource so that child classes can
|
||||||
|
use __slots__
|
||||||
|
* Added the TaskInfo.has_pending_cancellation() method
|
||||||
|
* Fixed erroneous RuntimeError: called 'started' twice on the
|
||||||
|
same task status when cancelling a task in a TaskGroup
|
||||||
|
created with the start() method before the first checkpoint
|
||||||
|
is reached after calling task_status.started()
|
||||||
|
* Fixed two bugs with TaskGroup.start() on asyncio: Fixed
|
||||||
|
erroneous RuntimeError: called 'started' twice on the same
|
||||||
|
task status when cancelling a task in a TaskGroup created
|
||||||
|
with the start() method before the first checkpoint is
|
||||||
|
reached after calling task_status.started() (#706; PR by
|
||||||
|
Dominik Schwabe) Fixed the entire task group being cancelled
|
||||||
|
if a TaskGroup.start() call gets cancelled (#685, #710)
|
||||||
|
* Fixed erroneous RuntimeError: called 'started' twice on the
|
||||||
|
same task status when cancelling a task in a TaskGroup
|
||||||
|
created with the start() method before the first checkpoint
|
||||||
|
is reached after calling task_status.started()
|
||||||
|
* Fixed the entire task group being cancelled if a
|
||||||
|
TaskGroup.start() call gets cancelled
|
||||||
|
* Fixed a race condition that caused crashes when multiple
|
||||||
|
event loops of the same backend were running in separate
|
||||||
|
threads and simultaneously attempted to use AnyIO for their
|
||||||
|
first time
|
||||||
|
* Fixed cancellation delivery on asyncio incrementing the wrong
|
||||||
|
cancel scope's cancellation counter when cascading a cancel
|
||||||
|
operation to a child scope, thus failing to uncancel the host
|
||||||
|
task
|
||||||
|
* Fixed erroneous TypedAttributeLookupError if a typed
|
||||||
|
attribute getter raises KeyError
|
||||||
|
* Fixed the asyncio backend not respecting the
|
||||||
|
PYTHONASYNCIODEBUG environment variable when setting the
|
||||||
|
debug flag in anyio.run()
|
||||||
|
* Fixed SocketStream.receive() not detecting EOF on asyncio if
|
||||||
|
there is also data in the read buffer
|
||||||
|
* Fixed MemoryObjectStream dropping an item if the item is
|
||||||
|
delivered to a recipient that is waiting to receive an item
|
||||||
|
but has a cancellation pending
|
||||||
|
* Emit a ResourceWarning for MemoryObjectReceiveStream and
|
||||||
|
MemoryObjectSendStream that were garbage collected without
|
||||||
|
being closed (PR by Andrey Kazantcev)
|
||||||
|
* Fixed MemoryObjectSendStream.send() not raising
|
||||||
|
BrokenResourceError when the last corresponding
|
||||||
|
MemoryObjectReceiveStream is closed while waiting to send a
|
||||||
|
falsey item
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 11 23:36:15 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Update to 4.3.0:
|
||||||
|
* Added support for the Python 3.12 ``walk_up`` keyword argument in
|
||||||
|
``anyio.Path.relative_to()``
|
||||||
|
* Fixed passing ``total_tokens`` to ``anyio.CapacityLimiter()`` as a
|
||||||
|
keyword argument not working on the ``trio`` backend
|
||||||
|
* Fixed ``Process.aclose()`` not performing the minimum level of
|
||||||
|
necessary cleanup when cancelled
|
||||||
|
* Fixed ``Process.stdin.aclose()``, ``Process.stdout.aclose()``, and
|
||||||
|
``Process.stderr.aclose()``
|
||||||
|
- Add exceptiongroup to {Build,}Requires.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
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>
|
Thu Nov 16 15:31:07 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-anyio
|
# 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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -18,44 +18,38 @@
|
|||||||
|
|
||||||
%{?sle15_python_module_pythons}
|
%{?sle15_python_module_pythons}
|
||||||
Name: python-anyio
|
Name: python-anyio
|
||||||
Version: 3.7.1
|
Version: 4.4.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: High level compatibility layer for asynchronous event loop implementations
|
Summary: High level compatibility layer for asynchronous event loop implementations
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/agronholm/anyio
|
URL: https://github.com/agronholm/anyio
|
||||||
Source: https://files.pythonhosted.org/packages/source/a/anyio/anyio-%{version}.tar.gz
|
Source: https://files.pythonhosted.org/packages/source/a/anyio/anyio-%{version}.tar.gz
|
||||||
# PATCH-FIX-UPSTREAM see gh#agronholm/anyio#626
|
BuildRequires: %{python_module base >= 3.8}
|
||||||
Patch2: tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch
|
BuildRequires: %{python_module exceptiongroup}
|
||||||
BuildRequires: %{python_module contextlib2 if %python-base < 3.7}
|
|
||||||
BuildRequires: %{python_module dataclasses if %python-base < 3.7}
|
|
||||||
BuildRequires: %{python_module idna >= 2.8}
|
BuildRequires: %{python_module idna >= 2.8}
|
||||||
BuildRequires: %{python_module pip}
|
BuildRequires: %{python_module pip}
|
||||||
BuildRequires: %{python_module psutil >= 5.9}
|
BuildRequires: %{python_module psutil >= 5.9}
|
||||||
BuildRequires: %{python_module setuptools_scm}
|
BuildRequires: %{python_module setuptools_scm}
|
||||||
BuildRequires: %{python_module sniffio >= 1.1}
|
BuildRequires: %{python_module sniffio >= 1.1}
|
||||||
BuildRequires: %{python_module toml}
|
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_module wheel}
|
||||||
BuildRequires: python-rpm-macros >= 20210127.3a18043
|
BuildRequires: python-rpm-macros >= 20210127.3a18043
|
||||||
# SECTION test requirements
|
# SECTION test requirements
|
||||||
BuildRequires: %{python_module hypothesis >= 4.0}
|
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 >= 7.0}
|
||||||
BuildRequires: %{python_module pytest-mock >= 3.6.1}
|
BuildRequires: %{python_module pytest-mock >= 3.6.1}
|
||||||
BuildRequires: %{python_module trio >= 0.16}
|
BuildRequires: %{python_module trio >= 0.23}
|
||||||
BuildRequires: %{python_module trustme}
|
BuildRequires: %{python_module trustme}
|
||||||
# /SECTION
|
# /SECTION
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
Requires: python-idna >= 2.8
|
Requires: python-idna >= 2.8
|
||||||
Requires: python-sniffio >= 1.1
|
Requires: python-sniffio >= 1.1
|
||||||
%if 0%{?python_version_nodots} < 38
|
%if 0%{?python_version_nodots} < 311
|
||||||
|
Requires: python-exceptiongroup
|
||||||
Requires: python-typing_extensions
|
Requires: python-typing_extensions
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?python_version_nodots} < 37
|
Suggests: python-trio >= 0.23
|
||||||
Requires: python-contextvars
|
|
||||||
Requires: python-dataclasses
|
|
||||||
%endif
|
|
||||||
Suggests: python-trio >= 0.16
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
|
|
||||||
@ -99,6 +93,6 @@ donttest+=" or (test_properties and asyncio)"
|
|||||||
%doc README.rst
|
%doc README.rst
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%{python_sitelib}/anyio
|
%{python_sitelib}/anyio
|
||||||
%{python_sitelib}/anyio-%{version}*-info
|
%{python_sitelib}/anyio-%{version}.dist-info
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
@ -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…
Reference in New Issue
Block a user