anyio 4.12.0

4.12.0
Added 7
  • Support for asyncio's task call graphs on Python 3.14 and later when using AnyIO's task groups
  • Asynchronous implementation of the functools module
  • Support for uvloop=True on Windows via the winloop implementation
  • Support for use as a context manager to anyio.lowlevel.RunVar
  • __all__ declarations to public submodules such as anyio.lowlevel
  • Ability to set the token count of a CapacityLimiter to zero
  • Parameters case_sensitive and recurse_symlinks along with support for path-like objects to anyio.Path.glob() and anyio.Path.rglob()
Changed 1
  • Dropped sniffio as a direct dependency and added the get_available_backends() function
Fixed 5
  • Process.stdin.send() not raising ClosedResourceError and BrokenResourceError on asyncio
  • Process.stdin.send() not checkpointing before writing data on asyncio
  • Race condition where cancelling a Future from BlockingPortal.start_task_soon() would sometimes not cancel the async function
  • Pytest plugin causing breakage with older versions of pytest
  • RuntimeError: Set changed size during iteration while shutting down the process pool when using the asyncio backend
  • 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 functools module (#1001)
  • Added support for uvloop=True on 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.lowlevel etc.) (#1009)
  • Added the ability to set the token count of a CapacityLimiter to zero (#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; PR by @northisup)
  • Dropped sniffio as a direct dependency and added the get_available_backends() function (#1021)
  • Fixed Process.stdin.send() not raising ClosedResourceError and BrokenResourceError on 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 Future from BlockingPortal.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 iteration while shutting down the process pool when using the asyncio backend (#985)
View original

Upgraded? How did it go?

Discussion