Skip to content

Conversation

@dependabot
Copy link

@dependabot dependabot bot commented on behalf of github Dec 13, 2023

Bumps anyio from 3.7.1 to 4.1.0.

Release notes

Sourced from anyio's releases.

4.1.0

  • Adapted to API changes made in Trio v0.23:
    • Call trio.to_thread.run_sync() using the abandon_on_cancel keyword argument instead of cancellable
    • Removed a checkpoint when exiting a task group
    • Renamed the cancellable argument in anyio.to_thread.run_sync() to abandon_on_cancel (and deprecated the old parameter name)
    • Bumped minimum version of Trio to v0.23
  • Added support for voluntary thread cancellation via anyio.from_thread.check_cancelled()
  • Bumped minimum version of trio to v0.23
  • Exposed the ResourceGuard class in the public API (#627)
  • Fixed RuntimeError: Runner is closed when running higher-scoped async generator fixtures in some cases (#619)
  • Fixed discrepancy between asyncio and trio where reraising a cancellation exception in an except* block would incorrectly bubble out of its cancel scope (#634)

4.0.0

  • BACKWARDS INCOMPATIBLE Replaced AnyIO's own ExceptionGroup class with the PEP 654 BaseExceptionGroup and ExceptionGroup
  • BACKWARDS INCOMPATIBLE Changes to cancellation semantics:
    • Any exceptions raising out of a task groups are now nested inside an ExceptionGroup (or BaseExceptionGroup if one or more BaseException were included)
    • Fixed task group not raising a cancellation exception on asyncio at exit if no child tasks were spawned and an outer cancellation scope had been cancelled before
    • Ensured that exiting a TaskGroup always hits a yield point, regardless of whether there are running child tasks to be waited on
    • On asyncio, cancel scopes will defer cancelling tasks that are scheduled to resume with a finished future
    • On asyncio and Python 3.9/3.10, cancel scopes now only suppress cancellation exceptions if the cancel message matches the scope
    • Task groups on all backends now raise a single cancellation exception when an outer cancel scope is cancelled, and no exceptions other than cancellation exceptions are raised in the group
  • BACKWARDS INCOMPATIBLE Changes the pytest plugin to run all tests and fixtures in the same task, allowing fixtures to set context variables for tests and other fixtures
  • BACKWARDS INCOMPATIBLE Changed anyio.Path.relative_to() and anyio.Path.is_relative_to() to only accept one argument, as passing multiple arguments is deprecated as of Python 3.12
  • BACKWARDS INCOMPATIBLE Dropped support for spawning tasks from old-style coroutine functions (@asyncio.coroutine)
  • BACKWARDS INCOMPATIBLE The policy option on the asyncio backend was changed to loop_factory to accommodate asyncio.Runner
  • Changed anyio.run() to use asyncio.Runner (or a back-ported version of it on Pythons older than 3.11) on the asyncio backend
  • Dropped support for Python 3.7
  • Added support for Python 3.12
  • Bumped minimum version of trio to v0.22
  • Added the anyio.Path.is_junction() and anyio.Path.walk() methods
  • Added create_unix_datagram_socket and create_connected_unix_datagram_socket to create UNIX datagram sockets (PR by Jean Hominal)
  • Fixed from_thread.run and from_thread.run_sync not setting sniffio on asyncio. As a result:
    • Fixed from_thread.run_sync failing when used to call sniffio-dependent functions on asyncio
    • Fixed from_thread.run failing when used to call sniffio-dependent functions on asyncio from a thread running trio or curio
    • Fixed deadlock when using from_thread.start_blocking_portal(backend="asyncio") in a thread running trio or curio (PR by Ganden Schaffner)
  • Improved type annotations:
    • The item_type argument of create_memory_object_stream was deprecated. To indicate the item type handled by the stream, use create_memory_object_stream[T_Item]() instead. Type checking should no longer fail when annotating memory object streams with uninstantiable item types (PR by Ganden Schaffner)
  • Added the CancelScope.cancelled_caught property which tells users if the cancel scope suppressed a cancellation exception
  • Fixed fail_after() raising an unwarranted TimeoutError when the cancel scope was cancelled before reaching its deadline
  • Fixed MemoryObjectReceiveStream.receive() causing the receiving task on asyncio to remain in a cancelled state if the operation was cancelled after an item was queued to be received by the task (but before the task could actually receive the item)
  • Fixed TaskGroup.start() on asyncio not responding to cancellation from the outside
  • Fixed tasks started from BlockingPortal not notifying synchronous listeners (concurrent.futures.wait()) when they're cancelled
  • Removed unnecessary extra waiting cycle in Event.wait() on asyncio in the case where the event was not yet set
  • Fixed processes spawned by anyio.to_process() being "lost" as unusable to the process pool when processes that have idled over 5 minutes are pruned at part of the to_process.run_sync() call, leading to increased memory consumption (PR by Anael Gorfinkel)

Changes since 4.0.0rc1:

  • Fixed the type annotation of TaskGroup.start_soon() to accept any awaitables (already in v3.7.0 but was missing from 4.0.0rc1)
  • Changed CancelScope to also consider the cancellation count (in addition to the cancel message) on asyncio to determine if a cancellation exception should be swallowed on scope exit, to combat issues where third party libraries catch the CancelledError and raise another, thus erasing the original cancel message
  • Worked around a CPython bug that caused TLSListener.handle_handshake_error() on asyncio to log "NoneType: None" instead of the error (PR by Ganden Schaffner)

... (truncated)

Changelog

Sourced from anyio's changelog.

Version history

This library adheres to Semantic Versioning 2.0 <http://semver.org/>_.

UNRELEASED

  • Add support for byte-based paths in connect_unix, create_unix_listeners, create_unix_datagram_socket, and create_connected_unix_datagram_socket. (PR by Lura Skye)
  • Fixed adjusting the total number of tokens in a CapacityLimiter on asyncio failing to wake up tasks waiting to acquire the limiter in certain edge cases (fixed with help from Egor Blagov)
  • Fixed loop_factory and use_uvloop options not being used on the asyncio backend ([#643](https://github.com/agronholm/anyio/issues/643) <https://github.com/agronholm/anyio/issues/643>_)

4.1.0

  • Adapted to API changes made in Trio v0.23:

    • Call trio.to_thread.run_sync() using the abandon_on_cancel keyword argument instead of cancellable
    • Removed a checkpoint when exiting a task group
    • Renamed the cancellable argument in anyio.to_thread.run_sync() to abandon_on_cancel (and deprecated the old parameter name)
    • Bumped minimum version of Trio to v0.23
  • Added support for voluntary thread cancellation via anyio.from_thread.check_cancelled()

  • Bumped minimum version of trio to v0.23

  • Exposed the ResourceGuard class in the public API ([#627](https://github.com/agronholm/anyio/issues/627) <https://github.com/agronholm/anyio/issues/627>_)

  • Fixed RuntimeError: Runner is closed when running higher-scoped async generator fixtures in some cases ([#619](https://github.com/agronholm/anyio/issues/619) <https://github.com/agronholm/anyio/issues/619>_)

  • Fixed discrepancy between asyncio and trio where reraising a cancellation exception in an except* block would incorrectly bubble out of its cancel scope ([#634](https://github.com/agronholm/anyio/issues/634) <https://github.com/agronholm/anyio/issues/634>_)

4.0.0

  • BACKWARDS INCOMPATIBLE Replaced AnyIO's own ExceptionGroup class with the PEP 654 BaseExceptionGroup and ExceptionGroup

  • BACKWARDS INCOMPATIBLE Changes to cancellation semantics:

    • Any exceptions raising out of a task groups are now nested inside an ExceptionGroup (or BaseExceptionGroup if one or more BaseException were included)
    • Fixed task group not raising a cancellation exception on asyncio at exit if no child tasks were spawned and an outer cancellation scope had been cancelled before
    • Ensured that exiting a TaskGroup always hits a yield point, regardless of whether there are running child tasks to be waited on

... (truncated)

Commits
  • 46a45c7 Bumped up the version
  • 8079a22 Added links to closed issues
  • 3a01793 Added a "Queues" section to the docs for anyone looking for queues
  • 3186fb9 Implemented voluntary cancellation in worker threads (#629)
  • c360b99 Fixed asyncio CancelScope not recognizing its own cancellation exception (#...
  • 523381a Install uvloop on Python 3.12 too for tests
  • f0707cd Fixed RuntimeError: Runner is closed in the pytest plugin (#635)
  • 97b7b08 Fixed ExceptionGroup example (#637)
  • 0eab46a [pre-commit.ci] pre-commit autoupdate (#636)
  • 019835a Updated pre-commit modules
  • Additional commits viewable in compare view

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 3.7.1 to 4.1.0.
- [Release notes](https://github.com/agronholm/anyio/releases)
- [Changelog](https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst)
- [Commits](agronholm/anyio@3.7.1...4.1.0)

---
updated-dependencies:
- dependency-name: anyio
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Dec 13, 2023
@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Dec 18, 2023

Superseded by #12.

@dependabot dependabot bot closed this Dec 18, 2023
@dependabot dependabot bot deleted the dependabot/pip/anyio-4.1.0 branch December 18, 2023 15:42
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