build(deps): update dependency anyio to v4.13.0 (hotfix/1.5)
Metadata
Current evaluation
Anyio 4.13.0 update for hotfix/1.5 was closed unmerged after 121 days with multiple CI failures, no reviewer activity, and no resolving commit.
Resolution: closed stale
Reason: PR #1226 remained review-pending with zero reviewers or comments while tests and linters failed, then was closed unmerged after 121 days. No resolving PR, commit, or maintainer explanation was recorded.
Evaluated by: mr-cal-bot
No scores available.
Issue body
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [anyio](https://redirect.github.com/agronholm/anyio) ([changelog](https://anyio.readthedocs.io/en/stable/versionhistory.html)) | `==4.3.0` β `==4.13.0` |  |  |
---
### Release Notes
<details>
<summary>agronholm/anyio (anyio)</summary>
### [`v4.13.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.13.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.12.1...4.13.0)
- Dropped support for Python 3.9
- Added a `ttl` parameter to the `anyio.functools.lru_cache` wrapper ([#​1073](https://redirect.github.com/agronholm/anyio/pull/1073); PR by [@​Graeme22](https://redirect.github.com/Graeme22))
- Widened the type annotations of file I/O streams to accept `IO[bytes]` instead of just `BinaryIO` ([#​1078](https://redirect.github.com/agronholm/anyio/issues/1078))
- Fixed `anyio.Path` not being compatible with Python 3.15 due to the removal of `pathlib.Path.is_reserved()` and the addition of `pathlib.Path.__vfspath__()` ([#​1061](https://redirect.github.com/agronholm/anyio/issues/1061); PR by [@​veeceey](https://redirect.github.com/veeceey))
- Fixed the `BrokenResourceError` raised by the asyncio `SocketStream` not having the original exception as its cause ([#​1055](https://redirect.github.com/agronholm/anyio/issues/1055); PR by [@​veeceey](https://redirect.github.com/veeceey))
- Fixed the `TypeError` raised when using "func" as a parameter name in `pytest.mark.parametrize` when using the pytest plugin ([#​1068](https://redirect.github.com/agronholm/anyio/pull/1068); PR by [@​JohnnyDeuss](https://redirect.github.com/JohnnyDeuss))
- Fixed the pytest plugin not running tests that had the `anyio` marker added programmatically via `pytest_collection_modifyitems` ([#​422](https://redirect.github.com/agronholm/anyio/issues/422); PR by [@​chbndrhnns](https://redirect.github.com/chbndrhnns))
- Fixed cancellation exceptions leaking from a `CancelScope` on asyncio when they are contained in an exception group alongside non-cancellation exceptions ([#​1091](https://redirect.github.com/agronholm/anyio/issues/1091); PR by [@​gschaffner](https://redirect.github.com/gschaffner))
- Fixed `Condition.wait()` not passing on a notification when the task is cancelled but already received a notification
- Fixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated ([#​1074](https://redirect.github.com/agronholm/anyio/pull/1074); PR by [@​bysiber](https://redirect.github.com/bysiber))
### [`v4.12.1`](https://redirect.github.com/agronholm/anyio/releases/tag/4.12.1)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.12.0...4.12.1)
- Changed all functions currently raising the private `NoCurrentAsyncBackend` exception (since v4.12.0) to instead raise the public `NoEventLoopError` exception ([#​1048](https://redirect.github.com/agronholm/anyio/issues/1048))
- Fixed `anyio.functools.lru_cache` not working with instance methods ([#​1042](https://redirect.github.com/agronholm/anyio/issues/1042))
### [`v4.12.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.12.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.11.0...4.12.0)
- Added support for asyncio's [task call graphs](https://docs.python.org/3/library/asyncio-graph.html) on Python 3.14 and later when using AnyIO's task groups ([#​1025](https://redirect.github.com/agronholm/anyio/pull/1025))
- Added an asynchronous implementation of the `functools` module ([#​1001](https://redirect.github.com/agronholm/anyio/pull/1001))
- Added support for `uvloop=True` on Windows via the [winloop](https://redirect.github.com/Vizonex/Winloop) implementation ([#​960](https://redirect.github.com/agronholm/anyio/pull/960); PR by [@​Vizonex](https://redirect.github.com/Vizonex))
- Added support for use as a context manager to `anyio.lowlevel.RunVar` ([#​1003](https://redirect.github.com/agronholm/anyio/pull/1003))
- Added `__all__` declarations to public submodules (`anyio.lowlevel` etc.) ([#​1009](https://redirect.github.com/agronholm/anyio/pull/1009))
- Added the ability to set the token count of a `CapacityLimiter` to zero ([#​1019](https://redirect.github.com/agronholm/anyio/pull/1019); requires Python 3.10 or later when using Trio)
- Added parameters `case_sensitive` and `recurse_symlinks` along with support for path-like objects to `anyio.Path.glob()` and `anyio.Path.rglob()` ([#​1033](https://redirect.github.com/agronholm/anyio/pull/1033); PR by [@​northisup](https://redirect.github.com/northisup))
- Dropped `sniffio` as a direct dependency and added the `get_available_backends()` function ([#​1021](https://redirect.github.com/agronholm/anyio/pull/1021))
- Fixed `Process.stdin.send()` not raising `ClosedResourceError` and `BrokenResourceError` on asyncio. Previously, a non-AnyIO exception was raised in such cases ([#​671](https://redirect.github.com/agronholm/anyio/issues/671); PR by [@​gschaffner](https://redirect.github.com/gschaffner))
- Fixed `Process.stdin.send()` not checkpointing before writing data on asyncio ([#​1002](https://redirect.github.com/agronholm/anyio/issues/1002); PR by [@​gschaffner](https://redirect.github.com/gschaffner))
- Fixed a race condition where cancelling a `Future` from `BlockingPortal.start_task_soon()` would sometimes not cancel the async function ([#​1011](https://redirect.github.com/agronholm/anyio/issues/1011); PR by [@​gschaffner](https://redirect.github.com/gschaffner))
- Fixed the presence of the pytest plugin causing breakage with older versions of pytest (<= 6.1.2) ([#​1028](https://redirect.github.com/agronholm/anyio/issues/1028); PR by [@​saper](https://redirect.github.com/saper))
- Fixed a rarely occurring `RuntimeError: Set changed size during iteration` while shutting down the process pool when using the asyncio backend ([#​985](https://redirect.github.com/agronholm/anyio/issues/985))
### [`v4.11.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.11.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.10.0...4.11.0)
- Added support for cancellation reasons (the `reason` parameter to `CancelScope.cancel()`) ([#​975](https://redirect.github.com/agronholm/anyio/pull/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](https://redirect.github.com/agronholm/anyio/issues/256))
- Added pytest option (`anyio_mode = "auto"`) to make the pytest plugin automatically handle all async tests ([#​971](https://redirect.github.com/agronholm/anyio/pull/971))
- Added the `anyio.Condition.wait_for()` method for feature parity with asyncio ([#​974](https://redirect.github.com/agronholm/anyio/pull/974))
- Changed the default type argument of `anyio.abc.TaskStatus` from `Any` to `None` ([#​964](https://redirect.github.com/agronholm/anyio/pull/964))
- Fixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when `local_port=0` ([#​857](https://redirect.github.com/agronholm/anyio/issues/857); PR by [@​11kkw](https://redirect.github.com/11kkw) and [@​agronholm](https://redirect.github.com/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](https://redirect.github.com/agronholm/anyio/issues/671))
### [`v4.10.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.10.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.9.0...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:
- `SocketListener.from_socket()`
- `SocketStream.from_socket()`
- `UNIXSocketStream.from_socket()`
- `UDPSocket.from_socket()`
- `ConnectedUDPSocket.from_socket()`
- `UNIXDatagramSocket.from_socket()`
- `ConnectedUNIXDatagramSocket.from_socket()`
- 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 ([#​905](https://redirect.github.com/agronholm/anyio/pull/905); PR by [@​agronholm](https://redirect.github.com/agronholm) and [@​tapetersen](https://redirect.github.com/tapetersen))
- Added the ability to specify the thread name in `start_blocking_portal()` ([#​818](https://redirect.github.com/agronholm/anyio/issues/818); PR by [@​davidbrochart](https://redirect.github.com/davidbrochart))
- 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`. ([#​896](https://redirect.github.com/agronholm/anyio/pull/896); PR by [@​graingert](https://redirect.github.com/graingert))
- Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)
- 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. CMs which can suppress exceptions should return `bool`, or `None` otherwise. ([#​913](https://redirect.github.com/agronholm/anyio/pull/913); PR by [@​Enegg](https://redirect.github.com/Enegg))
- Fixed rollover boundary check in `SpooledTemporaryFile` so that rollover only occurs when the buffer size exceeds `max_size` ([#​915](https://redirect.github.com/agronholm/anyio/pull/915); PR by [@​11kkw](https://redirect.github.com/11kkw))
- Migrated testing and documentation dependencies from extras to dependency groups
- Fixed compatibility of `anyio.to_interpreter` with Python 3.14.0b2 ([#​926](https://redirect.github.com/agronholm/anyio/issues/926); PR by [@​hroncok](https://redirect.github.com/hroncok))
- Fixed `SyntaxWarning` on Python 3.14 about `return` in `finally` ([#​816](https://redirect.github.com/agronholm/anyio/issues/816))
- Fixed RunVar name conflicts. RunVar instances with the same name should not share storage ([#​880](https://redirect.github.com/agronholm/anyio/issues/880); PR by [@​vimfu](https://redirect.github.com/vimfu))
- Renamed the `BrokenWorkerIntepreter` exception to `BrokenWorkerInterpreter`. The old name is available as a deprecated alias. ([#​938](https://redirect.github.com/agronholm/anyio/pull/938); PR by [@​ayussh-verma](https://redirect.github.com/ayussh-verma))
- 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 ([#​947](https://redirect.github.com/agronholm/anyio/issues/947))
### [`v4.9.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.9.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.8.0...4.9.0)
- Added async support for temporary file handling ([#​344](https://redirect.github.com/agronholm/anyio/issues/344); PR by [@​11kkw](https://redirect.github.com/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](https://redirect.github.com/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](https://redirect.github.com/agronholm/anyio/issues/863); PR by [@​tapetersen](https://redirect.github.com/tapetersen))
- Fixed `anyio.Path.iterdir()` making a blocking call in Python 3.13 ([#​873](https://redirect.github.com/agronholm/anyio/issues/873); PR by [@​cbornet](https://redirect.github.com/cbornet) and [@​agronholm](https://redirect.github.com/agronholm))
- Fixed `connect_tcp()` producing cyclic references in tracebacks when raising exceptions ([#​809](https://redirect.github.com/agronholm/anyio/pull/809); PR by [@​graingert](https://redirect.github.com/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](https://redirect.github.com/Wankupi))
### [`v4.8.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.8.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.7.0...4.8.0)
- Added **experimental** support for running functions in subinterpreters on Python 3.13 and later
- Added support for the `copy()`, `copy_into()`, `move()` and `move_into()` methods in `anyio.Path`, available in Python 3.14
- Changed `TaskGroup` on asyncio to always spawn tasks non-eagerly, even if using a task factory created via `asyncio.create_eager_task_factory()`, to preserve expected Trio-like task scheduling semantics (PR by [@​agronholm](https://redirect.github.com/agronholm) and [@​graingert](https://redirect.github.com/graingert))
- Configure `SO_RCVBUF`, `SO_SNDBUF` and `TCP_NODELAY` on the selector thread waker socket pair (this should improve the performance of `wait_readable()` and `wait_writable()` when using the `ProactorEventLoop`) ([#​836](https://redirect.github.com/agronholm/anyio/pull/836); PR by [@​graingert](https://redirect.github.com/graingert))
- Fixed `AssertionError` when using `nest-asyncio` ([#​840](https://redirect.github.com/agronholm/anyio/issues/840))
- Fixed return type annotation of various context managers' `__exit__` method ([#​847](https://redirect.github.com/agronholm/anyio/issues/847); PR by [@​Enegg](https://redirect.github.com/Enegg))
### [`v4.7.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.7.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.6.2.post1...4.7.0)
- Updated `TaskGroup` to work with asyncio's eager task factories ([#​764](https://redirect.github.com/agronholm/anyio/issues/764))
- Added the `wait_readable()` and `wait_writable()` functions which will accept an object with a `.fileno()` method or an integer handle, and deprecated their now obsolete versions (`wait_socket_readable()` and `wait_socket_writable()`) (PR by [@​davidbrochart](https://redirect.github.com/davidbrochart))
- Changed `EventAdapter` (an `Event` with no bound async backend) to allow `set()` to work even before an async backend is bound to it ([#​819](https://redirect.github.com/agronholm/anyio/issues/819))
- Added support for `wait_readable()` and `wait_writable()` on `ProactorEventLoop` (used on asyncio + Windows by default)
- Fixed a misleading `ValueError` in the context of DNS failures ([#​815](https://redirect.github.com/agronholm/anyio/issues/815); PR by [@​graingert](https://redirect.github.com/graingert))
- Fixed the return type annotations of `readinto()` and `readinto1()` methods in the `anyio.AsyncFile` class ([#​825](https://redirect.github.com/agronholm/anyio/issues/825))
- Fixed `TaskInfo.has_pending_cancellation()` on asyncio returning false positives in cleanup code on Python >= 3.11 ([#​832](https://redirect.github.com/agronholm/anyio/issues/832); PR by [@​gschaffner](https://redirect.github.com/gschaffner))
- Fixed cancelled cancel scopes on asyncio calling `asyncio.Task.uncancel` when propagating a `CancelledError` on exit to a cancelled parent scope ([#​790](https://redirect.github.com/agronholm/anyio/pull/790); PR by [@​gschaffner](https://redirect.github.com/gschaffner))
### [`v4.6.2.post1`](https://redirect.github.com/agronholm/anyio/compare/4.6.2...4.6.2.post1)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.6.2...4.6.2.post1)
### [`v4.6.2`](https://redirect.github.com/agronholm/anyio/releases/tag/4.6.2)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.6.1...4.6.2)
- Fixed regression caused by ([#​807](https://redirect.github.com/agronholm/anyio/pull/807)) that prevented the use of parametrized async fixtures
### [`v4.6.1`](https://redirect.github.com/agronholm/anyio/releases/tag/4.6.1)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.6.0...4.6.1)
This release contains all the changes from both v4.5.1 and v4.6.0, plus:
- Fixed TaskGroup and CancelScope producing cyclic references in tracebacks when raising exceptions ([#​806](https://redirect.github.com/agronholm/anyio/pull/806)) (PR by [@​graingert](https://redirect.github.com/graingert))
### [`v4.6.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.6.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.5.2...4.6.0)
- Dropped support for Python 3.8 (as [#​698](https://redirect.github.com/agronholm/anyio/issues/698) cannot be resolved without cancel message support)
- Fixed 100% CPU use on asyncio while waiting for an exiting task group to finish while said task group is within a cancelled cancel scope ([#​695](https://redirect.github.com/agronholm/anyio/issues/695))
- Fixed cancel scopes on asyncio not propagating `CancelledError` on exit when the enclosing cancel scope has been effectively cancelled ([#​698](https://redirect.github.com/agronholm/anyio/issues/698))
- Fixed asyncio task groups not yielding control to the event loop at exit if there were no child tasks to wait on
- Fixed inconsistent task uncancellation with asyncio cancel scopes belonging to a task group when said task group has child tasks running
### [`v4.5.2`](https://redirect.github.com/agronholm/anyio/releases/tag/4.5.2)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.5.1...4.5.2)
- Fixed regression caused by ([#​807](https://redirect.github.com/agronholm/anyio/pull/807)) that prevented the use of parametrized async fixtures.
### [`v4.5.1`](https://redirect.github.com/agronholm/anyio/releases/tag/4.5.1)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.5.0...4.5.1)
As Python 3.8 support was dropped in v4.6.0, this interim release was created to bring a regression fix to Python 3.8, and adds a few other fixes also present in v4.6.1.
- Fixed acquring a lock twice in the same task on asyncio hanging instead of raising a `RuntimeError` ([#​798](https://redirect.github.com/agronholm/anyio/issues/798))
- Fixed an async fixture's `self` being different than the test's `self` in class-based tests ([#​633](https://redirect.github.com/agronholm/anyio/issues/633)) (PR by [@​agronholm](https://redirect.github.com/agronholm) and [@​graingert](https://redirect.github.com/graingert))
- Fixed `TypeError` with `TLSStream` on Windows when a certificate verification error occurs when using a [truststore](https://redirect.github.com/sethmlarson/truststore) SSL certificate ([#​795](https://redirect.github.com/agronholm/anyio/issues/795))
- Corrected documentation on `anyio.Path` regarding the limitations imposed by the current Python version on several of its methods, and made the `is_junction` method unavailable on Python versions earlier than 3.12 ([#​794](https://redirect.github.com/agronholm/anyio/issues/794))
### [`v4.5.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.5.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.4.0...4.5.0)
- Improved the performance of `anyio.Lock` and `anyio.Semaphore` on asyncio (even up to 50 %)
- Added the `fast_acquire` parameter to `anyio.Lock` and `anyio.Semaphore` to further boost performance at the expense of safety (`acquire()` will not yield control back if there is no contention)
- Added support for the `from_uri()`, `full_match()`, `parser` methods/properties in `anyio.Path`, newly added in Python 3.13 ([#​737](https://redirect.github.com/agronholm/anyio/issues/737))
- Added support for more keyword arguments for `run_process()` and `open_process()`: `startupinfo`, `creationflags`, `pass_fds`, `user`, `group`, `extra_groups` and `umask` ([#​742](https://redirect.github.com/agronholm/anyio/issues/742))
- Improved the type annotations and support for `PathLike` in `run_process()` and `open_process()` to allow for path-like arguments, just like `subprocess.Popen`
- Changed the `ResourceWarning` from an unclosed memory object stream to include its address for easier identification
- Changed `start_blocking_portal()` to always use daemonic threads, to accommodate the "loitering event loop" use case
- Bumped the minimum version of Trio to v0.26.1
- Fixed `__repr__()` of `MemoryObjectItemReceiver`, when `item` is not defined ([#​767](https://redirect.github.com/agronholm/anyio/pull/767); PR by [@​Danipulok](https://redirect.github.com/Danipulok))
- Fixed `to_process.run_sync()` failing to initialize if `__main__.__file__` pointed to a file in a nonexistent directory ([#​696](https://redirect.github.com/agronholm/anyio/issues/696))
- Fixed `AssertionError: feed_data after feed_eof` on asyncio when a subprocess is closed early, before its output has been read ([#​490](https://redirect.github.com/agronholm/anyio/issues/490))
- Fixed `TaskInfo.has_pending_cancellation()` on asyncio not respecting shielded scopes ([#​771](https://redirect.github.com/agronholm/anyio/issues/771); PR by [@​gschaffner](https://redirect.github.com/gschaffner))
- Fixed `SocketStream.receive()` returning `bytearray` instead of `bytes` when using asyncio with `ProactorEventLoop` (Windows) ([#​776](https://redirect.github.com/agronholm/anyio/issues/776))
- Fixed quitting the debugger in a pytest test session while in an active task group failing the test instead of exiting the test session (because the exit exception arrives in an exception group)
- Fixed support for Linux abstract namespaces in UNIX sockets that was broken in v4.2 ([#​781](https://redirect.github.com/agronholm/anyio/issues/781); PR by [@​tapetersen](https://redirect.github.com/tapetersen))
- Fixed `KeyboardInterrupt` (ctrl+c) hanging the asyncio pytest runner
### [`v4.4.0`](https://redirect.github.com/agronholm/anyio/releases/tag/4.4.0)
[Compare Source](https://redirect.github.com/agronholm/anyio/compare/4.3.0...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__` ([#​733](https://redirect.github.com/agronholm/anyio/pull/733); PR by Justin Su)
- 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()` ([#​706](https://redirect.github.com/agronholm/anyio/issues/706); PR by Dominik Schwabe)
- 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](https://redirect.github.com/agronholm/anyio/issues/706); PR by Dominik Schwabe)
- Fixed the entire task group being cancelled if a `TaskGroup.start()` call gets cancelled ([#​685](https://redirect.github.com/agronholm/anyio/issues/685), [#​710](https://redirect.github.com/agronholm/anyio/issues/710))
- 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 ([#​425](https://redirect.github.com/agronholm/anyio/issues/425); PR by David Jiricek and Ganden Schaffner)
- 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 ([#​716](https://redirect.github.com/agronholm/anyio/issues/716))
- 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 ([#​701](https://redirect.github.com/agronholm/anyio/issues/701))
- 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 ([#​728](https://redirect.github.com/agronholm/anyio/issues/728))
- 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 ([#​731](https://redirect.github.com/agronholm/anyio/issues/731); PR by Ganden Schaffner)
</details>
---
### Configuration
π
**Schedule**: (in timezone Etc/UTC)
- Branch creation
- "every weekend"
- Automerge
- At any time (no schedule defined)
π¦ **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/canonical/rockcraft).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS4wIiwidGFyZ2V0QnJhbmNoIjoiaG90Zml4LzEuNSIsImxhYmVscyI6WyJQUjogRGVwZW5kZW5jaWVzIl19-->
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | β | closed stale | Anyio 4.13.0 update for hotfix/1.5 was closed unmerged after 121 days with multiple CI failures, no reviewer activity, and no resolving commit. | |
| stealth/space-bunny-alpha | β | closed stale | Renovateβs anyio 4.3.0β4.13.0 update for hotfix/1.5 was closed unmerged after multiple CI failures and no reviewer activity. | |
| qwen/qwen3.6-35b-a3b | β | β | Closed without merging. Failing CI checks and lack of reviewer activity resulted in the anyio v4.13.0 dependency update being abandoned. | |
| qwen3.6-35b-a3b-mtp-q6 | β | β | Automated dependency update bumping anyio to v4.13.0 on the hotfix/1.5 branch was closed. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1352 build(deps): update dependency anyio to v4.11.0 (main) | craft-parts | closed | Closed unmerged; Renovate's AnyIO 4.11.0 update was ignored after closure, with no resolving merge or commit. |