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; 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; 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; PR by Dominik Schwabe)
Fixed the entire task group being cancelled if a TaskGroup.start() call gets cancelled (#685, #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; 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)
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)
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)
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; PR by Ganden Schaffner)
Configuration
📅Schedule: Branch creation - At any time (no schedule defined), 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.
If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
[](https://renovatebot.com)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [anyio](https://togithub.com/agronholm/anyio) ([changelog](https://anyio.readthedocs.io/en/stable/versionhistory.html)) | `==4.3.0` -> `==4.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>agronholm/anyio (anyio)</summary>
### [`v4.4.0`](https://togithub.com/agronholm/anyio/releases/tag/4.4.0)
[Compare Source](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/agronholm/anyio/issues/685), [#​710](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/agronholm/anyio/issues/731); PR by Ganden Schaffner)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), 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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/SphericalKat/deezbot).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
==4.3.0->==4.4.0Release Notes
agronholm/anyio (anyio)
v4.4.0Compare Source
BlockingPortalProviderclass to aid with constructing synchronous counterparts to asynchronous interfaces that would otherwise require multiple blocking portals__slots__toAsyncResourceso that child classes can use__slots__(#733; PR by Justin Su)TaskInfo.has_pending_cancellation()methodRuntimeError: called 'started' twice on the same task statuswhen cancelling a task in a TaskGroup created with thestart()method before the first checkpoint is reached after callingtask_status.started()(#706; PR by Dominik Schwabe)TaskGroup.start()on asyncio:RuntimeError: called 'started' twice on the same task statuswhen cancelling a task in a TaskGroup created with thestart()method before the first checkpoint is reached after callingtask_status.started()(#706; PR by Dominik Schwabe)TaskGroup.start()call gets cancelled (#685, #710)TypedAttributeLookupErrorif a typed attribute getter raisesKeyErrorPYTHONASYNCIODEBUGenvironment variable when setting thedebugflag inanyio.run()SocketStream.receive()not detecting EOF on asyncio if there is also data in the read buffer (#701)MemoryObjectStreamdropping an item if the item is delivered to a recipient that is waiting to receive an item but has a cancellation pending (#728)ResourceWarningforMemoryObjectReceiveStreamandMemoryObjectSendStreamthat were garbage collected without being closed (PR by Andrey Kazantcev)MemoryObjectSendStream.send()not raisingBrokenResourceErrorwhen the last correspondingMemoryObjectReceiveStreamis closed while waiting to send a falsey item (#731; PR by Ganden Schaffner)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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.
This PR has been generated by Mend Renovate. View repository job log here.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.