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

Update dependency anyio to v4.7.0 #69

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Dec 16, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
anyio (changelog) ==4.1.0 -> ==4.7.0 age adoption passing confidence

Release Notes

agronholm/anyio (anyio)

v4.7.0

Compare Source

  • Updated TaskGroup to work with asyncio's eager task factories (#​764)
  • Added the wait_readable() and wait_writable() functions which will accept an object with a .fileno() method or an integer handle, and deprecated their now obsolete versions (wait_socket_readable() and wait_socket_writable()) (PR by @​davidbrochart)
  • Changed EventAdapter (an Event with no bound async backend) to allow set() to work even before an async backend is bound to it (#​819)
  • Added support for wait_readable() and wait_writable() on ProactorEventLoop (used on asyncio + Windows by default)
  • Fixed a misleading ValueError in the context of DNS failures (#​815; PR by @​graingert)
  • Fixed the return type annotations of readinto() and readinto1() methods in the anyio.AsyncFile class (#​825)
  • Fixed TaskInfo.has_pending_cancellation() on asyncio returning false positives in cleanup code on Python >= 3.11 (#​832; PR by @​gschaffner)
  • Fixed cancelled cancel scopes on asyncio calling asyncio.Task.uncancel when propagating a CancelledError on exit to a cancelled parent scope (#​790; PR by @​gschaffner)

v4.6.2.post1

Compare Source

v4.6.2

Compare Source

  • Fixed regression caused by (#​807) that prevented the use of parametrized async fixtures

v4.6.1

Compare Source

This release contains all the changes from both v4.5.1 and v4.6.0, plus:

  • Fixed TaskGroup and CancelScope producing cyclic references in tracebacks when raising exceptions (#​806) (PR by @​graingert)

v4.6.0

Compare Source

  • 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

v4.5.2

Compare Source

  • Fixed regression caused by (#​807) that prevented the use of parametrized async fixtures.

v4.5.1

Compare 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.

  • Fixed acquring a lock twice in the same task on asyncio hanging instead of raising a RuntimeError (#​798)
  • Fixed an async fixture's self being different than the test's self in class-based tests (#​633) (PR by @​agronholm and @​graingert)
  • Fixed TypeError with TLSStream on Windows when a certificate verification error occurs when using a truststore SSL certificate (#​795)
  • Corrected documentation on anyio.Path regarding the limitations imposed by the current Python version on several of its methods, and made the is_junction method unavailable on Python versions earlier than 3.12 (#​794)

v4.5.0

Compare Source

  • 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 <#​781>_; PR by @​tapetersen)
  • Fixed KeyboardInterrupt (ctrl+c) hanging the asyncio pytest runner

v4.4.0

Compare Source

  • 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)

v4.3.0

Compare Source

  • Added support for the Python 3.12 walk_up keyword argument in anyio.Path.relative_to() (PR by Colin Taylor)

  • Fixed passing total_tokens to anyio.CapacityLimiter() as a keyword argument not working on the trio 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
    • Cancellation of run_process() could very briefly leak an orphan process.
    • Cancellation of Process.aclose() or run_process() on Trio could leave standard streams unclosed

    (PR by Ganden Schaffner)

  • Fixed Process.stdin.aclose(), Process.stdout.aclose(), and Process.stderr.aclose() not including a checkpoint on asyncio (PR by Ganden Schaffner)

  • Fixed documentation on how to provide your own typed attributes

v4.2.0

Compare Source

  • 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)

  • Enabled the Event and CapacityLimiter classes to be instantiated outside an event loop thread

  • Broadly improved/fixed the type annotations. Among other things, many functions and methods that take variadic positional arguments now make use of PEP 646 TypeVarTuple to allow the positional arguments to be validated by static type checkers. These changes affected numerous methods and functions, including:

    • anyio.run()
    • TaskGroup.start_soon()
    • anyio.from_thread.run()
    • anyio.from_thread.run_sync()
    • anyio.to_thread.run_sync()
    • anyio.to_process.run_sync()
    • BlockingPortal.call()
    • BlockingPortal.start_task_soon()
    • BlockingPortal.start_task()

    (also resolves #​560)

  • Fixed various type annotations of anyio.Path to match Typeshed:

    • anyio.Path.__lt__()
    • anyio.Path.__le__()
    • anyio.Path.__gt__()
    • anyio.Path.__ge__()
    • anyio.Path.__truediv__()
    • anyio.Path.__rtruediv__()
    • anyio.Path.hardlink_to()
    • anyio.Path.samefile()
    • anyio.Path.symlink_to()
    • anyio.Path.with_segments()

    (PR by Ganden Schaffner)

  • 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)

  • Fixed cancellation propagating on asyncio from a task group to child tasks if the task hosting the task group is in a shielded cancel scope (#​642)


Configuration

📅 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot changed the title Update dependency anyio to v4.2.0 Update dependency anyio to v4.3.0 Feb 19, 2024
@renovate renovate bot force-pushed the renovate/anyio-4.x branch from 48e6970 to 07a0a53 Compare February 19, 2024 09:27
@renovate renovate bot changed the title Update dependency anyio to v4.3.0 Update dependency anyio to v4.4.0 May 27, 2024
@renovate renovate bot force-pushed the renovate/anyio-4.x branch from 07a0a53 to c860da0 Compare May 27, 2024 00:20
@renovate renovate bot force-pushed the renovate/anyio-4.x branch from c860da0 to f8379a1 Compare September 19, 2024 14:36
@renovate renovate bot changed the title Update dependency anyio to v4.4.0 Update dependency anyio to v4.5.0 Sep 19, 2024
@renovate renovate bot changed the title Update dependency anyio to v4.5.0 Update dependency anyio to v4.6.0 Sep 21, 2024
@renovate renovate bot force-pushed the renovate/anyio-4.x branch from f8379a1 to e854c42 Compare September 21, 2024 12:30
@renovate renovate bot force-pushed the renovate/anyio-4.x branch from e854c42 to 4cbe1dd Compare October 13, 2024 19:59
@renovate renovate bot changed the title Update dependency anyio to v4.6.0 Update dependency anyio to v4.6.1 Oct 13, 2024
@renovate renovate bot force-pushed the renovate/anyio-4.x branch from 4cbe1dd to efc9cf3 Compare October 14, 2024 01:34
@renovate renovate bot changed the title Update dependency anyio to v4.6.1 Update dependency anyio to v4.6.2 Oct 14, 2024
@renovate renovate bot force-pushed the renovate/anyio-4.x branch from efc9cf3 to 3b071d1 Compare October 14, 2024 20:11
@renovate renovate bot changed the title Update dependency anyio to v4.6.2 Update dependency anyio to v4.6.2.post1 Oct 14, 2024
@renovate renovate bot changed the title Update dependency anyio to v4.6.2.post1 Update dependency anyio to v4.7.0 Dec 5, 2024
@renovate renovate bot force-pushed the renovate/anyio-4.x branch from 3b071d1 to 0866f09 Compare December 5, 2024 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants