Skip to content
This repository has been archived by the owner on Dec 12, 2023. It is now read-only.

[python]: Update anyio requirement from ~=3.6 to >=3.6,<5.0 #2

Closed
wants to merge 1 commit into from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 19, 2023

Updates the requirements on anyio to permit the latest version.

Release notes

Sourced from anyio's releases.

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)
  • Re-added the item_type argument to create_memory_object_stream() (but using it raises a deprecation warning and does nothing with regards to the static types of the returned streams)
  • 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)
Changelog

Sourced from anyio's changelog.

Version history

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

UNRELEASED

  • 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
  • Bumped minimum version of trio to v0.23

  • Exposed the ResourceGuard class in the public API

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

... (truncated)

Commits
  • 3f1eca1 Rearranged the changelog for v4.0.0
  • f17ffdc Added a GitHub release job to the publishing workflow
  • dea1921 Fixed worker processes getting lost when pruning idle workers (#604)
  • 969f188 Re-added item_type as a deprecated argument to create_memory_object_stream()
  • 51d57d3 Reformatted documentation to 88 columns where possible
  • a8b12fb Fixed one bad link and some factual errors in the docs
  • 54a76c1 Reformatted the migration docs to fit to 88 columns
  • c4f7afe [pre-commit.ci] pre-commit autoupdate (#607)
  • e380c26 Fix TLSListener.handle_handshake_error on asyncio failing to log the error ...
  • 5f208ee Install the correct version of trio along with anyio itself
  • 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)

@dependabot dependabot bot added d:python Update a Python dependency dependencies Add, remove, or update one or more dependencies labels Nov 19, 2023
@jwodder
Copy link
Owner

jwodder commented Nov 19, 2023

@dependabot Rebase.

Updates the requirements on [anyio](https://github.com/agronholm/anyio) to permit the latest version.
- [Release notes](https://github.com/agronholm/anyio/releases)
- [Changelog](https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst)
- [Commits](agronholm/anyio@3.6.0...4.0.0)

---
updated-dependencies:
- dependency-name: anyio
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/pip/anyio-gte-3.6-and-lt-5.0 branch from 2ebec3c to 77bdcef Compare November 19, 2023 17:20
@jwodder
Copy link
Owner

jwodder commented Nov 19, 2023

@dependabot Rebase.

Copy link
Contributor Author

dependabot bot commented on behalf of github Nov 19, 2023

Looks like anyio is up-to-date now, so this is no longer needed.

@dependabot dependabot bot closed this Nov 19, 2023
@dependabot dependabot bot deleted the dependabot/pip/anyio-gte-3.6-and-lt-5.0 branch November 19, 2023 17:27
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
d:python Update a Python dependency dependencies Add, remove, or update one or more dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant