- Added support for asyncio's task call graphs on Python 3.14 and later when using AnyIO's task groups (#1025)
- Added an asynchronous implementation of the
functoolsmodule (#1001) - Added support for
uvloop=Trueon Windows via the winloop implementation (#960; PR by @Vizonex) - Added support for use as a context manager to
anyio.lowlevel.RunVar(#1003) - Added
__all__declarations to public submodules (anyio.lowleveletc.) (#1009) - Added the ability to set the token count of a
CapacityLimiterto zero (#1019; requires Python 3.10 or later when using Trio) - Added parameters
case_sensitiveandrecurse_symlinksalong with support for path-like objects toanyio.Path.glob()andanyio.Path.rglob()(#1033; PR by @NorthIsUp) - Dropped
sniffioas a direct dependency and added theget_available_backends()function (#1021) - Fixed
Process.stdin.send()not raisingClosedResourceErrorandBrokenResourceErroron asyncio. Previously, a non-AnyIO exception was raised in such cases (#671; PR by @gschaffner) - Fixed
Process.stdin.send()not checkpointing before writing data on asyncio (#1002; PR by @gschaffner) - Fixed a race condition where cancelling a
FuturefromBlockingPortal.start_task_soon()would sometimes not cancel the async function (#1011; PR by @gschaffner) - Fixed the presence of the pytest plugin causing breakage with older versions of pytest (<= 6.1.2) (#1028; PR by @saper)
- Fixed a rarely occurring
RuntimeError: Set changed size during iterationwhile shutting down the process pool when using the asyncio backend (#985)