- Added async support for temporary file handling (#344; PR by @11kkw)
- Added 4 new fixtures for the AnyIO
pytest
plugin:free_tcp_port_factory
: session scoped fixture returning a callable that generates unused TCP port numbersfree_udp_port_factory
: session scoped fixture returning a callable that generates unused UDP port numbersfree_tcp_port
: function scoped fixture that invokes thefree_tcp_port_factory
fixture to generate a free TCP port numberfree_udp_port
: function scoped fixture that invokes thefree_udp_port_factory
fixture to generate a free UDP port number
- Added
stdin
argument toanyio.run_process()
akin to whatanyio.open_process()
,asyncio.create_subprocess()
,trio.run_process()
, andsubprocess.run()
already accept (PR by @jmehnle) - Added the
info
property toanyio.Path
on Python 3.14 - Changed
anyio.getaddrinfo()
to ignore (invalid) IPv6 name resolution results when IPv6 support is disabled in Python - Changed
EndOfStream
raised fromMemoryObjectReceiveStream.receive()
to leave out theAttributeError
from the exception chain which was merely an implementation detail and caused some confusion - Fixed traceback formatting growing quadratically with level of
TaskGroup
nesting on asyncio due to exception chaining when raisingExceptionGroups
inTaskGroup.__aexit__
(#863; PR by @tapetersen) - Fixed
anyio.Path.iterdir()
making a blocking call in Python 3.13 (#873; PR by @cbornet and @agronholm) - Fixed
connect_tcp()
producing cyclic references in tracebacks when raising exceptions (#809; PR by @graingert) - Fixed
anyio.to_thread.run_sync()
needlessly holding on to references of the context, function, arguments and others until the next work item on asyncio (PR by @Wankupi)