Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump anyio from 4.3.0 to 4.6.0 #525

Merged
merged 1 commit into from
Sep 23, 2024
Merged

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Sep 23, 2024

Bumps anyio from 4.3.0 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 and anyio.Semaphore on asyncio (even up to 50 %)
  • Added the fast_acquire parameter to anyio.Lock and anyio.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 in anyio.Path, newly added in Python 3.13 (#737)
  • Added support for more keyword arguments for run_process() and open_process(): startupinfo, creationflags, pass_fds, user, group, extra_groups and umask (#742)
  • Improved the type annotations and support for PathLike in run_process() and open_process() to allow for path-like arguments, just like subprocess.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__() of MemoryObjectItemReceiver, when item 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() returning bytearray instead of bytes when using asyncio with ProactorEventLoop (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 runner

4.4.0

  • Added the BlockingPortalProvider class to aid with constructing synchronous counterparts to asynchronous interfaces that would otherwise require multiple blocking portals
  • Added __slots__ to AsyncResource 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 the start() method before the first checkpoint is reached after calling task_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 the start() method before the first checkpoint is reached after calling task_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 raises KeyError
  • Fixed the asyncio backend not respecting the PYTHONASYNCIODEBUG environment variable when setting the debug flag in anyio.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 for MemoryObjectReceiveStream and MemoryObjectSendStream that were garbage collected without being closed (PR by Andrey Kazantcev)
  • Fixed MemoryObjectSendStream.send() not raising BrokenResourceError when the last corresponding MemoryObjectReceiveStream is closed while waiting to send a falsey item (#731; PR by Ganden Schaffner)
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 and anyio.Semaphore on asyncio (even up to 50 %)
  • Added the fast_acquire parameter to anyio.Lock and anyio.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 in anyio.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() and open_process(): startupinfo, creationflags, pass_fds, user, group, extra_groups and umask ([#742](https://github.com/agronholm/anyio/issues/742) <https://github.com/agronholm/anyio/issues/742>_)
  • Improved the type annotations and support for PathLike in run_process() and open_process() to allow for path-like arguments, just like subprocess.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__() of MemoryObjectItemReceiver, when item 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 version
  • 01a37c6 Fixed TaskGroup and CancelScope exit issues on asyncio (#774)
  • 7f35ce7 Bumped up the version
  • 108cc83 [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 extension
  • 4e9f18d Enabled uvloop to be used in the test suite on Python 3.13
  • 7de6441 Pin Sphinx to a compatible version with sphinx-rtd-theme
  • 41647f4 Fixed feed_data after feed_eof assertion errors on asyncio (#752)
  • Additional commits viewable in compare view

Most Recent Ignore Conditions Applied to This Pull Request
Dependency Name Ignore Conditions
anyio [>= 4.4.a, < 4.5]

Dependabot compatibility score

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)

Bumps [anyio](https://github.com/agronholm/anyio) from 4.3.0 to 4.6.0.
- [Release notes](https://github.com/agronholm/anyio/releases)
- [Changelog](https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst)
- [Commits](agronholm/anyio@4.3.0...4.6.0)

---
updated-dependencies:
- dependency-name: anyio
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Sep 23, 2024
@pudo
Copy link
Member

pudo commented Sep 23, 2024

@dependabot squash and merge

@dependabot dependabot bot merged commit 580d367 into main Sep 23, 2024
5 checks passed
@dependabot dependabot bot deleted the dependabot/pip/anyio-4.6.0 branch September 23, 2024 08:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file python Pull requests that update Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant