pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/py-anyio



Module Name:    pkgsrc
Committed By:   adam
Date:           Tue Nov  3 07:47:19 UTC 2026

Modified Files:
        pkgsrc/devel/py-anyio: Makefile distinfo

Log Message:
py-anyio: updated to 4.16.0

4.16.0

*New features*

- Added ``BlockingPortal.call_async()`` for asynchronously calling into an event loop
  with optional abandonment on cancellation
- Added SOCK_SEQPACKET support to ``connect_unix()`` and ``create_unix_listener()``

*Other changes*

- Changed UDP sockets on the asyncio backend to make ``send()`` wait until the
  datagram has been passed to the operating system

*Bug fixes*

- Fixed documentation implying that ``use_uvloop=True`` falls back to the standard
  event loop when uvloop (winloop on Windows) is not installed, and showed how to
  skip the corresponding pytest backend variant when the dependency is missing
- Fixed ``get_current_task()`` on the asyncio backend raising an opaque
  ``TypeError: cannot create weak reference to 'NoneType' object`` instead of a clear
  error when called from a callback scheduled via ``loop.call_soon_threadsafe()`` (e.g.
  from within ``from_thread.run_sync()``), where ``asyncio.current_task()`` is
  legitimately ``None``
- Fixed ``CancelScope`` on the asyncio backend swallowing a native ``Task.cancel()``
  that was delivered in the same event loop iteration as the scope's own cancellation
  (such as a ``move_on_after()`` deadline expiring), which left the host task with a
  pending cancellation request that never raised ``CancelledError``
- Fixed UDP socket closing hanging if a datagram send was still in flight
- Fixed concurrent ``aclose_forcefully()`` calls on asyncio socket streams returning
  before the underlying socket was closed
- Fixed ``aclose()`` on sockets not checkpointing, and thus failing to raise a
  cancellation exception when called inside a cancelled scope (affected UNIX socket
  streams and UNIX datagram sockets on asyncio, and all sockets on Trio)
- Fixed ``aclose()`` on asyncio TCP socket listeners not checkpointing, and leaking the
  listening socket if cancelled while another task was waiting in ``accept()``
- Fixed ``accept()`` on asyncio UNIX socket listeners hanging forever, and leaving the
  listening socket registered with the event loop, when the listener was closed by
  another task
- Fixed ``send()`` on asyncio TCP and UDP sockets returning normally, despite the data
  being discarded, when the socket was closed by another task (or, for TCP, the
  connection was lost) while ``send()`` was waiting for the operating system to accept
  the data
- Fixed ``SocketStream.send()`` on the asyncio backend handing its data to a paused
  transport after a previous ``send()`` was cancelled
- Fixed ``sleep()`` treating a negative delay (including ``-inf``) inconsistently
  across backends (asyncio returned immediately; Trio raised ``ValueError``) by
  raising ``ValueError`` on all backends
- Fixed ``create_tcp_listener()`` occasionally failing with a message like
  ``Could not create 2 listeners with a consistent port`` when an ephemeral port is
  requested and IPv6 is enabled and the dual-stack path is not available or a specific
  local host name was given
- Fixed ``AsyncFile`` not shielding against cancellation while closing
- Fixed ``TemporaryDirectory.cleanup()`` reacting to cancellation prematurely when the host
  task was already cancelled, causing the actual cleanup operation to be skipped
- Fixed a NaN deadline being accepted on asyncio while Trio raised ``ValueError``,
  which silently disabled the timeout (``fail_after(math.nan)`` returned instead of
  raising ``TimeoutError``); ``CancelScope`` now rejects it on both backends
- Fixed ``FileReadStream`` and ``FileWriteStream`` leaving files open when cancelled
  during context manager exit, including unflushed writes
- Fixed ``Condition.notify()`` and ``Condition.notify_all()`` failing when the
  underlying lock was acquired directly rather than through the condition
- Fixed importing AnyIO with loaders that do not provide ``__file__``, such as
  PyOxidizer, raising ``TypeError`` instead of falling back to eager imports
- Fixed text receive streams silently discarding incomplete characters at end-of-file
  instead of applying the configured decoding error handler
- Fixed ``Semaphore(fast_acquire=True)`` losing its fast-acquire behavior when
  instantiated outside a running event loop
- Fixed ``BlockingPortalProvider`` permanently failing with an ``AttributeError`` on
  every subsequent use if the first attempt to start its blocking portal failed
- Fixed ``create_udp_socket()`` silently ignoring the ``local_port`` argument when
  ``local_host`` was omitted, making the socket bind to a random ephemeral port
  instead of the requested one
- Fixed worker threads on the asyncio backend never returning to the idle pool (and
  thus never being reused or pruned) when a ``to_thread.run_sync()`` call was cancelled
  after it had been queued for the worker but before the worker thread had picked it up
- Fixed pytest plugin running Hypothesis async tests only on the first parametrized
  backend instead of each backend
- Fixed ``TypeError`` when subclassing an existing ``TypedAttributeSet``
  subclass, and this subclass contains type annotations
- Fixed ``Lock.locked()`` (and ``Condition.locked()``) raising ``NoEventLoopError``
  when the lock was created outside a running event loop
- Fixed ``connect_tcp()`` leaking a connected socket when an enclosing cancel scope
  was cancelled before the connection attempt task group exited
- Fixed ``create_connected_udp_socket()`` silently ignoring ``local_port`` when
  ``local_host`` was not given: the local address was left unset, so the OS picked
  an ephemeral port instead of the requested one
- Fixed ``BlockingPortalProvider`` not passing the exception raised in its ``with``
  block on to the ``start_blocking_portal()`` context manager it wraps
- Fixed ``anyio.itertools.islice()`` not consuming the first ``start`` items when
  ``stop <= start``
- Fixed ``BufferedByteReceiveStream.receive_exactly()`` and ``receive_until()`` returning buffered data after explicit closure instead of raising ``ClosedResourceError``
- Fixed a TLS stream sending records the peer could no longer decrypt after a cancelled
  ``send()`` lost an already-encrypted record; the stream now raises
  ``BrokenResourceError`` on further use instead
- Fixed ``close()`` on memory object streams not waking up tasks blocked in ``send()``
  or ``receive()`` on the same stream
- Fixed ``anyio.itertools.product()`` acquiring and consuming unused input iterables when
  ``repeat=0``
- Fixed ``SpooledTemporaryFile`` rolling over to disk on writes when ``max_size`` is zero (the default)
- Fixed Trio UDP sockets remaining open when initialization failed or was cancelled
- Fixed SpooledTemporaryFile.rollover() moving the current file position to the end of the file
- Fixed cancellation during temporary directory creation leaving the directory behind
  while its context manager is retained
- Fixed cancellation during ``SpooledTemporaryFile.rollover()`` losing buffered contents
- Fixed ``TextSendStream.send()`` re-emitting the byte order mark on every item with
  BOM-emitting encodings (``utf-16``, ``utf-32``, ``utf-8-sig``), which made the peer decode
  a stray ``\ufeff`` in front of every message after the first
- Fixed buffered byte streams returning empty bytes when a wrapped object stream received
  empty messages instead of waiting for data or raising ``EndOfStream``
- Fixed ``BlockingPortal`` crashing with ``InvalidStateError`` when a future it
  returned was cancelled just as the callable was completing
- Fixed ``UNIXSocketStream.send_fds()`` silently truncating messages on short socket writes
- Fixed cancelled TCP receives on the asyncio backend leaving transport reads enabled,
  allowing incoming data to accumulate while the application was not receiving.
- Fixed ``CapacityLimiter.acquire_on_behalf_of()`` on asyncio releasing the wrong
  borrower when the acquiring task was cancelled during the cancel-shielded
  checkpoint that runs after a non-blocking acquisition


To generate a diff of this commit:
cvs rdiff -u -r1.42 -r1.43 pkgsrc/devel/py-anyio/Makefile
cvs rdiff -u -r1.35 -r1.36 pkgsrc/devel/py-anyio/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/py-anyio/Makefile
diff -u pkgsrc/devel/py-anyio/Makefile:1.42 pkgsrc/devel/py-anyio/Makefile:1.43
--- pkgsrc/devel/py-anyio/Makefile:1.42 Fri Oct 16 20:39:44 2026
+++ pkgsrc/devel/py-anyio/Makefile      Tue Nov  3 07:47:18 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.42 2026/10/16 20:39:44 wiz Exp $
+# $NetBSD: Makefile,v 1.43 2026/11/03 07:47:18 adam Exp $
 
-DISTNAME=      anyio-4.15.1
+DISTNAME=      anyio-4.16.0
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    devel python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=a/anyio/}

Index: pkgsrc/devel/py-anyio/distinfo
diff -u pkgsrc/devel/py-anyio/distinfo:1.35 pkgsrc/devel/py-anyio/distinfo:1.36
--- pkgsrc/devel/py-anyio/distinfo:1.35 Sun Sep  6 17:10:20 2026
+++ pkgsrc/devel/py-anyio/distinfo      Tue Nov  3 07:47:18 2026
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.35 2026/09/06 17:10:20 adam Exp $
+$NetBSD: distinfo,v 1.36 2026/11/03 07:47:18 adam Exp $
 
-BLAKE2s (anyio-4.15.1.tar.gz) = 55ee925203c878919bd8d4e1cdd18d0741732a8f1eacdd3dfcd78aa71c4e50ef
-SHA512 (anyio-4.15.1.tar.gz) = 5eff3a04d2d79cf8e5264799565a6c8a3cdab41e3ecebdfaf7c08fa75e41879f4dccaebec0e8676ccbbe834d541740dbbc011f6773bc0e98e6fbecbbd61e7467
-Size (anyio-4.15.1.tar.gz) = 276966 bytes
+BLAKE2s (anyio-4.16.0.tar.gz) = 1c9ffcc5fb368d1fd8a60c33246fa11aa57751bfbfafa2df1663633ac221fbc1
+SHA512 (anyio-4.16.0.tar.gz) = dbbb991262feb3d22161623dd2647d71aa54c51a13b699d7af0e00a1d84160e8a067922469ceda9cbafdf4ee68d93af65300132878e0a9eb9fe41919fdbd4e85
+Size (anyio-4.16.0.tar.gz) = 310971 bytes



Home | Main Index | Thread Index | Old Index