diff --git a/anyio-3.7.1.tar.gz b/anyio-3.7.1.tar.gz deleted file mode 100644 index 5c1ae7e..0000000 --- a/anyio-3.7.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780 -size 142927 diff --git a/anyio-4.2.0.tar.gz b/anyio-4.2.0.tar.gz new file mode 100644 index 0000000..b4dd3f1 --- /dev/null +++ b/anyio-4.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f +size 158770 diff --git a/python-anyio.changes b/python-anyio.changes index cf24bb6..ccc8df0 100644 --- a/python-anyio.changes +++ b/python-anyio.changes @@ -1,3 +1,102 @@ +------------------------------------------------------------------- +Tue Jan 2 20:50:56 UTC 2024 - Dirk Müller + +- 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 + +- 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 diff --git a/python-anyio.spec b/python-anyio.spec index e2887c6..2c802b1 100644 --- a/python-anyio.spec +++ b/python-anyio.spec @@ -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 diff --git a/tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch b/tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch deleted file mode 100644 index 615f49b..0000000 --- a/tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Jiri Slaby -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 -