AgentGPT
AgentGPT copied to clipboard
Bump anyio from 3.7.1 to 4.6.0 in /platform
Bumps anyio from 3.7.1 to 4.6.0.
Release notes
Sourced from anyio's releases.
4.6.0
- Dropped support for Python 3.8 (as #698 cannot be resolved without cancel message support)
- Fixed 100% CPU use on asyncio while waiting for an exiting task group to finish while said task group is within a cancelled cancel scope (#695)
- Fixed cancel scopes on asyncio not propagating
CancelledError
on exit when the enclosing cancel scope has been effectively cancelled (#698)- Fixed asyncio task groups not yielding control to the event loop at exit if there were no child tasks to wait on
- Fixed inconsistent task uncancellation with asyncio cancel scopes belonging to a task group when said task group has child tasks running
4.5.0
- Improved the performance of
anyio.Lock
andanyio.Semaphore
on asyncio (even up to 50 %)- Added the
fast_acquire
parameter toanyio.Lock
andanyio.Semaphore
to 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()
,parser
methods/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_groups
andumask
(#742)- Improved the type annotations and support for
PathLike
inrun_process()
andopen_process()
to allow for path-like arguments, just likesubprocess.Popen
- Changed the
ResourceWarning
from 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
, whenitem
is 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_eof
on 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()
returningbytearray
instead ofbytes
when 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 <agronholm/anyio#781>_; PR by
@​tapetersen
)- Fixed
KeyboardInterrupt
(ctrl+c) hanging the asyncio pytest runner4.4.0
- Added the
BlockingPortalProvider
class to aid with constructing synchronous counterparts to asynchronous interfaces that would otherwise require multiple blocking portals- Added
__slots__
toAsyncResource
so that child classes can use__slots__
(#733; PR by Justin Su)- Added the
TaskInfo.has_pending_cancellation()
method- Fixed erroneous
RuntimeError: called 'started' twice on the same task status
when cancelling a task in a TaskGroup created with thestart()
method before the first checkpoint is reached after callingtask_status.started()
(#706; PR by Dominik Schwabe)- Fixed two bugs with
TaskGroup.start()
on asyncio:
- Fixed erroneous
RuntimeError: called 'started' twice on the same task status
when cancelling a task in a TaskGroup created with thestart()
method before the first checkpoint is reached after callingtask_status.started()
(#706; PR by Dominik Schwabe)- Fixed the entire task group being cancelled if a
TaskGroup.start()
call gets cancelled (#685, #710)- Fixed a race condition that caused crashes when multiple event loops of the same backend were running in separate threads and simultaneously attempted to use AnyIO for their first time (#425; PR by David Jiricek and Ganden Schaffner)
- Fixed cancellation delivery on asyncio incrementing the wrong cancel scope's cancellation counter when cascading a cancel operation to a child scope, thus failing to uncancel the host task (#716)
- Fixed erroneous
TypedAttributeLookupError
if a typed attribute getter raisesKeyError
- Fixed the asyncio backend not respecting the
PYTHONASYNCIODEBUG
environment variable when setting thedebug
flag inanyio.run()
- Fixed
SocketStream.receive()
not detecting EOF on asyncio if there is also data in the read buffer (#701)- Fixed
MemoryObjectStream
dropping an item if the item is delivered to a recipient that is waiting to receive an item but has a cancellation pending (#728)- Emit a
ResourceWarning
forMemoryObjectReceiveStream
andMemoryObjectSendStream
that were garbage collected without being closed (PR by Andrey Kazantcev)- Fixed
MemoryObjectSendStream.send()
not raisingBrokenResourceError
when the last correspondingMemoryObjectReceiveStream
is closed while waiting to send a falsey item (#731; PR by Ganden Schaffner)4.3.0
Added support for the Python 3.12
walk_up
keyword argument inanyio.Path.relative_to()
(PR by Colin Taylor)Fixed passing
total_tokens
toanyio.CapacityLimiter()
as a keyword argument not working on thetrio
backend (#515)Fixed
Process.aclose()
not performing the minimum level of necessary cleanup when cancelled. Previously:
- Cancellation of
Process.aclose()
could leak an orphan process
... (truncated)
Changelog
Sourced from anyio's changelog.
Version history
This library adheres to
Semantic Versioning 2.0 <http://semver.org/>
_.4.6.0
- Dropped support for Python 3.8 (as
[#698](https://github.com/agronholm/anyio/issues/698) <https://github.com/agronholm/anyio/issues/698>
_ cannot be resolved without cancel message support)- Fixed 100% CPU use on asyncio while waiting for an exiting task group to finish while said task group is within a cancelled cancel scope (
[#695](https://github.com/agronholm/anyio/issues/695) <https://github.com/agronholm/anyio/issues/695>
_)- Fixed cancel scopes on asyncio not propagating
CancelledError
on exit when the enclosing cancel scope has been effectively cancelled ([#698](https://github.com/agronholm/anyio/issues/698) <https://github.com/agronholm/anyio/issues/698>
_)- Fixed asyncio task groups not yielding control to the event loop at exit if there were no child tasks to wait on
- Fixed inconsistent task uncancellation with asyncio cancel scopes belonging to a task group when said task group has child tasks running
4.5.0
- Improved the performance of
anyio.Lock
andanyio.Semaphore
on asyncio (even up to 50 %)- Added the
fast_acquire
parameter toanyio.Lock
andanyio.Semaphore
to 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()
,parser
methods/properties inanyio.Path
, newly added in Python 3.13 ([#737](https://github.com/agronholm/anyio/issues/737) <https://github.com/agronholm/anyio/issues/737>
_)- Added support for more keyword arguments for
run_process()
andopen_process()
:startupinfo
,creationflags
,pass_fds
,user
,group
,extra_groups
andumask
([#742](https://github.com/agronholm/anyio/issues/742) <https://github.com/agronholm/anyio/issues/742>
_)- Improved the type annotations and support for
PathLike
inrun_process()
andopen_process()
to allow for path-like arguments, just likesubprocess.Popen
- Changed the
ResourceWarning
from 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
, whenitem
is not defined ([#767](https://github.com/agronholm/anyio/issues/767) <https://github.com/agronholm/anyio/pulls/767>
_; PR by@​Danipulok
)- Fixed
to_process.run_sync()
failing to initialize if__main__.__file__
pointed to a file in a nonexistent directory ([#696](https://github.com/agronholm/anyio/issues/696) <https://github.com/agronholm/anyio/issues/696>
_)- Fixed
AssertionError: feed_data after feed_eof
on asyncio when a subprocess is closed early, before its output has been read ([#490](https://github.com/agronholm/anyio/issues/490) <https://github.com/agronholm/anyio/issues/490>
_)
... (truncated)
Commits
8cce749
Bumped up the version01a37c6
Fixed TaskGroup and CancelScope exit issues on asyncio (#774)7f35ce7
Bumped up the version108cc83
[pre-commit.ci] pre-commit autoupdate (#788)d1aea98
Fixed KeyboardInterrupt hanging the asyncio test runner (#779)c1aff53
[pre-commit.ci] pre-commit autoupdate (#785)89d8b4c
Use sphinx_rtd_theme also as an extension4e9f18d
Enabled uvloop to be used in the test suite on Python 3.137de6441
Pin Sphinx to a compatible version with sphinx-rtd-theme41647f4
Fixed feed_data after feed_eof assertion errors on asyncio (#752)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
-
@dependabot rebase
will rebase this PR -
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it -
@dependabot merge
will merge this PR after your CI passes on it -
@dependabot squash and merge
will squash and merge this PR after your CI passes on it -
@dependabot cancel merge
will cancel a previously requested merge and block automerging -
@dependabot reopen
will reopen this PR if it is closed -
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot show <dependency name> ignore conditions
will show all of the ignore conditions of the specified dependency -
@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)