Update dependency anyio to v4.11.0 #34
Open
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==4.4.0->==4.11.0Release Notes
agronholm/anyio (anyio)
v4.11.0Compare Source
reasonparameter toCancelScope.cancel()) (#975)anyio.lowlevel.current_token()toanyio.from_thread.run()andanyio.from_thread.run_sync()as thetokenkeyword argument (#256)anyio_mode = "auto") to make the pytest plugin automatically handle all async tests (#971)anyio.Condition.wait_for()method for feature parity with asyncio (#974)anyio.abc.TaskStatusfromAnytoNone(#964)local_port=0(#857; PR by @11kkw and @agronholm)BrokenResourceErroronsend()would still raiseBrokenResourceErrorafter the stream was closed on asyncio, butClosedResourceErroron Trio. They now both raise aClosedResourceErrorin this scenario. (#671)v4.10.0Compare Source
feed_data()method to theBufferedByteReceiveStreamclass, allowing users to inject data directly into the bufferSocketListener.from_socket()SocketStream.from_socket()UNIXSocketStream.from_socket()UDPSocket.from_socket()ConnectedUDPSocket.from_socket()UNIXDatagramSocket.from_socket()ConnectedUNIXDatagramSocket.from_socket()anyio.ContextManagerMixinandanyio.AsyncContextManagerMixin) to help write classes that embed other context managers, particularly cancel scopes or task groups (#905; PR by @agronholm and @tapetersen)start_blocking_portal()(#818; PR by @davidbrochart)anyio.notify_closingto allow wakinganyio.wait_readableandanyio.wait_writablebefore closing a socket. Among other things, this prevents an OSError on theProactorEventLoop. (#896; PR by @graingert)to_interpretersmodule to use the publicconcurrent.interpretersAPI on Python 3.14 or lateranyio.Path.copy()andanyio.Path.copy_into()failing on Python 3.14.0a7__aexit__on async context managers. CMs which can suppress exceptions should returnbool, orNoneotherwise. (#913; PR by @Enegg)SpooledTemporaryFileso that rollover only occurs when the buffer size exceedsmax_size(#915; PR by @11kkw)anyio.to_interpreterwith Python 3.14.0b2 (#926; PR by @hroncok)SyntaxWarningon Python 3.14 aboutreturninfinally(#816)BrokenWorkerIntepreterexception toBrokenWorkerInterpreter. The old name is available as a deprecated alias. (#938; PR by @ayussh-verma)CapacityLimiteron asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (#947)v4.9.0Compare Source
pytestplugin: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_factoryfixture to generate a free TCP port numberfree_udp_port: function scoped fixture that invokes thefree_udp_port_factoryfixture to generate a free UDP port numberstdinargument toanyio.run_process()akin to whatanyio.open_process(),asyncio.create_subprocess(),trio.run_process(), andsubprocess.run()already accept (PR by @jmehnle)infoproperty toanyio.Pathon Python 3.14anyio.getaddrinfo()to ignore (invalid) IPv6 name resolution results when IPv6 support is disabled in PythonEndOfStreamraised fromMemoryObjectReceiveStream.receive()to leave out theAttributeErrorfrom the exception chain which was merely an implementation detail and caused some confusionTaskGroupnesting on asyncio due to exception chaining when raisingExceptionGroupsinTaskGroup.__aexit__(#863; PR by @tapetersen)anyio.Path.iterdir()making a blocking call in Python 3.13 (#873; PR by @cbornet and @agronholm)connect_tcp()producing cyclic references in tracebacks when raising exceptions (#809; PR by @graingert)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)v4.8.0Compare Source
copy(),copy_into(),move()andmove_into()methods inanyio.Path, available in Python 3.14TaskGroupon asyncio to always spawn tasks non-eagerly, even if using a task factory created viaasyncio.create_eager_task_factory(), to preserve expected Trio-like task scheduling semantics (PR by @agronholm and @graingert)SO_RCVBUF,SO_SNDBUFandTCP_NODELAYon the selector thread waker socket pair (this should improve the performance ofwait_readable()andwait_writable()when using theProactorEventLoop) (#836; PR by @graingert)AssertionErrorwhen usingnest-asyncio(#840)__exit__method (#847; PR by @Enegg)v4.7.0Compare Source
TaskGroupto work with asyncio's eager task factories (#764)wait_readable()andwait_writable()functions which will accept an object with a.fileno()method or an integer handle, and deprecated their now obsolete versions (wait_socket_readable()andwait_socket_writable()) (PR by @davidbrochart)EventAdapter(anEventwith no bound async backend) to allowset()to work even before an async backend is bound to it (#819)wait_readable()andwait_writable()onProactorEventLoop(used on asyncio + Windows by default)ValueErrorin the context of DNS failures (#815; PR by @graingert)readinto()andreadinto1()methods in theanyio.AsyncFileclass (#825)TaskInfo.has_pending_cancellation()on asyncio returning false positives in cleanup code on Python >= 3.11 (#832; PR by @gschaffner)asyncio.Task.uncancelwhen propagating aCancelledErroron exit to a cancelled parent scope (#790; PR by @gschaffner)v4.6.2.post1Compare Source
v4.6.2Compare Source
v4.6.1Compare Source
This release contains all the changes from both v4.5.1 and v4.6.0, plus:
v4.6.0Compare Source
CancelledErroron exit when the enclosing cancel scope has been effectively cancelled (#698)v4.5.2Compare Source
v4.5.1Compare Source
As Python 3.8 support was dropped in v4.6.0, this interim release was created to bring a regression fix to Python 3.8, and adds a few other fixes also present in v4.6.1.
RuntimeError(#798)selfbeing different than the test'sselfin class-based tests (#633) (PR by @agronholm and @graingert)TypeErrorwithTLSStreamon Windows when a certificate verification error occurs when using a truststore SSL certificate (#795)anyio.Pathregarding the limitations imposed by the current Python version on several of its methods, and made theis_junctionmethod unavailable on Python versions earlier than 3.12 (#794)v4.5.0Compare Source
anyio.Lockandanyio.Semaphoreon asyncio (even up to 50 %)fast_acquireparameter toanyio.Lockandanyio.Semaphoreto further boost performance at the expense of safety (acquire()will not yield control back if there is no contention)from_uri(),full_match(),parsermethods/properties inanyio.Path, newly added in Python 3.13 (#737)run_process()andopen_process():startupinfo,creationflags,pass_fds,user,group,extra_groupsandumask(#742)PathLikeinrun_process()andopen_process()to allow for path-like arguments, just likesubprocess.PopenResourceWarningfrom an unclosed memory object stream to include its address for easier identificationstart_blocking_portal()to always use daemonic threads, to accommodate the "loitering event loop" use case__repr__()ofMemoryObjectItemReceiver, whenitemis not defined (#767; PR by @Danipulok)to_process.run_sync()failing to initialize if__main__.__file__pointed to a file in a nonexistent directory (#696)AssertionError: feed_data after feed_eofon asyncio when a subprocess is closed early, before its output has been read (#490)TaskInfo.has_pending_cancellation()on asyncio not respecting shielded scopes (#771; PR by @gschaffner)SocketStream.receive()returningbytearrayinstead ofbyteswhen using asyncio withProactorEventLoop(Windows) (#776)KeyboardInterrupt(ctrl+c) hanging the asyncio pytest runnerConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.