Compare commits
14 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 3e2a41cbe6 | |||
| d5ad73562b | |||
| dbc64dd747 | |||
| 57c55227d9 | |||
| 6e0e14a10b | |||
| ddd236e38c | |||
| 580b21ab6d | |||
| 13ba1f237a | |||
| fbc40a233b | |||
| 8ed32491c7 | |||
| ad74000aef | |||
| 0769b7f33f | |||
| 650928d58d | |||
| 8a02284d61 |
3
_multibuild
Normal file
3
_multibuild
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>test</package>
|
||||||
|
</multibuild>
|
||||||
3
anyio-4.12.0.tar.gz
Normal file
3
anyio-4.12.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0
|
||||||
|
size 228266
|
||||||
BIN
anyio-4.8.0.tar.gz
LFS
BIN
anyio-4.8.0.tar.gz
LFS
Binary file not shown.
@@ -1,3 +1,158 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Dec 8 07:58:08 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Update to 4.12.0:
|
||||||
|
* Added support for asyncio's task call graphs on Python 3.14 and later
|
||||||
|
when using AnyIO's task groups
|
||||||
|
* Added an asynchronous implementation of the functools module
|
||||||
|
* Added support for uvloop=True on Windows via the winloop implementation
|
||||||
|
* Added support for use as a context manager to anyio.lowlevel.RunVar
|
||||||
|
* Added __all__ declarations to public submodules (anyio.lowlevel etc.)
|
||||||
|
* Added the ability to set the token count of a CapacityLimiter to zero
|
||||||
|
* Added parameters case_sensitive and recurse_symlinks along with support
|
||||||
|
for path-like objects to anyio.Path.glob() and anyio.Path.rglob()
|
||||||
|
* Dropped sniffio as a direct dependency and added the
|
||||||
|
get_available_backends() function
|
||||||
|
* Fixed Process.stdin.send() not raising ClosedResourceError and
|
||||||
|
BrokenResourceError on asyncio
|
||||||
|
* Fixed Process.stdin.send() not checkpointing before writing data on
|
||||||
|
asyncio
|
||||||
|
* Fixed a race condition where cancelling a Future from
|
||||||
|
BlockingPortal.start_task_soon() would sometimes not cancel the async
|
||||||
|
function
|
||||||
|
* Fixed the presence of the pytest plugin causing breakage with older
|
||||||
|
versions of pytest (<= 6.1.2)
|
||||||
|
* Fixed a rarely occurring RuntimeError: Set changed size during iteration
|
||||||
|
while shutting down the process pool when using the asyncio backend
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 27 03:35:12 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Skip a test that will break with pytest 9.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 24 08:21:38 UTC 2025 - Nico Krapp <nico.krapp@suse.com>
|
||||||
|
|
||||||
|
- Update to 4.11.0
|
||||||
|
* Added support for cancellation reasons (the reason parameter to
|
||||||
|
CancelScope.cancel()) (#975)
|
||||||
|
* Bumped the minimum version of Trio to v0.31.0
|
||||||
|
* Added the ability to enter the event loop from foreign (non-worker) threads
|
||||||
|
by passing the return value of anyio.lowlevel.current_token() to
|
||||||
|
anyio.from_thread.run() and anyio.from_thread.run_sync() as the token
|
||||||
|
keyword argument (#256)
|
||||||
|
* Added pytest option (anyio_mode = "auto") to make the pytest plugin
|
||||||
|
automatically handle all async tests (#971)
|
||||||
|
* Added the anyio.Condition.wait_for() method for feature parity with
|
||||||
|
asyncio (#974)
|
||||||
|
* Changed the default type argument of anyio.abc.TaskStatus from Any to
|
||||||
|
None (#964)
|
||||||
|
* Fixed TCP listener behavior to guarantee the same ephemeral port is used for
|
||||||
|
all socket listeners when local_port=0 (#857; PR by @11kkw and @agronholm)
|
||||||
|
* Fixed inconsistency between Trio and asyncio where a TCP stream that
|
||||||
|
previously raised a BrokenResourceError on send() would still raise
|
||||||
|
BrokenResourceError after the stream was closed on asyncio, but
|
||||||
|
ClosedResourceError on Trio. They now both raise a ClosedResourceError in
|
||||||
|
this scenario. (#671)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Aug 13 05:32:04 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Skip flaky test_keyboardinterrupt_during_test, the timeout increase
|
||||||
|
doesn't always help.
|
||||||
|
- Fix build for Leap
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 12 08:54:42 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 4.10.0:
|
||||||
|
+ Added the feed_data() method to the BufferedByteReceiveStream
|
||||||
|
class, allowing users to inject data directly into the buffer
|
||||||
|
+ Added various class methods to wrap existing sockets as
|
||||||
|
listeners or socket streams
|
||||||
|
+ Added a hierarchy of connectable stream classes for
|
||||||
|
transparently connecting to various remote or local endpoints
|
||||||
|
for exchanging bytes or objects
|
||||||
|
+ Added context manager mix-in classes (anyio.ContextManagerMixin
|
||||||
|
and anyio.AsyncContextManagerMixin) to help write classes that
|
||||||
|
embed other context managers, particularly cancel scopes or
|
||||||
|
task groups
|
||||||
|
+ Added the ability to specify the thread name in start_blocking
|
||||||
|
_portal()
|
||||||
|
+ Added anyio.notify_closing to allow waking anyio.wait_readable
|
||||||
|
and anyio.wait_writable before closing a socket. Among other
|
||||||
|
things, this prevents an OSError on the ProactorEventLoop.
|
||||||
|
+ Incorporated several documentation improvements from the
|
||||||
|
EuroPython 2025 sprint
|
||||||
|
+ Added a documentation page explaining why one might want to use
|
||||||
|
AnyIO's APIs instead of asyncio's
|
||||||
|
+ Updated the to_interpreters module to use the public
|
||||||
|
concurrent.interpreters API on Python 3.14 or later
|
||||||
|
+ Fixed anyio.Path.copy() and anyio.Path.copy_into() failing on
|
||||||
|
Python 3.14.0a7
|
||||||
|
+ Fixed return annotation of __aexit__ on async context managers.
|
||||||
|
+ Fixed rollover boundary check in SpooledTemporaryFile so that
|
||||||
|
rollover only occurs when the buffer size exceeds max_size
|
||||||
|
+ Migrated testing and documentation dependencies from extras to
|
||||||
|
dependency groups
|
||||||
|
+ Fixed compatibility of anyio.to_interpreter with Python 3.14.0
|
||||||
|
+ Fixed SyntaxWarning on Python 3.14 about return in finally
|
||||||
|
+ Fixed RunVar name conflicts. RunVar instances with the same
|
||||||
|
name should not share storage
|
||||||
|
+ Renamed the BrokenWorkerIntepreter exception to
|
||||||
|
BrokenWorkerInterpreter. The old name is available as a
|
||||||
|
deprecated alias.
|
||||||
|
+ Fixed an edge case in CapacityLimiter on asyncio where a task,
|
||||||
|
waiting to acquire a limiter gets cancelled and is subsequently
|
||||||
|
granted a token from the limiter, but before the cancellation
|
||||||
|
is delivered, and then fails to notify the next waiting task
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 7 09:33:03 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Increase timeout in in test_keyboardinterrupt_during_test, it helps
|
||||||
|
with flaky tests in i586 arches.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jul 21 05:03:47 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Inject multibuild to break a build loop.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 18 08:45:09 UTC 2025 - Felix Stegmeier <felix.stegmeier@suse.com>
|
||||||
|
|
||||||
|
- Update to 4.9.0:
|
||||||
|
* Added async support for temporary file handling (#344; PR by @11kkw)
|
||||||
|
* Added 4 new fixtures for the AnyIO pytest plugin:
|
||||||
|
* free_tcp_port_factory: session scoped fixture returning a callable
|
||||||
|
that generates unused TCP port numbers
|
||||||
|
* free_udp_port_factory: session scoped fixture returning a callable
|
||||||
|
that generates unused UDP port numbers
|
||||||
|
* free_tcp_port: function scoped fixture that invokes the
|
||||||
|
free_tcp_port_factory fixture to generate a free TCP port number
|
||||||
|
* free_udp_port: function scoped fixture that invokes the
|
||||||
|
free_udp_port_factory fixture to generate a free UDP port number
|
||||||
|
* Added stdin argument to anyio.run_process() akin to what
|
||||||
|
anyio.open_process(), asyncio.create_subprocess(), trio.run_process(),
|
||||||
|
and subprocess.run() already accept (PR by @jmehnle)
|
||||||
|
* Added the info property to anyio.Path on Python 3.14
|
||||||
|
* Changed anyio.getaddrinfo() to ignore (invalid) IPv6 name resolution
|
||||||
|
results when IPv6 support is disabled in Python
|
||||||
|
* Changed EndOfStream raised from MemoryObjectReceiveStream.receive()
|
||||||
|
to leave out the AttributeError from the exception chain which was
|
||||||
|
merely an implementation detail and caused some confusion
|
||||||
|
* Fixed traceback formatting growing quadratically with level of
|
||||||
|
TaskGroup nesting on asyncio due to exception chaining when raising
|
||||||
|
ExceptionGroups in TaskGroup.__aexit__ (#863; PR by @tapetersen)
|
||||||
|
* Fixed anyio.Path.iterdir() making a blocking call in Python 3.13
|
||||||
|
(#873; PR by @cbornet and @agronholm)
|
||||||
|
* Fixed connect_tcp() producing cyclic references in tracebacks when
|
||||||
|
raising exceptions (#809; PR by @graingert)
|
||||||
|
* Fixed anyio.to_thread.run_sync() needlessly holding on to references
|
||||||
|
of the context, function, arguments and others until the next work
|
||||||
|
item on asyncio (PR by @Wankupi)
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Feb 10 09:17:39 UTC 2025 - Nico Krapp <nico.krapp@suse.com>
|
Mon Feb 10 09:17:39 UTC 2025 - Nico Krapp <nico.krapp@suse.com>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-anyio
|
# spec file for package python-anyio
|
||||||
#
|
#
|
||||||
# Copyright (c) 2025 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC and contributors
|
||||||
#
|
#
|
||||||
# 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
|
||||||
@@ -16,41 +16,52 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
%if "%{flavor}" == "test"
|
||||||
|
%define psuffix -test
|
||||||
|
%bcond_without test
|
||||||
|
%else
|
||||||
|
%define psuffix %{nil}
|
||||||
|
%bcond_with test
|
||||||
|
%endif
|
||||||
%{?sle15_python_module_pythons}
|
%{?sle15_python_module_pythons}
|
||||||
Name: python-anyio
|
Name: python-anyio%{psuffix}
|
||||||
Version: 4.8.0
|
Version: 4.12.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
|
||||||
BuildRequires: %{python_module base >= 3.8}
|
BuildRequires: %{python_module base >= 3.8}
|
||||||
BuildRequires: %{python_module exceptiongroup}
|
|
||||||
BuildRequires: %{python_module idna >= 2.8}
|
|
||||||
BuildRequires: %{python_module pip}
|
BuildRequires: %{python_module pip}
|
||||||
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 toml}
|
|
||||||
BuildRequires: %{python_module typing_extensions}
|
|
||||||
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
|
||||||
|
%if %{with test}
|
||||||
|
BuildRequires: %{python_module anyio = %{version}}
|
||||||
|
BuildRequires: %{python_module blockbuster}
|
||||||
|
BuildRequires: %{python_module exceptiongroup}
|
||||||
BuildRequires: %{python_module hypothesis >= 4.0}
|
BuildRequires: %{python_module hypothesis >= 4.0}
|
||||||
|
BuildRequires: %{python_module psutil >= 5.9}
|
||||||
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.26.1}
|
BuildRequires: %{python_module toml}
|
||||||
|
BuildRequires: %{python_module trio >= 0.31.0}
|
||||||
BuildRequires: %{python_module trustme}
|
BuildRequires: %{python_module trustme}
|
||||||
|
BuildRequires: %{python_module truststore}
|
||||||
BuildRequires: %{python_module uvloop}
|
BuildRequires: %{python_module uvloop}
|
||||||
|
%endif
|
||||||
# /SECTION
|
# /SECTION
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
Requires: python-idna >= 2.8
|
Requires: python-idna >= 2.8
|
||||||
Requires: python-sniffio >= 1.1
|
%if 0%{?python_version_nodots} < 313
|
||||||
Requires: python-typing_extensions
|
Requires: python-typing_extensions >= 4.5
|
||||||
|
%endif
|
||||||
%if 0%{?python_version_nodots} < 311
|
%if 0%{?python_version_nodots} < 311
|
||||||
Requires: python-exceptiongroup
|
Requires: python-exceptiongroup
|
||||||
%endif
|
%endif
|
||||||
Suggests: python-trio >= 0.26.1
|
Suggests: python-trio >= 0.31.0
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
|
|
||||||
@@ -60,15 +71,25 @@ against it to run unmodified on asyncio, curio and trio.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -n anyio-%{version}
|
%autosetup -p1 -n anyio-%{version}
|
||||||
|
# Fix license field in pyproject.toml for older setuptools
|
||||||
|
%if 0%{?suse_version} <= 1500
|
||||||
|
sed -i 's/license = "MIT"/license = { text = "MIT" }/' pyproject.toml
|
||||||
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%pyproject_wheel
|
%pyproject_wheel
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
%if !%{with test}
|
||||||
%pyproject_install
|
%pyproject_install
|
||||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with test}
|
||||||
%check
|
%check
|
||||||
|
# increase timeout in test_keyboardinterrupt_during_test
|
||||||
|
sed -i 's/timeout=3/timeout=8/' tests/test_pytest_plugin.py
|
||||||
|
|
||||||
sed -i '/filterwarnings/,/^]/ { /"error"/ d}' pyproject.toml
|
sed -i '/filterwarnings/,/^]/ { /"error"/ d}' pyproject.toml
|
||||||
# bind and resolution failures inside OBS
|
# bind and resolution failures inside OBS
|
||||||
donttest+=" or (TestTCPStream and (ipv4 or ipv6))"
|
donttest+=" or (TestTCPStream and (ipv4 or ipv6))"
|
||||||
@@ -88,12 +109,20 @@ donttest+=" or (test_exception_group and trio)"
|
|||||||
# Fail with python 3.12
|
# Fail with python 3.12
|
||||||
donttest+=" or (test_properties and trio)"
|
donttest+=" or (test_properties and trio)"
|
||||||
donttest+=" or (test_properties and asyncio)"
|
donttest+=" or (test_properties and asyncio)"
|
||||||
%pytest -m "not network" -k "not (${donttest:4})" -ra
|
# Flaky test in i586
|
||||||
|
donttest+=" or test_keyboardinterrupt_during_test"
|
||||||
|
# Fails with pytest 9
|
||||||
|
donttest+=" or test_anyio_fixture_adoption_does_not_persist"
|
||||||
|
|
||||||
|
%pytest -m "not network" -k "not (${donttest:4})" -ra
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if !%{with test}
|
||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%doc README.rst
|
%doc README.rst
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%{python_sitelib}/anyio
|
%{python_sitelib}/anyio
|
||||||
%{python_sitelib}/anyio-%{version}.dist-info
|
%{python_sitelib}/anyio-%{version}.dist-info
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
|||||||
Reference in New Issue
Block a user