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>
|
||||
|
||||
|
@ -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,44 +18,38 @@
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-anyio
|
||||
Version: 3.7.1
|
||||
Version: 4.4.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 base >= 3.8}
|
||||
BuildRequires: %{python_module exceptiongroup}
|
||||
BuildRequires: %{python_module idna >= 2.8}
|
||||
BuildRequires: %{python_module pip}
|
||||
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
|
||||
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
|
||||
%if 0%{?python_version_nodots} < 311
|
||||
Requires: python-exceptiongroup
|
||||
Requires: python-typing_extensions
|
||||
%endif
|
||||
%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
|
||||
|
||||
@ -99,6 +93,6 @@ donttest+=" or (test_properties and asyncio)"
|
||||
%doc README.rst
|
||||
%license LICENSE
|
||||
%{python_sitelib}/anyio
|
||||
%{python_sitelib}/anyio-%{version}*-info
|
||||
%{python_sitelib}/anyio-%{version}.dist-info
|
||||
|
||||
%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