Sourced from anyio's releases.
4.6.0
- Dropped support for Python 3.8 (as #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)
- Fixed cancel scopes on asyncio not propagating
CancelledError
on exit when the enclosing cancel scope has been effectively cancelled (#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
Sourced from anyio's changelog.
Version history
This library adheres to
Semantic Versioning 2.0 <http://semver.org/>
_.4.6.0
- Dropped support for Python 3.8 (as
[#698](https://github.com/agronholm/anyio/issues/698) <https://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://github.com/agronholm/anyio/issues/695) <https://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://github.com/agronholm/anyio/issues/698) <https://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
4.5.0
- Improved the performance of
anyio.Lock
andanyio.Semaphore
on asyncio (even up to 50 %)- Added the
fast_acquire
parameter toanyio.Lock
andanyio.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 inanyio.Path
, newly added in Python 3.13 ([#737](https://github.com/agronholm/anyio/issues/737) <https://github.com/agronholm/anyio/issues/737>
_)- Added support for more keyword arguments for
run_process()
andopen_process()
:startupinfo
,creationflags
,pass_fds
,user
,group
,extra_groups
andumask
([#742](https://github.com/agronholm/anyio/issues/742) <https://github.com/agronholm/anyio/issues/742>
_)- Improved the type annotations and support for
PathLike
inrun_process()
andopen_process()
to allow for path-like arguments, just likesubprocess.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__()
ofMemoryObjectItemReceiver
, whenitem
is not defined ([#767](https://github.com/agronholm/anyio/issues/767) <https://github.com/agronholm/anyio/pulls/767>
_; PR by@​Danipulok
)- Fixed
to_process.run_sync()
failing to initialize if__main__.__file__
pointed to a file in a nonexistent directory ([#696](https://github.com/agronholm/anyio/issues/696) <https://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://github.com/agronholm/anyio/issues/490) <https://github.com/agronholm/anyio/issues/490>
_)
... (truncated)
8cce749
Bumped up the version01a37c6
Fixed TaskGroup and CancelScope exit issues on asyncio (#774)