- Improved the performance of
anyio.Lockandanyio.Semaphoreon asyncio (even up to 50 %) - Added the
fast_acquireparameter toanyio.Lockandanyio.Semaphoreto 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(),parsermethods/properties inanyio.Path, newly added in Python 3.13 (#737) - Added support for more keyword arguments for
run_process()andopen_process():startupinfo,creationflags,pass_fds,user,group,extra_groupsandumask(#742) - Improved the type annotations and support for
PathLikeinrun_process()andopen_process()to allow for path-like arguments, just likesubprocess.Popen - Changed the
ResourceWarningfrom 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, whenitemis not defined (#767; PR by @Danipulok) - Fixed
to_process.run_sync()failing to initialize if__main__.__file__pointed to a file in a nonexistent directory (#696) - Fixed
AssertionError: feed_data after feed_eofon asyncio when a subprocess is closed early, before its output has been read (#490) - Fixed
TaskInfo.has_pending_cancellation()on asyncio not respecting shielded scopes (#771; PR by @gschaffner) - Fixed
SocketStream.receive()returningbytearrayinstead ofbyteswhen using asyncio withProactorEventLoop(Windows) (#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; PR by @tapetersen)
- Fixed
KeyboardInterrupt(ctrl+c) hanging the asyncio pytest runner