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:
Ana Guerrero 2024-01-21 22:07:33 +00:00 committed by Git OBS Bridge
commit 0d3c7168b6
5 changed files with 108 additions and 46 deletions

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

Binary file not shown.

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

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

View File

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

View File

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

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