Added context manager mix-in classes#905
Conversation
|
Open issues:
|
src/anyio/_core/_contextmanagers.py
Outdated
|
|
||
| This class is designed to streamline the use of context management by | ||
| requiring the implementation of the `__contextmanager__` method, which | ||
| should yield instances of the class itself. It then wraps this generator |
There was a problem hiding this comment.
Well, there's no requirement for a context manager to return Self and the wrapper shouldn't enforce that. It should accept / forward whatever type __contextmanager__ is declared to return.
On the other hand, what this wrapper does not do is to ensure that the context is not entered twice, and that really is a bug.
There was a problem hiding this comment.
Well, there's no requirement for a context manager to return Self and the wrapper shouldn't enforce that. It should accept / forward whatever type contextmanager is declared to return.
I've already updated the docstring before you posted this. This version was never intended to be pushed to GH.
On the other hand, what this wrapper does not do is to ensure that the context is not entered twice, and that really is a bug.
Hm, I see what you mean. But rather than raise an error here, perhaps reentrancy should be properly supported instead?
There was a problem hiding this comment.
On second thought, I don't think it's feasible to support reentrancy, as there's no way to track which generator to use in __aexit__().
There was a problem hiding this comment.
I've thus disallowed reentrancy.
|
I have been doing something like this in my own codebase for ages by now. One problem, though: in a subclass, how do I "cleanly" call the superclass's which is … meh. Anyway, whichever way we come up with needs documentation. |
This is a very good point and we need to have an answer before going forward with this. |
|
I think we need to start by thinking what the ideal solution would look like, and then see if we can implement that. |
|
Right. Ideally we'd be able to simply do |
|
I pushed those changes, but I encountered a different problem: How can we override the type parameter when subclassing? The pre-commit checks fail for this reason, and I don't know how to fix this. |
|
Huh. pyright doesn't understand this either, which frankly surprises me somewhat. |
Doesn't understand what? The parent class pins the type variable to itself, and that class does not have the |
|
There appears to be no way to pin the type variable to |
|
The problem here is that If it was allowed/defined and possible we would want to parametrize it directly with class DummyContextManager(ContextManagerMixin[Self]):
...
@contextmanager
def __contextmanager__(self) -> Generator[Self]:
...What does work here is the old workaround with a typevar with a bound as: _TSelf = TypeVar("_TSelf", bound="DummyContextManager")
class DummyContextManager(ContextManagerMixin[_TSelf]):
def __init__(self, handle_exc: bool = False) -> None:
self.started = False
self.finished = False
self.handle_exc = handle_exc
@contextmanager
def __contextmanager__(self: _TSelf) -> Generator[_TSelf]:
self.started = True
try:
yield self
except RuntimeError:
if not self.handle_exc:
raise
self.finished = TrueThat's of course not ideal, needing a declared typevar with correct bound for every class more or less, but the case of further extending the contextmanagers overriding the returned type maybe isn't that common either? |
By "does work" do you mean you get the correct type out of |
|
I don't think forcing context manager authors to use a typevar just to enable proper inheritance is a good solution to the problem. Let's see what the pyright folks have to say about this. |
|
As in I checked out your branch but there are some issues with Looking closer I can't get it to work without explicitly passing through the leaf-class as a typevar. I suspect that getting this to work without explicit annotation when inheriting is not really possible with current typing system. (The return type of Have added it as a pull request to your branch anyway but it's not really any better except maybe the default (and maybe demonstrating that it works if you specify the return type explicitly for every child) |
What license checks? Pre-commit has no issues running over here, nor on CI.
That was my conclusion too. |
|
I've worked around this by adding specialized versions of the mix-in classes for yielding |
I originally skipped specifying that for precisely that reason. |
* Enforced context manager decorators on the dunder methods * Fix contextmanager typing in tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add exit type for contextmanager-mixins as well --------- Co-authored-by: Alex Grönholm <alex.gronholm@nextday.fi> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
| class MyAsyncContextManager: | ||
| async def __aenter__(self): | ||
| self._exitstack = AsyncExitStack() | ||
| await self._exitstack.__aenter__() |
There was a problem hiding this comment.
oh this was slightly wrong it should have used pop_all()
I think it's worth including an (Async)ExitStack instruction on how to do this
|
|
||
| @final | ||
| def __enter__(self: _SupportsCtxMgr[_T_co, bool | None]) -> _T_co: | ||
| # Needed for mypy to assume self still has the __cm member |
There was a problem hiding this comment.
I think you can alternatively put _ContextManagerMixin__cm on the _SupportsCtxMgr protocol
| self.finished = True | ||
|
|
||
|
|
||
| class DummyAsyncContextManager(AsyncContextManagerMixin): |
There was a problem hiding this comment.
might be worth a test for a class that implements both AsyncContextManagerMixin and ContextManagerMixin
There was a problem hiding this comment.
I'm not sure why? The mix-in classes have no overlap whatsoever.
There was a problem hiding this comment.
Oh, I just realized: that's the problem. One could enter the CM synchronously AND asynchronously without first exiting.
Bumps the runtime-dependencies group with 2 updates: [anyio](https://github.com/agronholm/anyio) and [virtualenv](https://github.com/pypa/virtualenv). Updates `anyio` from 4.9.0 to 4.10.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.10.0</h2> <ul> <li>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</li> <li>Added various class methods to wrap existing sockets as listeners or socket streams: <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</li> <li>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<a href="https://redirect.github.com/agronholm/anyio/pull/905">#905</a>; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</li> <li>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/818">#818</a>; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</li> <li>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<a href="https://redirect.github.com/agronholm/anyio/pull/896">#896</a>; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</li> <li>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</li> <li>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</li> <li>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</li> <li>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</li> <li>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<a href="https://redirect.github.com/agronholm/anyio/pull/913">#913</a>; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</li> <li>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/915">#915</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</li> <li>Migrated testing and documentation dependencies from extras to dependency groups</li> <li>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<a href="https://redirect.github.com/agronholm/anyio/issues/926">#926</a>; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</li> <li>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/816">#816</a>)</li> <li>Fixed RunVar name conflicts. RunVar instances with the same name should not share storage (<a href="https://redirect.github.com/agronholm/anyio/issues/880">#880</a>; PR by <a href="https://github.com/vimfu"><code>@vimfu</code></a>)</li> <li>Renamed the <code>BrokenWorkerIntepreter</code> exception to <code>BrokenWorkerInterpreter</code>. The old name is available as a deprecated alias. (<a href="https://redirect.github.com/agronholm/anyio/pull/938">#938</a>; PR by <a href="https://github.com/ayussh-verma"><code>@ayussh-verma</code></a>)</li> <li>Fixed an edge case in <code>CapacityLimiter</code> on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (<a href="https://redirect.github.com/agronholm/anyio/issues/947">#947</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</p> </li> <li> <p>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<code>[#818](agronholm/anyio#818) <https://github.com/agronholm/anyio/issues/818></code>_; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</p> </li> <li> <p>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<code>[#896](agronholm/anyio#896) <https://github.com/agronholm/anyio/pull/896></code>_; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</p> </li> <li> <p>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</p> </li> <li> <p>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</p> </li> <li> <p>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</p> </li> <li> <p>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</p> </li> <li> <p>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<code>[#913](agronholm/anyio#913) <https://github.com/agronholm/anyio/pull/913></code>_; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</p> </li> <li> <p>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<code>[#915](agronholm/anyio#915) <https://github.com/agronholm/anyio/pull/915></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</p> </li> <li> <p>Migrated testing and documentation dependencies from extras to dependency groups</p> </li> <li> <p>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<code>[#926](agronholm/anyio#926) <https://github.com/agronholm/anyio/issues/926></code>_; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</p> </li> <li> <p>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<code>[#816](agronholm/anyio#816) <https://github.com/agronholm/anyio/issues/816></code>_)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6"><code>0cf55b8</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345"><code>b029df5</code></a> Updated the to_interpreter module to use the public API on Python 3.14 (<a href="https://redirect.github.com/agronholm/anyio/issues/956">#956</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1"><code>01f02cf</code></a> Incorporated EP2025 sprint feedback and added a new section (<a href="https://redirect.github.com/agronholm/anyio/issues/955">#955</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4"><code>d896480</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/954">#954</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c"><code>0282b81</code></a> Added the BufferedByteReceiveStream.feed_data() method (<a href="https://redirect.github.com/agronholm/anyio/issues/945">#945</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb"><code>19e5477</code></a> Fixed a cancellation edge case for asyncio CapacityLimiter (<a href="https://redirect.github.com/agronholm/anyio/issues/952">#952</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827"><code>4666df3</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/946">#946</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e"><code>38c2567</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/942">#942</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb"><code>3db73ac</code></a> Add missing imports for Readcting to cancellation in worker threads example (...</li> <li><a href="https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9"><code>2eda004</code></a> Added an example on how to use move_on_after() with shielding</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.9.0...4.10">compare view</a></li> </ul> </details> <br /> Updates `virtualenv` from 20.32.0 to 20.33.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/virtualenv/releases">virtualenv's releases</a>.</em></p> <blockquote> <h2>20.33.0</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>release 20.32.0 by <a href="https://github.com/gaborbernat"><code>@gaborbernat</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2908">pypa/virtualenv#2908</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/pypa/virtualenv/pull/2909">pypa/virtualenv#2909</a></li> <li>Fix nushell deprecation warnings by <a href="https://github.com/gaborbernat"><code>@gaborbernat</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2910">pypa/virtualenv#2910</a></li> <li>test: Use <code>@pytest.mark.flaky</code> instead of <code>@flaky.flaky</code> by <a href="https://github.com/mgorny"><code>@mgorny</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2911">pypa/virtualenv#2911</a></li> <li>[pre-commit.ci] pre-commit autoupdate by <a href="https://github.com/pre-commit-ci"><code>@pre-commit-ci</code></a>[bot] in <a href="https://redirect.github.com/pypa/virtualenv/pull/2912">pypa/virtualenv#2912</a></li> <li>fix: handle StopIteration in discovery by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2913">pypa/virtualenv#2913</a></li> <li>fix: Improve symlink check and sysconfig path handling by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2914">pypa/virtualenv#2914</a></li> <li>docs: Recommend specific python version for virtualenv by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2916">pypa/virtualenv#2916</a></li> <li>fix: Force UTF-8 encoding for pip subprocess by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2918">pypa/virtualenv#2918</a></li> <li>fix: Prevent crash on file in PATH during discovery by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2917">pypa/virtualenv#2917</a></li> <li>fix: <code>--try-first-with</code> was overriding an absolute <code>--python</code> path by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2921">pypa/virtualenv#2921</a></li> <li>fix 'Too many open files' error and improve error message by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2922">pypa/virtualenv#2922</a></li> <li>fix(testing): Prevent logging setup when --help is passed by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2923">pypa/virtualenv#2923</a></li> <li>fix cache invalidation for PythonInfo by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2925">pypa/virtualenv#2925</a></li> <li>fix: Update venv redirector detection for Python 3.13 on Windows by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2920">pypa/virtualenv#2920</a></li> <li>feat: Add Tcl/Tkinter support by <a href="https://github.com/esafak"><code>@esafak</code></a> in <a href="https://redirect.github.com/pypa/virtualenv/pull/2928">pypa/virtualenv#2928</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pypa/virtualenv/compare/20.32.0...20.33.0">https://github.com/pypa/virtualenv/compare/20.32.0...20.33.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst">virtualenv's changelog</a>.</em></p> <blockquote> <h2>v20.33.0 (2025-08-03)</h2> <p>Features - 20.33.0</p> <pre><code>- Added support for Tcl and Tkinter. You're welcome. Contributed by :user:`esafak`. (:issue:`425`) <p>Bugfixes - 20.33.0 </code></pre></p> <ul> <li>Prevent logging setup when --help is passed, fixing a flaky test. Contributed by :user:<code>esafak</code>. (:issue:<code>u</code>)</li> <li>Fix cache invalidation for PythonInfo by hashing <code>py_info.py</code>. Contributed by :user:<code>esafak</code>. (:issue:<code>2467</code>)</li> <li>When no discovery plugins are found, the application would crash with a StopIteration. This change catches the StopIteration and raises a RuntimeError with a more informative message. Contributed by :user:<code>esafak</code>. (:issue:<code>2493</code>)</li> <li>Stop <code>--try-first-with</code> overriding absolute <code>--python</code> paths. Contributed by :user:<code>esafak</code>. (:issue:<code>2659</code>)</li> <li>Force UTF-8 encoding for pip download Contributed by :user:<code>esafak</code>. (:issue:<code>2780</code>)</li> <li>Creating a virtual environment on a filesystem without symlink-support would fail even with <code>--copies</code> Make <code>fs_supports_symlink</code> perform a real symlink creation check on all platforms. Contributed by :user:<code>esafak</code>. (:issue:<code>2786</code>)</li> <li>Add a note to the user guide recommending the use of a specific Python version when creating virtual environments. Contributed by :user:<code>esafak</code>. (:issue:<code>2808</code>)</li> <li>Fix 'Too many open files' error due to a file descriptor leak in virtualenv's locking mechanism. Contributed by :user:<code>esafak</code>. (:issue:<code>2834</code>)</li> <li>Support renamed Windows venv redirector (<code>venvlauncher.exe</code> and <code>venvwlauncher.exe</code>) on Python 3.13 Contributed by :user:<code>esafak</code>. (:issue:<code>2851</code>)</li> <li>Resolve Nushell activation script deprecation warnings by dynamically selecting the <code>--optional</code> flag for Nushell <code>get</code> command on version 0.106.0 and newer, while retaining the deprecated <code>-i</code> flag for older versions to maintain compatibility. Contributed by :user:<code>gaborbernat</code>. (:issue:<code>2910</code>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/virtualenv/commit/829e3d21c0c4b200383fdd10bfee3e80db6b0882"><code>829e3d2</code></a> release 20.33.0</li> <li><a href="https://github.com/pypa/virtualenv/commit/3d35fbb6486494d46bd050d225685d53a92b02c0"><code>3d35fbb</code></a> feat: Add Tcl/Tkinter support (<a href="https://redirect.github.com/pypa/virtualenv/issues/2928">#2928</a>)</li> <li><a href="https://github.com/pypa/virtualenv/commit/9872144e6954eaaf1602789b5a1eacb9b0a135b1"><code>9872144</code></a> fix: Update venv redirector detection for Python 3.13 on Windows (<a href="https://redirect.github.com/pypa/virtualenv/issues/2920">#2920</a>)</li> <li><a href="https://github.com/pypa/virtualenv/commit/31eb8b961105b8a54a4bb2b066ba96e9baed7dfc"><code>31eb8b9</code></a> fix cache invalidation for PythonInfo (<a href="https://redirect.github.com/pypa/virtualenv/issues/2925">#2925</a>)</li> <li><a href="https://github.com/pypa/virtualenv/commit/ec1c83e2b3031b3c9fd1e372a3b7f43d0907bb07"><code>ec1c83e</code></a> fix(testing): Prevent logging setup when --help is passed (<a href="https://redirect.github.com/pypa/virtualenv/issues/2923">#2923</a>)</li> <li><a href="https://github.com/pypa/virtualenv/commit/0c847288171bed06ed2c0c2f6d241e7de704ccde"><code>0c84728</code></a> fix 'Too many open files' error and improve error message (<a href="https://redirect.github.com/pypa/virtualenv/issues/2922">#2922</a>)</li> <li><a href="https://github.com/pypa/virtualenv/commit/f264539ffc14cbb313d1c3af041c3af88f7ac867"><code>f264539</code></a> fix: <code>--try-first-with</code> was overriding an absolute <code>--python</code> path (<a href="https://redirect.github.com/pypa/virtualenv/issues/2921">#2921</a>)</li> <li><a href="https://github.com/pypa/virtualenv/commit/19796cfd76b91f5932c700f3f87362395f1377a0"><code>19796cf</code></a> fix: Prevent crash on file in PATH during discovery (<a href="https://redirect.github.com/pypa/virtualenv/issues/2917">#2917</a>)</li> <li><a href="https://github.com/pypa/virtualenv/commit/01074bc16bd86c85c78138923980b64818149737"><code>01074bc</code></a> fix: Force UTF-8 encoding for pip subprocess (<a href="https://redirect.github.com/pypa/virtualenv/issues/2918">#2918</a>)</li> <li><a href="https://github.com/pypa/virtualenv/commit/fb2ba1ce1853318d06b49bc5add251e3c00f438b"><code>fb2ba1c</code></a> docs: Recommend specific python version for virtualenv (<a href="https://redirect.github.com/pypa/virtualenv/issues/2916">#2916</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pypa/virtualenv/compare/20.32.0...20.33.0">compare view</a></li> </ul> </details> <br /> 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [anyio](https://github.com/agronholm/anyio) from 4.9.0 to 4.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.10.0</h2> <ul> <li>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</li> <li>Added various class methods to wrap existing sockets as listeners or socket streams: <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</li> <li>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<a href="https://redirect.github.com/agronholm/anyio/pull/905">#905</a>; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</li> <li>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/818">#818</a>; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</li> <li>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<a href="https://redirect.github.com/agronholm/anyio/pull/896">#896</a>; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</li> <li>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</li> <li>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</li> <li>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</li> <li>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</li> <li>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<a href="https://redirect.github.com/agronholm/anyio/pull/913">#913</a>; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</li> <li>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/915">#915</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</li> <li>Migrated testing and documentation dependencies from extras to dependency groups</li> <li>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<a href="https://redirect.github.com/agronholm/anyio/issues/926">#926</a>; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</li> <li>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/816">#816</a>)</li> <li>Fixed RunVar name conflicts. RunVar instances with the same name should not share storage (<a href="https://redirect.github.com/agronholm/anyio/issues/880">#880</a>; PR by <a href="https://github.com/vimfu"><code>@vimfu</code></a>)</li> <li>Renamed the <code>BrokenWorkerIntepreter</code> exception to <code>BrokenWorkerInterpreter</code>. The old name is available as a deprecated alias. (<a href="https://redirect.github.com/agronholm/anyio/pull/938">#938</a>; PR by <a href="https://github.com/ayussh-verma"><code>@ayussh-verma</code></a>)</li> <li>Fixed an edge case in <code>CapacityLimiter</code> on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (<a href="https://redirect.github.com/agronholm/anyio/issues/947">#947</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</p> </li> <li> <p>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<code>[#818](agronholm/anyio#818) <https://github.com/agronholm/anyio/issues/818></code>_; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</p> </li> <li> <p>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<code>[#896](agronholm/anyio#896) <https://github.com/agronholm/anyio/pull/896></code>_; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</p> </li> <li> <p>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</p> </li> <li> <p>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</p> </li> <li> <p>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</p> </li> <li> <p>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</p> </li> <li> <p>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<code>[#913](agronholm/anyio#913) <https://github.com/agronholm/anyio/pull/913></code>_; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</p> </li> <li> <p>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<code>[#915](agronholm/anyio#915) <https://github.com/agronholm/anyio/pull/915></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</p> </li> <li> <p>Migrated testing and documentation dependencies from extras to dependency groups</p> </li> <li> <p>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<code>[#926](agronholm/anyio#926) <https://github.com/agronholm/anyio/issues/926></code>_; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</p> </li> <li> <p>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<code>[#816](agronholm/anyio#816) <https://github.com/agronholm/anyio/issues/816></code>_)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6"><code>0cf55b8</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345"><code>b029df5</code></a> Updated the to_interpreter module to use the public API on Python 3.14 (<a href="https://redirect.github.com/agronholm/anyio/issues/956">#956</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1"><code>01f02cf</code></a> Incorporated EP2025 sprint feedback and added a new section (<a href="https://redirect.github.com/agronholm/anyio/issues/955">#955</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4"><code>d896480</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/954">#954</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c"><code>0282b81</code></a> Added the BufferedByteReceiveStream.feed_data() method (<a href="https://redirect.github.com/agronholm/anyio/issues/945">#945</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb"><code>19e5477</code></a> Fixed a cancellation edge case for asyncio CapacityLimiter (<a href="https://redirect.github.com/agronholm/anyio/issues/952">#952</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827"><code>4666df3</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/946">#946</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e"><code>38c2567</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/942">#942</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb"><code>3db73ac</code></a> Add missing imports for Readcting to cancellation in worker threads example (...</li> <li><a href="https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9"><code>2eda004</code></a> Added an example on how to use move_on_after() with shielding</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.9.0...4.10">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…y with 5 updates (#677) Bumps the python-dependencies group with 5 updates in the /.github/actions/codecov-cli directory: | Package | From | To | | --- | --- | --- | | [codecov-cli](https://github.com/codecov/codecov-cli) | `11.0.3` | `11.1.0` | | [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.10.0` | | [certifi](https://github.com/certifi/python-certifi) | `2025.7.14` | `2025.8.3` | | [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` | | [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.7.34` | Updates `codecov-cli` from 11.0.3 to 11.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/codecov/codecov-cli/releases">codecov-cli's releases</a>.</em></p> <blockquote> <h2>Release v0.1.1_test</h2> <h2>What's Changed</h2> <ul> <li>implement code build by <a href="https://github.com/dana-yaish"><code>@dana-yaish</code></a> in <a href="https://redirect.github.com/codecov/codecov-cli/pull/79">codecov/codecov-cli#79</a></li> <li>add detect function to CodeBuild ci provider by <a href="https://github.com/dana-yaish"><code>@dana-yaish</code></a> in <a href="https://redirect.github.com/codecov/codecov-cli/pull/101">codecov/codecov-cli#101</a></li> <li>Fix path_fixes in upload payload by <a href="https://github.com/giovanni-guidini"><code>@giovanni-guidini</code></a> in <a href="https://redirect.github.com/codecov/codecov-cli/pull/103">codecov/codecov-cli#103</a></li> <li>Cast multiple=True args in upload to list by <a href="https://github.com/giovanni-guidini"><code>@giovanni-guidini</code></a> in <a href="https://redirect.github.com/codecov/codecov-cli/pull/104">codecov/codecov-cli#104</a></li> <li>Update CI workflows. by <a href="https://github.com/giovanni-guidini"><code>@giovanni-guidini</code></a> in <a href="https://redirect.github.com/codecov/codecov-cli/pull/102">codecov/codecov-cli#102</a></li> <li>remove dangling step when building artifacts. Change release temporarilly to draft by <a href="https://github.com/giovanni-guidini"><code>@giovanni-guidini</code></a> in <a href="https://redirect.github.com/codecov/codecov-cli/pull/105">codecov/codecov-cli#105</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/codecov/codecov-cli/compare/v0.1.0...v0.1.1_test">https://github.com/codecov/codecov-cli/compare/v0.1.0...v0.1.1_test</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/codecov/codecov-cli/commits">compare view</a></li> </ul> </details> <br /> Updates `anyio` from 4.9.0 to 4.10.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.10.0</h2> <ul> <li>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</li> <li>Added various class methods to wrap existing sockets as listeners or socket streams: <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</li> <li>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<a href="https://redirect.github.com/agronholm/anyio/pull/905">#905</a>; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</li> <li>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/818">#818</a>; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</li> <li>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<a href="https://redirect.github.com/agronholm/anyio/pull/896">#896</a>; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</li> <li>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</li> <li>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</li> <li>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</li> <li>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</li> <li>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<a href="https://redirect.github.com/agronholm/anyio/pull/913">#913</a>; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</li> <li>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/915">#915</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</li> <li>Migrated testing and documentation dependencies from extras to dependency groups</li> <li>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<a href="https://redirect.github.com/agronholm/anyio/issues/926">#926</a>; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</li> <li>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/816">#816</a>)</li> <li>Fixed RunVar name conflicts. RunVar instances with the same name should not share storage (<a href="https://redirect.github.com/agronholm/anyio/issues/880">#880</a>; PR by <a href="https://github.com/vimfu"><code>@vimfu</code></a>)</li> <li>Renamed the <code>BrokenWorkerIntepreter</code> exception to <code>BrokenWorkerInterpreter</code>. The old name is available as a deprecated alias. (<a href="https://redirect.github.com/agronholm/anyio/pull/938">#938</a>; PR by <a href="https://github.com/ayussh-verma"><code>@ayussh-verma</code></a>)</li> <li>Fixed an edge case in <code>CapacityLimiter</code> on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (<a href="https://redirect.github.com/agronholm/anyio/issues/947">#947</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</p> </li> <li> <p>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<code>[#818](agronholm/anyio#818) <https://github.com/agronholm/anyio/issues/818></code>_; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</p> </li> <li> <p>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<code>[#896](agronholm/anyio#896) <https://github.com/agronholm/anyio/pull/896></code>_; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</p> </li> <li> <p>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</p> </li> <li> <p>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</p> </li> <li> <p>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</p> </li> <li> <p>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</p> </li> <li> <p>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<code>[#913](agronholm/anyio#913) <https://github.com/agronholm/anyio/pull/913></code>_; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</p> </li> <li> <p>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<code>[#915](agronholm/anyio#915) <https://github.com/agronholm/anyio/pull/915></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</p> </li> <li> <p>Migrated testing and documentation dependencies from extras to dependency groups</p> </li> <li> <p>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<code>[#926](agronholm/anyio#926) <https://github.com/agronholm/anyio/issues/926></code>_; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</p> </li> <li> <p>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<code>[#816](agronholm/anyio#816) <https://github.com/agronholm/anyio/issues/816></code>_)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6"><code>0cf55b8</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345"><code>b029df5</code></a> Updated the to_interpreter module to use the public API on Python 3.14 (<a href="https://redirect.github.com/agronholm/anyio/issues/956">#956</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1"><code>01f02cf</code></a> Incorporated EP2025 sprint feedback and added a new section (<a href="https://redirect.github.com/agronholm/anyio/issues/955">#955</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4"><code>d896480</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/954">#954</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c"><code>0282b81</code></a> Added the BufferedByteReceiveStream.feed_data() method (<a href="https://redirect.github.com/agronholm/anyio/issues/945">#945</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb"><code>19e5477</code></a> Fixed a cancellation edge case for asyncio CapacityLimiter (<a href="https://redirect.github.com/agronholm/anyio/issues/952">#952</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827"><code>4666df3</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/946">#946</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e"><code>38c2567</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/942">#942</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb"><code>3db73ac</code></a> Add missing imports for Readcting to cancellation in worker threads example (...</li> <li><a href="https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9"><code>2eda004</code></a> Added an example on how to use move_on_after() with shielding</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.9.0...4.10">compare view</a></li> </ul> </details> <br /> Updates `certifi` from 2025.7.14 to 2025.8.3 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e"><code>a97d9ad</code></a> 2025.08.03 (<a href="https://redirect.github.com/certifi/python-certifi/issues/362">#362</a>)</li> <li>See full diff in <a href="https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03">compare view</a></li> </ul> </details> <br /> Updates `charset-normalizer` from 3.4.2 to 3.4.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jawah/charset_normalizer/releases">charset-normalizer's releases</a>.</em></p> <blockquote> <h2>Version 3.4.3</h2> <h2><a href="https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3">3.4.3</a> (2025-08-09)</h2> <h3>Changed</h3> <ul> <li>mypy(c) is no longer a required dependency at build time if <code>CHARSET_NORMALIZER_USE_MYPYC</code> isn't set to <code>1</code>. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/595">#595</a>) (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/583">#583</a>)</li> <li>automatically lower confidence on small bytes samples that are not Unicode in <code>detect</code> output legacy function. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/391">#391</a>)</li> </ul> <h3>Added</h3> <ul> <li>Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.</li> <li>Support for Python 3.14</li> </ul> <h3>Fixed</h3> <ul> <li>sdist archive contained useless directories.</li> <li>automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/633">#633</a>)</li> </ul> <h3>Misc</h3> <ul> <li>SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. Each published wheel comes with its SBOM. We choose CycloneDX as the format.</li> <li>Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md">charset-normalizer's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3">3.4.3</a> (2025-08-09)</h2> <h3>Changed</h3> <ul> <li>mypy(c) is no longer a required dependency at build time if <code>CHARSET_NORMALIZER_USE_MYPYC</code> isn't set to <code>1</code>. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/595">#595</a>) (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/583">#583</a>)</li> <li>automatically lower confidence on small bytes samples that are not Unicode in <code>detect</code> output legacy function. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/391">#391</a>)</li> </ul> <h3>Added</h3> <ul> <li>Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.</li> <li>Support for Python 3.14</li> </ul> <h3>Fixed</h3> <ul> <li>sdist archive contained useless directories.</li> <li>automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/633">#633</a>)</li> </ul> <h3>Misc</h3> <ul> <li>SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. Each published wheel comes with its SBOM. We choose CycloneDX as the format.</li> <li>Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de"><code>46f662d</code></a> Release 3.4.3 (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/638">#638</a>)</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2"><code>1a059b2</code></a> :wrench: skip building on freethreaded as we're not confident it is stable</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6"><code>2275e3d</code></a> :pencil: final note in CHANGELOG.md</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832"><code>c96acdf</code></a> :pencil: update release date on CHANGELOG.md</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012"><code>43e5460</code></a> :pencil: update README.md</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c"><code>f277074</code></a> :wrench: automatically lower confidence on small bytes str on non Unicode res...</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2"><code>15ae241</code></a> :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924"><code>37397c1</code></a> :wrench: enable 3.14 in nox test_mypyc session</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8"><code>cb82537</code></a> :rewind: revert license due to compat python 3.7 issue setuptools</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543"><code>6a2efeb</code></a> :art: fix linter errors</li> <li>Additional commits viewable in <a href="https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3">compare view</a></li> </ul> </details> <br /> Updates `regex` from 2024.11.6 to 2025.7.34 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt">regex's changelog</a>.</em></p> <blockquote> <p>Version: 2025.7.34</p> <pre><code>Git issue 575: Issues with ASCII/Unicode modifiers </code></pre> <p>Version: 2025.7.33</p> <pre><code>Updated main.yml and pyproject.toml. </code></pre> <p>Version: 2025.7.32</p> <pre><code>Git issue 580: Regression in v2025.7.31: \P{L} no longer matches in simple patterns </code></pre> <p>Version: 2025.7.31</p> <pre><code>Further updates to main.yml. </code></pre> <p>Version: 2025.7.30</p> <pre><code>Updated main.yml and pyproject.toml. </code></pre> <p>Version: 2025.7.29</p> <pre><code>Git issue 572: Inline ASCII modifier doesn't seem to affect anything </code></pre> <p>Version: 2025.5.19</p> <pre><code>Changed how main.yml skips unwanted Arch builds. </code></pre> <p>Version: 2025.5.18</p> <pre><code>Updated main.yml to build Windows ARM64/aarch64 wheel. <p>Updated licence text format in pyproject.toml.<br /> </code></pre></p> <p>Version: 2025.2.13</p> <pre><code>Dropping support for Python 3.8 and removing it from main.yml. </code></pre> <p>Version: 2025.2.12</p> <pre><code>Further fixes to main.yml. </code></pre> <p>Version: 2025.2.11</p> <pre><code>Updated main.yml to Artifacts v4. </code></pre> <p>Version: 2025.2.10</p> <pre><code>Git issue 551: Infinite loop on V1 search </code></pre> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/23ca191dd8d259a42bc3dcae092e4eafce48652d"><code>23ca191</code></a> Git issue 575: Issues with ASCII/Unicode modifiers</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/88fee8529b5d41846bfdc144f46d2510c547d169"><code>88fee85</code></a> Updated main.yml and pyproject.toml.</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/7ebda8c03230f31e28666790a96c40a650fd1b94"><code>7ebda8c</code></a> Merge pull request <a href="https://redirect.github.com/mrabarnett/mrab-regex/issues/582">#582</a> from facelessuser/bugfix/setuptools</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/26d6efc9bf050190d32c1e8b972acc600d4f2edf"><code>26d6efc</code></a> Setup failure scenario</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/a4a6d9443b11beb42d3440df91c76644ce45615c"><code>a4a6d94</code></a> Git issue 580: Regression in v2025.7.31: \P{L} no longer matches in simple pa...</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/becb0d456d90541fa1266e19999b8005b401fb89"><code>becb0d4</code></a> Updated version and added changes to changelog.txt.</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/457bcd38a53fcc695d7f219ff19607f39a7e08e7"><code>457bcd3</code></a> Merge pull request <a href="https://redirect.github.com/mrabarnett/mrab-regex/issues/577">#577</a> from facelessuser/bugfix/linux</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/0d045f77280dab28333e8026f9be9ffc022d57f3"><code>0d045f7</code></a> No need to upload source in manylinux</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/f2d385b10a4e4cd44058b1ffb7b24e3247bfd9a0"><code>f2d385b</code></a> Fix aarch64, ppc64le, s390x, and source dist</li> <li><a href="https://github.com/mrabarnett/mrab-regex/commit/4bc46f1397ce702f4d4413d3ce7363cd23b3e194"><code>4bc46f1</code></a> Merge pull request <a href="https://redirect.github.com/mrabarnett/mrab-regex/issues/574">#574</a> from facelessuser/bugfix/wheels</li> <li>Additional commits viewable in <a href="https://github.com/mrabarnett/mrab-regex/compare/2024.11.6...2025.7.34">compare view</a></li> </ul> </details> <br /> 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [anyio](https://github.com/agronholm/anyio) from 4.9.0 to 4.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.10.0</h2> <ul> <li>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</li> <li>Added various class methods to wrap existing sockets as listeners or socket streams: <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</li> <li>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<a href="https://redirect.github.com/agronholm/anyio/pull/905">#905</a>; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</li> <li>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/818">#818</a>; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</li> <li>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<a href="https://redirect.github.com/agronholm/anyio/pull/896">#896</a>; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</li> <li>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</li> <li>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</li> <li>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</li> <li>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</li> <li>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<a href="https://redirect.github.com/agronholm/anyio/pull/913">#913</a>; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</li> <li>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/915">#915</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</li> <li>Migrated testing and documentation dependencies from extras to dependency groups</li> <li>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<a href="https://redirect.github.com/agronholm/anyio/issues/926">#926</a>; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</li> <li>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/816">#816</a>)</li> <li>Fixed RunVar name conflicts. RunVar instances with the same name should not share storage (<a href="https://redirect.github.com/agronholm/anyio/issues/880">#880</a>; PR by <a href="https://github.com/vimfu"><code>@vimfu</code></a>)</li> <li>Renamed the <code>BrokenWorkerIntepreter</code> exception to <code>BrokenWorkerInterpreter</code>. The old name is available as a deprecated alias. (<a href="https://redirect.github.com/agronholm/anyio/pull/938">#938</a>; PR by <a href="https://github.com/ayussh-verma"><code>@ayussh-verma</code></a>)</li> <li>Fixed an edge case in <code>CapacityLimiter</code> on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (<a href="https://redirect.github.com/agronholm/anyio/issues/947">#947</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>UNRELEASED</strong></p> <ul> <li>Set <code>None</code> as the default type argument for <code>anyio.abc.TaskStatus</code></li> </ul> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</p> </li> <li> <p>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<code>[#818](agronholm/anyio#818) <https://github.com/agronholm/anyio/issues/818></code>_; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</p> </li> <li> <p>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<code>[#896](agronholm/anyio#896) <https://github.com/agronholm/anyio/pull/896></code>_; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</p> </li> <li> <p>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</p> </li> <li> <p>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</p> </li> <li> <p>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</p> </li> <li> <p>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</p> </li> <li> <p>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<code>[#913](agronholm/anyio#913) <https://github.com/agronholm/anyio/pull/913></code>_; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</p> </li> <li> <p>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<code>[#915](agronholm/anyio#915) <https://github.com/agronholm/anyio/pull/915></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</p> </li> <li> <p>Migrated testing and documentation dependencies from extras to dependency groups</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6"><code>0cf55b8</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345"><code>b029df5</code></a> Updated the to_interpreter module to use the public API on Python 3.14 (<a href="https://redirect.github.com/agronholm/anyio/issues/956">#956</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1"><code>01f02cf</code></a> Incorporated EP2025 sprint feedback and added a new section (<a href="https://redirect.github.com/agronholm/anyio/issues/955">#955</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4"><code>d896480</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/954">#954</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c"><code>0282b81</code></a> Added the BufferedByteReceiveStream.feed_data() method (<a href="https://redirect.github.com/agronholm/anyio/issues/945">#945</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb"><code>19e5477</code></a> Fixed a cancellation edge case for asyncio CapacityLimiter (<a href="https://redirect.github.com/agronholm/anyio/issues/952">#952</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827"><code>4666df3</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/946">#946</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e"><code>38c2567</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/942">#942</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb"><code>3db73ac</code></a> Add missing imports for Readcting to cancellation in worker threads example (...</li> <li><a href="https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9"><code>2eda004</code></a> Added an example on how to use move_on_after() with shielding</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.9.0...4.10">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
[//]: # (dependabot-start)⚠️ **Dependabot is rebasing this PR**⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [anyio](https://github.com/agronholm/anyio) from 4.9.0 to 4.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.10.0</h2> <ul> <li>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</li> <li>Added various class methods to wrap existing sockets as listeners or socket streams: <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</li> <li>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<a href="https://redirect.github.com/agronholm/anyio/pull/905">#905</a>; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</li> <li>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/818">#818</a>; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</li> <li>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<a href="https://redirect.github.com/agronholm/anyio/pull/896">#896</a>; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</li> <li>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</li> <li>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</li> <li>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</li> <li>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</li> <li>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<a href="https://redirect.github.com/agronholm/anyio/pull/913">#913</a>; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</li> <li>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/915">#915</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</li> <li>Migrated testing and documentation dependencies from extras to dependency groups</li> <li>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<a href="https://redirect.github.com/agronholm/anyio/issues/926">#926</a>; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</li> <li>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/816">#816</a>)</li> <li>Fixed RunVar name conflicts. RunVar instances with the same name should not share storage (<a href="https://redirect.github.com/agronholm/anyio/issues/880">#880</a>; PR by <a href="https://github.com/vimfu"><code>@vimfu</code></a>)</li> <li>Renamed the <code>BrokenWorkerIntepreter</code> exception to <code>BrokenWorkerInterpreter</code>. The old name is available as a deprecated alias. (<a href="https://redirect.github.com/agronholm/anyio/pull/938">#938</a>; PR by <a href="https://github.com/ayussh-verma"><code>@ayussh-verma</code></a>)</li> <li>Fixed an edge case in <code>CapacityLimiter</code> on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (<a href="https://redirect.github.com/agronholm/anyio/issues/947">#947</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</p> </li> <li> <p>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<code>[#818](agronholm/anyio#818) <https://github.com/agronholm/anyio/issues/818></code>_; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</p> </li> <li> <p>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<code>[#896](agronholm/anyio#896) <https://github.com/agronholm/anyio/pull/896></code>_; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</p> </li> <li> <p>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</p> </li> <li> <p>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</p> </li> <li> <p>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</p> </li> <li> <p>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</p> </li> <li> <p>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<code>[#913](agronholm/anyio#913) <https://github.com/agronholm/anyio/pull/913></code>_; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</p> </li> <li> <p>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<code>[#915](agronholm/anyio#915) <https://github.com/agronholm/anyio/pull/915></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</p> </li> <li> <p>Migrated testing and documentation dependencies from extras to dependency groups</p> </li> <li> <p>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<code>[#926](agronholm/anyio#926) <https://github.com/agronholm/anyio/issues/926></code>_; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</p> </li> <li> <p>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<code>[#816](agronholm/anyio#816) <https://github.com/agronholm/anyio/issues/816></code>_)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6"><code>0cf55b8</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345"><code>b029df5</code></a> Updated the to_interpreter module to use the public API on Python 3.14 (<a href="https://redirect.github.com/agronholm/anyio/issues/956">#956</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1"><code>01f02cf</code></a> Incorporated EP2025 sprint feedback and added a new section (<a href="https://redirect.github.com/agronholm/anyio/issues/955">#955</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4"><code>d896480</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/954">#954</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c"><code>0282b81</code></a> Added the BufferedByteReceiveStream.feed_data() method (<a href="https://redirect.github.com/agronholm/anyio/issues/945">#945</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb"><code>19e5477</code></a> Fixed a cancellation edge case for asyncio CapacityLimiter (<a href="https://redirect.github.com/agronholm/anyio/issues/952">#952</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827"><code>4666df3</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/946">#946</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e"><code>38c2567</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/942">#942</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb"><code>3db73ac</code></a> Add missing imports for Readcting to cancellation in worker threads example (...</li> <li><a href="https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9"><code>2eda004</code></a> Added an example on how to use move_on_after() with shielding</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.9.0...4.10">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kai Welke <kai687@pm.me>
) Bumps the pip-updates group with 10 updates in the /api directory: | Package | From | To | | --- | --- | --- | | [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.10.0` | | [certifi](https://github.com/certifi/python-certifi) | `2025.7.9` | `2025.8.3` | | [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` | | [cryptography](https://github.com/pyca/cryptography) | `45.0.5` | `45.0.6` | | [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` | | [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22` | | [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` | | [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` | | [rpds-py](https://github.com/crate-py/rpds) | `0.26.0` | `0.27.0` | | [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` | Updates `anyio` from 4.9.0 to 4.10.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.10.0</h2> <ul> <li>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</li> <li>Added various class methods to wrap existing sockets as listeners or socket streams: <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</li> <li>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<a href="https://redirect.github.com/agronholm/anyio/pull/905">#905</a>; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</li> <li>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/818">#818</a>; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</li> <li>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<a href="https://redirect.github.com/agronholm/anyio/pull/896">#896</a>; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</li> <li>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</li> <li>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</li> <li>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</li> <li>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</li> <li>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<a href="https://redirect.github.com/agronholm/anyio/pull/913">#913</a>; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</li> <li>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/915">#915</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</li> <li>Migrated testing and documentation dependencies from extras to dependency groups</li> <li>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<a href="https://redirect.github.com/agronholm/anyio/issues/926">#926</a>; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</li> <li>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/816">#816</a>)</li> <li>Fixed RunVar name conflicts. RunVar instances with the same name should not share storage (<a href="https://redirect.github.com/agronholm/anyio/issues/880">#880</a>; PR by <a href="https://github.com/vimfu"><code>@vimfu</code></a>)</li> <li>Renamed the <code>BrokenWorkerIntepreter</code> exception to <code>BrokenWorkerInterpreter</code>. The old name is available as a deprecated alias. (<a href="https://redirect.github.com/agronholm/anyio/pull/938">#938</a>; PR by <a href="https://github.com/ayussh-verma"><code>@ayussh-verma</code></a>)</li> <li>Fixed an edge case in <code>CapacityLimiter</code> on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (<a href="https://redirect.github.com/agronholm/anyio/issues/947">#947</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>UNRELEASED</strong></p> <ul> <li>Set <code>None</code> as the default type argument for <code>anyio.abc.TaskStatus</code></li> </ul> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</p> </li> <li> <p>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<code>[#818](agronholm/anyio#818) <https://github.com/agronholm/anyio/issues/818></code>_; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</p> </li> <li> <p>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<code>[#896](agronholm/anyio#896) <https://github.com/agronholm/anyio/pull/896></code>_; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</p> </li> <li> <p>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</p> </li> <li> <p>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</p> </li> <li> <p>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</p> </li> <li> <p>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</p> </li> <li> <p>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<code>[#913](agronholm/anyio#913) <https://github.com/agronholm/anyio/pull/913></code>_; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</p> </li> <li> <p>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<code>[#915](agronholm/anyio#915) <https://github.com/agronholm/anyio/pull/915></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</p> </li> <li> <p>Migrated testing and documentation dependencies from extras to dependency groups</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6"><code>0cf55b8</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345"><code>b029df5</code></a> Updated the to_interpreter module to use the public API on Python 3.14 (<a href="https://redirect.github.com/agronholm/anyio/issues/956">#956</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1"><code>01f02cf</code></a> Incorporated EP2025 sprint feedback and added a new section (<a href="https://redirect.github.com/agronholm/anyio/issues/955">#955</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4"><code>d896480</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/954">#954</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c"><code>0282b81</code></a> Added the BufferedByteReceiveStream.feed_data() method (<a href="https://redirect.github.com/agronholm/anyio/issues/945">#945</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb"><code>19e5477</code></a> Fixed a cancellation edge case for asyncio CapacityLimiter (<a href="https://redirect.github.com/agronholm/anyio/issues/952">#952</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827"><code>4666df3</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/946">#946</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e"><code>38c2567</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/942">#942</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb"><code>3db73ac</code></a> Add missing imports for Readcting to cancellation in worker threads example (...</li> <li><a href="https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9"><code>2eda004</code></a> Added an example on how to use move_on_after() with shielding</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.9.0...4.10">compare view</a></li> </ul> </details> <br /> Updates `certifi` from 2025.7.9 to 2025.8.3 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e"><code>a97d9ad</code></a> 2025.08.03 (<a href="https://redirect.github.com/certifi/python-certifi/issues/362">#362</a>)</li> <li><a href="https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1"><code>ddd90c6</code></a> 2025.07.14 (<a href="https://redirect.github.com/certifi/python-certifi/issues/359">#359</a>)</li> <li>See full diff in <a href="https://github.com/certifi/python-certifi/compare/2025.07.09...2025.08.03">compare view</a></li> </ul> </details> <br /> Updates `charset-normalizer` from 3.4.2 to 3.4.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jawah/charset_normalizer/releases">charset-normalizer's releases</a>.</em></p> <blockquote> <h2>Version 3.4.3</h2> <h2><a href="https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3">3.4.3</a> (2025-08-09)</h2> <h3>Changed</h3> <ul> <li>mypy(c) is no longer a required dependency at build time if <code>CHARSET_NORMALIZER_USE_MYPYC</code> isn't set to <code>1</code>. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/595">#595</a>) (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/583">#583</a>)</li> <li>automatically lower confidence on small bytes samples that are not Unicode in <code>detect</code> output legacy function. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/391">#391</a>)</li> </ul> <h3>Added</h3> <ul> <li>Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.</li> <li>Support for Python 3.14</li> </ul> <h3>Fixed</h3> <ul> <li>sdist archive contained useless directories.</li> <li>automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/633">#633</a>)</li> </ul> <h3>Misc</h3> <ul> <li>SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. Each published wheel comes with its SBOM. We choose CycloneDX as the format.</li> <li>Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md">charset-normalizer's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3">3.4.3</a> (2025-08-09)</h2> <h3>Changed</h3> <ul> <li>mypy(c) is no longer a required dependency at build time if <code>CHARSET_NORMALIZER_USE_MYPYC</code> isn't set to <code>1</code>. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/595">#595</a>) (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/583">#583</a>)</li> <li>automatically lower confidence on small bytes samples that are not Unicode in <code>detect</code> output legacy function. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/391">#391</a>)</li> </ul> <h3>Added</h3> <ul> <li>Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.</li> <li>Support for Python 3.14</li> </ul> <h3>Fixed</h3> <ul> <li>sdist archive contained useless directories.</li> <li>automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/633">#633</a>)</li> </ul> <h3>Misc</h3> <ul> <li>SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. Each published wheel comes with its SBOM. We choose CycloneDX as the format.</li> <li>Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de"><code>46f662d</code></a> Release 3.4.3 (<a href="https://redirect.github.com/jawah/charset_normalizer/issues/638">#638</a>)</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2"><code>1a059b2</code></a> :wrench: skip building on freethreaded as we're not confident it is stable</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6"><code>2275e3d</code></a> :pencil: final note in CHANGELOG.md</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832"><code>c96acdf</code></a> :pencil: update release date on CHANGELOG.md</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012"><code>43e5460</code></a> :pencil: update README.md</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c"><code>f277074</code></a> :wrench: automatically lower confidence on small bytes str on non Unicode res...</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2"><code>15ae241</code></a> :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924"><code>37397c1</code></a> :wrench: enable 3.14 in nox test_mypyc session</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8"><code>cb82537</code></a> :rewind: revert license due to compat python 3.7 issue setuptools</li> <li><a href="https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543"><code>6a2efeb</code></a> :art: fix linter errors</li> <li>Additional commits viewable in <a href="https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3">compare view</a></li> </ul> </details> <br /> Updates `cryptography` from 45.0.5 to 45.0.6 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's changelog</a>.</em></p> <blockquote> <p>45.0.6 - 2025-08-05</p> <pre><code> * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2. <p>.. _v45-0-5:<br /> </code></pre></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d"><code>66198c2</code></a> Bump for release (<a href="https://redirect.github.com/pyca/cryptography/issues/13249">#13249</a>)</li> <li>See full diff in <a href="https://github.com/pyca/cryptography/compare/45.0.5...45.0.6">compare view</a></li> </ul> </details> <br /> Updates `djangorestframework` from 3.16.0 to 3.16.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/encode/django-rest-framework/releases">djangorestframework's releases</a>.</em></p> <blockquote> <h2>v3.16.1</h2> <p>This release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.</p> <h2>Minor changes</h2> <ul> <li>Cleanup optional <code>backports.zoneinfo</code> dependency and conditions on unsupported Python 3.8 and lower in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9681">#9681</a>. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.</li> </ul> <h2>Bug fixes</h2> <ul> <li>Fix regression in <code>unique_together</code> validation with <code>SerializerMethodField</code> in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9712">#9712</a></li> <li>Fix <code>UniqueTogetherValidator</code> to handle fields with <code>source</code> attribute in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9688">#9688</a></li> <li>Drop HTML line breaks on long headers in browsable API in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9438">#9438</a></li> </ul> <h2>Translations</h2> <ul> <li>Add Kazakh locale support in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9713">#9713</a></li> <li>Update translations for Korean translations in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9571">#9571</a></li> <li>Update German translations in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9676">#9676</a></li> <li>Update Chinese translations in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9675">#9675</a></li> <li>Update Arabic translations-sal in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9595">#9595</a></li> <li>Update Persian translations in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9576">#9576</a></li> <li>Update Spanish translations in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9701">#9701</a></li> <li>Update Turkish Translations in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9749">#9749</a></li> <li>Fix some typos in Brazilian Portuguese translations in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9673">#9673</a></li> </ul> <h2>Documentation</h2> <ul> <li>Removed reference to GitHub Issues and Discussions in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9660">#9660</a></li> <li>Add <code>drf-restwind</code> and update outdated images in <code>browsable-api.md</code> in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9680">#9680</a></li> <li>Updated funding page to represent current scope in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9686">#9686</a></li> <li>Fix broken Heroku JSON Schema link in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9693">#9693</a></li> <li>Update Django documentation links to use stable version in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9698">#9698</a></li> <li>Expand docs on unique constraints cause 'required=True' in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9725">#9725</a></li> <li>Revert extension back from <code>djangorestframework-guardian2</code> to <code>djangorestframework-guardian</code> in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9734">#9734</a></li> <li>Add note to tutorial about required <code>request</code> in serializer context when using <code>HyperlinkedModelSerializer</code> in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9732">#9732</a></li> </ul> <h2>Internal changes</h2> <ul> <li>Update GitHub Actions to use Ubuntu 24.04 for testing in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9677">#9677</a></li> <li>Update test matrix to use Django 5.2 stable version in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9679">#9679</a></li> <li>Add <code>pyupgrade</code> to <code>pre-commit</code> hooks in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9682">#9682</a></li> <li>Fix test with Django 5 when <code>pytz</code> is available in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9715">#9715</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/araggohnxd"><code>@araggohnxd</code></a> made their first contribution in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9673">#9673</a></li> <li><a href="https://github.com/mbeijen"><code>@mbeijen</code></a> made their first contribution in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9660">#9660</a></li> <li><a href="https://github.com/stefan6419846"><code>@stefan6419846</code></a> made their first contribution in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9676">#9676</a></li> <li><a href="https://github.com/ren000thomas"><code>@ren000thomas</code></a> made their first contribution in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9675">#9675</a></li> <li><a href="https://github.com/ulgens"><code>@ulgens</code></a> made their first contribution in <a href="https://redirect.github.com/encode/django-rest-framework/pull/9682">#9682</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d"><code>de018df</code></a> Prepare 3.16.1 release (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9752">#9752</a>)</li> <li><a href="https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae"><code>a7d050f</code></a> Turkish Translation updates (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9749">#9749</a>)</li> <li><a href="https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352"><code>853969c</code></a> Fix test with Django 5 when pytz is available (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9715">#9715</a>)</li> <li><a href="https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4"><code>2ae8c11</code></a> Add note to tutorial about required request in serializer context when using ...</li> <li><a href="https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3"><code>70e54f4</code></a> Revert docs back to djangorestframework-guardian (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9734">#9734</a>)</li> <li><a href="https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61"><code>3038494</code></a> Document that unique constraints cause <code>required=True</code> in ModelSerializer (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9">#9</a>...</li> <li><a href="https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed"><code>4bb46c2</code></a> Add Kazakh(kk) locale support (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9713">#9713</a>)</li> <li><a href="https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c"><code>e454758</code></a> Fix regression in unique_together validation with SerializerMethodField (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9712">#9712</a>)</li> <li><a href="https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2"><code>33d59fe</code></a> Update Spanish translations (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9701">#9701</a>)</li> <li><a href="https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab"><code>c0202a0</code></a> Update Django documentation links to use stable version (<a href="https://redirect.github.com/encode/django-rest-framework/issues/9698">#9698</a>)</li> <li>Additional commits viewable in <a href="https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1">compare view</a></li> </ul> </details> <br /> Updates `docutils` from 0.21.2 to 0.22 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/rtfd/recommonmark/commits">compare view</a></li> </ul> </details> <br /> Updates `jsonschema` from 4.24.0 to 4.25.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/python-jsonschema/jsonschema/releases">jsonschema's releases</a>.</em></p> <blockquote> <h2>v4.25.1</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>Fix <code>Validator</code> protocol init to match runtime by <a href="https://github.com/sirosen"><code>@sirosen</code></a> in <a href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1396">python-jsonschema/jsonschema#1396</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/python-jsonschema/jsonschema/compare/v4.25.0...v4.25.1">https://github.com/python-jsonschema/jsonschema/compare/v4.25.0...v4.25.1</a></p> <h2>v4.25.0</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>Add support for the <code>iri</code> and <code>iri-reference</code> formats to the <code>format-nongpl</code> extra by <a href="https://github.com/jkowalleck"><code>@jkowalleck</code></a> in <a href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1388">python-jsonschema/jsonschema#1388</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/jkowalleck"><code>@jkowalleck</code></a> made their first contribution in <a href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1388">python-jsonschema/jsonschema#1388</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0">https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0</a></p> <h2>v4.24.1</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>Unambiguously quote and escape properties in JSON path rendering by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1390">python-jsonschema/jsonschema#1390</a></li> <li>Drop python<3.9 backports by <a href="https://github.com/hackowitz-af"><code>@hackowitz-af</code></a> in <a href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1367">python-jsonschema/jsonschema#1367</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/hackowitz-af"><code>@hackowitz-af</code></a> made their first contribution in <a href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1367">python-jsonschema/jsonschema#1367</a></li> <li><a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> made their first contribution in <a href="https://redirect.github.com/python-jsonschema/jsonschema/pull/1390">python-jsonschema/jsonschema#1390</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.1">https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.1</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst">jsonschema's changelog</a>.</em></p> <blockquote> <h1>v4.25.1</h1> <ul> <li>Fix an incorrect required argument in the <code>Validator</code> protocol's type annotations (<a href="https://redirect.github.com/python-jsonschema/jsonschema/issues/1396">#1396</a>).</li> </ul> <h1>v4.25.0</h1> <ul> <li>Add support for the <code>iri</code> and <code>iri-reference</code> formats to the <code>format-nongpl</code> extra via the MIT-licensed <code>rfc3987-syntax</code>. They were alread supported by the <code>format</code> extra. (<a href="https://redirect.github.com/python-jsonschema/jsonschema/issues/1388">#1388</a>).</li> </ul> <h1>v4.24.1</h1> <ul> <li>Properly escape segments in <code>ValidationError.json_path</code> (<a href="https://redirect.github.com/python-jsonschema/jsonschema/issues/139">#139</a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/331c38425519b69118d22ebe467ad230fb83a010"><code>331c384</code></a> Add the fix to the changelog.</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/c1ec0a645e913e83de95995f6efbbd358676abf6"><code>c1ec0a6</code></a> Merge pull request <a href="https://redirect.github.com/python-jsonschema/jsonschema/issues/1398">#1398</a> from python-jsonschema/dependabot/github_actions/ast...</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/8e7d594faff13f8f663b306a0d86bea0ce5de6cb"><code>8e7d594</code></a> Merge pull request <a href="https://redirect.github.com/python-jsonschema/jsonschema/issues/1399">#1399</a> from python-jsonschema/dependabot/github_actions/act...</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/460f4fae42664773160f56ccc843a4fcea34f7cf"><code>460f4fa</code></a> Merge pull request <a href="https://redirect.github.com/python-jsonschema/jsonschema/issues/1396">#1396</a> from sirosen/improve-protocol-init-signature</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/1e58409b71a9696b7bf9938ae8a3a48ef95ab29e"><code>1e58409</code></a> [pre-commit.ci] auto fixes from pre-commit.com hooks</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/64bc2171624ef201bdbf35e47780348ce30935c5"><code>64bc217</code></a> Add a typing test for the Validator protocol</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/6c25741bff889477680f9b0d1aa967ae35c38f43"><code>6c25741</code></a> Bump actions/checkout from 4 to 5</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/bf603d59117f840916709fc87c6625df43d1fe72"><code>bf603d5</code></a> Bump astral-sh/setup-uv from 6.4.3 to 6.5.0</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/a916d8f8253baa11bacc60f0868f0bab1e42d526"><code>a916d8f</code></a> Fix <code>Validator</code> protocol init to match runtime</li> <li><a href="https://github.com/python-jsonschema/jsonschema/commit/de60f18bd97395a52a11b561eb62963e0ffe9e71"><code>de60f18</code></a> Merge pull request <a href="https://redirect.github.com/python-jsonschema/jsonschema/issues/1397">#1397</a> from python-jsonschema/pre-commit-ci-update-config</li> <li>Additional commits viewable in <a href="https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.25.1">compare view</a></li> </ul> </details> <br /> Updates `requests` from 2.32.4 to 2.32.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/releases">requests's releases</a>.</em></p> <blockquote> <h2>v2.32.5</h2> <h2>2.32.5 (2025-08-18)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>The SSLContext caching feature originally introduced in 2.32.0 has created a new class of issues in Requests that have had negative impact across a number of use cases. The Requests team has decided to revert this feature as long term maintenance of it is proving to be unsustainable in its current iteration.</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Added support for Python 3.14.</li> <li>Dropped support for Python 3.8 following its end of support.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's changelog</a>.</em></p> <blockquote> <h2>2.32.5 (2025-08-18)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>The SSLContext caching feature originally introduced in 2.32.0 has created a new class of issues in Requests that have had negative impact across a number of use cases. The Requests team has decided to revert this feature as long term maintenance of it is proving to be unsustainable in its current iteration.</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Added support for Python 3.14.</li> <li>Dropped support for Python 3.8 following its end of support.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741"><code>b25c87d</code></a> v2.32.5</li> <li><a href="https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a"><code>131e506</code></a> Merge pull request <a href="https://redirect.github.com/psf/requests/issues/7010">#7010</a> from psf/dependabot/github_actions/actions/checkout-...</li> <li><a href="https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90"><code>b336cb2</code></a> Bump actions/checkout from 4.2.0 to 5.0.0</li> <li><a href="https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a"><code>46e939b</code></a> Update publish workflow to use <code>artifact-id</code> instead of <code>name</code></li> <li><a href="https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4"><code>4b9c546</code></a> Merge pull request <a href="https://redirect.github.com/psf/requests/issues/6999">#6999</a> from psf/dependabot/github_actions/step-security/har...</li> <li><a href="https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6"><code>7618dbe</code></a> Bump step-security/harden-runner from 2.12.0 to 2.13.0</li> <li><a href="https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446"><code>2edca11</code></a> Add support for Python 3.14 and drop support for Python 3.8 (<a href="https://redirect.github.com/psf/requests/issues/6993">#6993</a>)</li> <li><a href="https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00"><code>fec96cd</code></a> Update Makefile rules (<a href="https://redirect.github.com/psf/requests/issues/6996">#6996</a>)</li> <li><a href="https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7"><code>d58d8aa</code></a> docs: clarify timeout parameter uses seconds in Session.request (<a href="https://redirect.github.com/psf/requests/issues/6994">#6994</a>)</li> <li><a href="https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305"><code>91a3eab</code></a> Bump github/codeql-action from 3.28.5 to 3.29.0</li> <li>Additional commits viewable in <a href="https://github.com/psf/requests/compare/v2.32.4...v2.32.5">compare view</a></li> </ul> </details> <br /> Updates `rpds-py` from 0.26.0 to 0.27.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/crate-py/rpds/releases">rpds-py's releases</a>.</em></p> <blockquote> <h2>v0.27.0</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>Allow packaging of wheels for riscv64 architecture by <a href="https://github.com/ffgan"><code>@ffgan</code></a> in <a href="https://redirect.github.com/crate-py/rpds/pull/150">crate-py/rpds#150</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ffgan"><code>@ffgan</code></a> made their first contribution in <a href="https://redirect.github.com/crate-py/rpds/pull/150">crate-py/rpds#150</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/crate-py/rpds/compare/v0.26.0...v0.27.0">https://github.com/crate-py/rpds/compare/v0.26.0...v0.27.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/crate-py/rpds/commit/c7cd37d2a2def95fe6d5c36aaf2a87feb6280f89"><code>c7cd37d</code></a> Tag a release for RISC</li> <li><a href="https://github.com/crate-py/rpds/commit/7adac992a67fdf323c78cdf96a3f83745157e26f"><code>7adac99</code></a> Merge pull request <a href="https://redirect.github.com/crate-py/rpds/issues/150">#150</a> from ffgan/feature/allow_riscv_package</li> <li><a href="https://github.com/crate-py/rpds/commit/439ad44d249008a927d6528223387977cb9ac745"><code>439ad44</code></a> fix format error</li> <li><a href="https://github.com/crate-py/rpds/commit/2091f272bd232fd292c34dc56766c9ffe3577964"><code>2091f27</code></a> downgrade riscv64 manylinux version</li> <li><a href="https://github.com/crate-py/rpds/commit/29a539fb5b03936546db0867059594f47dc2fa08"><code>29a539f</code></a> Merge branch 'crate-py:main' into feature/allow_riscv_package</li> <li><a href="https://github.com/crate-py/rpds/commit/7546f2d8c26d85c55412d18ff3aef2792d41e8ed"><code>7546f2d</code></a> Allow packaging of wheels for riscv64 architecture</li> <li><a href="https://github.com/crate-py/rpds/commit/8ede3f474b438c90c66e9317d589aadb97935182"><code>8ede3f4</code></a> Merge pull request <a href="https://redirect.github.com/crate-py/rpds/issues/149">#149</a> from crate-py/dependabot/github_actions/github/codeql...</li> <li><a href="https://github.com/crate-py/rpds/commit/0840694707b02fdcf782ddb9db67c769fbbf6f25"><code>0840694</code></a> Merge pull request <a href="https://redirect.github.com/crate-py/rpds/issues/148">#148</a> from crate-py/dependabot/github_actions/astral-sh/set...</li> <li><a href="https://github.com/crate-py/rpds/commit/725aabe89862cb1e0449c072c81bdcf046d83ca8"><code>725aabe</code></a> Bump github/codeql-action from 3.29.2 to 3.29.3</li> <li><a href="https://github.com/crate-py/rpds/commit/db4a842d81f36e48efb83df35aa7ccded82853a1"><code>db4a842</code></a> Bump astral-sh/setup-uv from 6.3.1 to 6.4.1</li> <li>See full diff in <a href="https://github.com/crate-py/rpds/compare/v0.26.0...v0.27.0">compare view</a></li> </ul> </details> <br /> Updates `typing-extensions` from 4.14.1 to 4.15.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/python/typing_extensions/releases">typing-extensions's releases</a>.</em></p> <blockquote> <h2>4.15.0</h2> <p>No user-facing changes since 4.15.0rc1.</p> <p>New features since 4.14.1:</p> <ul> <li>Add the <code>@typing_extensions.disjoint_base</code> decorator, as specified in PEP 800. Patch by Jelle Zijlstra.</li> <li>Add <code>typing_extensions.type_repr</code>, a backport of <a href="https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr"><code>annotationlib.type_repr</code></a>, introduced in Python 3.14 (CPython PR <a href="https://redirect.github.com/python/cpython/pull/124551">#124551</a>, originally by Jelle Zijlstra). Patch by Semyon Moroz.</li> <li>Fix behavior of type params in <code>typing_extensions.evaluate_forward_ref</code>. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/137227">#137227</a> by Jelle Zijlstra.</li> </ul> <h2>4.15.0rc1</h2> <ul> <li>Add the <code>@typing_extensions.disjoint_base</code> decorator, as specified in PEP 800. Patch by Jelle Zijlstra.</li> <li>Add <code>typing_extensions.type_repr</code>, a backport of <a href="https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr"><code>annotationlib.type_repr</code></a>, introduced in Python 3.14 (CPython PR <a href="https://redirect.github.com/python/cpython/pull/124551">#124551</a>, originally by Jelle Zijlstra). Patch by Semyon Moroz.</li> <li>Fix behavior of type params in <code>typing_extensions.evaluate_forward_ref</code>. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/137227">#137227</a> by Jelle Zijlstra.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/typing_extensions/blob/main/CHANGELOG.md">typing-extensions's changelog</a>.</em></p> <blockquote> <h1>Release 4.15.0 (August 25, 2025)</h1> <p>No user-facing changes since 4.15.0rc1.</p> <h1>Release 4.15.0rc1 (August 18, 2025)</h1> <ul> <li>Add the <code>@typing_extensions.disjoint_base</code> decorator, as specified in PEP 800. Patch by Jelle Zijlstra.</li> <li>Add <code>typing_extensions.type_repr</code>, a backport of <a href="https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr"><code>annotationlib.type_repr</code></a>, introduced in Python 3.14 (CPython PR <a href="https://redirect.github.com/python/cpython/pull/124551">#124551</a>, originally by Jelle Zijlstra). Patch by Semyon Moroz.</li> <li>Fix behavior of type params in <code>typing_extensions.evaluate_forward_ref</code>. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/137227">#137227</a> by Jelle Zijlstra.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9"><code>9d1637e</code></a> Prepare release 4.15.0 (<a href="https://redirect.github.com/python/typing_extensions/issues/658">#658</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d"><code>4bd67c5</code></a> Coverage: exclude some noise (<a href="https://redirect.github.com/python/typing_extensions/issues/656">#656</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84"><code>e589a26</code></a> Coverage: add detailed report to job summary (<a href="https://redirect.github.com/python/typing_extensions/issues/655">#655</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad"><code>67d37fe</code></a> Coverage: Implement fail_under (<a href="https://redirect.github.com/python/typing_extensions/issues/654">#654</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192"><code>e9ae26f</code></a> Don't delete previous coverage comment (<a href="https://redirect.github.com/python/typing_extensions/issues/653">#653</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895"><code>ac80bb7</code></a> Add Coverage workflow (<a href="https://redirect.github.com/python/typing_extensions/issues/623">#623</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670"><code>abaaafd</code></a> Prepare release 4.15.0rc1 (<a href="https://redirect.github.com/python/typing_extensions/issues/650">#650</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4"><code>9810405</code></a> Add <code>@disjoint_base</code> (PEP 800) (<a href="https://redirect.github.com/python/typing_extensions/issues/634">#634</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03"><code>7ee9e05</code></a> Backport type_params fix from CPython (<a href="https://redirect.github.com/python/typing_extensions/issues/646">#646</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98"><code>1e8eb9c</code></a> Do not refer to PEP 705 as being experimental (<a href="https://redirect.github.com/python/typing_extensions/issues/648">#648</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/typing_extensions/compare/4.14.1...4.15.0">compare view</a></li> </ul> </details> <br /> 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ns/codecov-cli with 2 updates (#713) Bumps the python-dependencies group in /.github/actions/codecov-cli with 2 updates: [anyio](https://github.com/agronholm/anyio) and [pyyaml](https://github.com/yaml/pyyaml). Updates `anyio` from 4.10.0 to 4.11.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.11.0</h2> <ul> <li>Added support for cancellation reasons (the <code>reason</code> parameter to <code>CancelScope.cancel()</code>) (<a href="https://redirect.github.com/agronholm/anyio/pull/975">#975</a>)</li> <li>Bumped the minimum version of Trio to v0.31.0</li> <li>Added the ability to enter the event loop from foreign (non-worker) threads by passing the return value of <code>anyio.lowlevel.current_token()</code> to <code>anyio.from_thread.run()</code> and <code>anyio.from_thread.run_sync()</code> as the <code>token</code> keyword argument (<a href="https://redirect.github.com/agronholm/anyio/issues/256">#256</a>)</li> <li>Added pytest option (<code>anyio_mode = "auto"</code>) to make the pytest plugin automatically handle all async tests (<a href="https://redirect.github.com/agronholm/anyio/pull/971">#971</a>)</li> <li>Added the <code>anyio.Condition.wait_for()</code> method for feature parity with asyncio (<a href="https://redirect.github.com/agronholm/anyio/pull/974">#974</a>)</li> <li>Changed the default type argument of <code>anyio.abc.TaskStatus</code> from <code>Any</code> to <code>None</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/964">#964</a>)</li> <li>Fixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when <code>local_port=0</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/857">#857</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a> and <a href="https://github.com/agronholm"><code>@agronholm</code></a>)</li> <li>Fixed inconsistency between Trio and asyncio where a TCP stream that previously raised a <code>BrokenResourceError</code> on <code>send()</code> would still raise <code>BrokenResourceError</code> after the stream was closed on asyncio, but <code>ClosedResourceError</code> on Trio. They now both raise a <code>ClosedResourceError</code> in this scenario. (<a href="https://redirect.github.com/agronholm/anyio/issues/671">#671</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>4.11.0</strong></p> <ul> <li>Added support for cancellation reasons (the <code>reason</code> parameter to <code>CancelScope.cancel()</code>) (<code>[#975](agronholm/anyio#975) <https://github.com/agronholm/anyio/pull/975></code>_)</li> <li>Bumped the minimum version of Trio to v0.31.0</li> <li>Added the ability to enter the event loop from foreign (non-worker) threads by passing the return value of <code>anyio.lowlevel.current_token()</code> to <code>anyio.from_thread.run()</code> and <code>anyio.from_thread.run_sync()</code> as the <code>token</code> keyword argument (<code>[#256](agronholm/anyio#256) <https://github.com/agronholm/anyio/issues/256></code>_)</li> <li>Added pytest option (<code>anyio_mode = "auto"</code>) to make the pytest plugin automatically handle all async tests (<code>[#971](agronholm/anyio#971) <https://github.com/agronholm/anyio/pull/971></code>_)</li> <li>Added the <code>anyio.Condition.wait_for()</code> method for feature parity with asyncio (<code>[#974](agronholm/anyio#974) <https://github.com/agronholm/anyio/pull/974></code>_)</li> <li>Changed the default type argument of <code>anyio.abc.TaskStatus</code> from <code>Any</code> to <code>None</code> (<code>[#964](agronholm/anyio#964) <https://github.com/agronholm/anyio/pull/964></code>_)</li> <li>Fixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when <code>local_port=0</code> (<code>[#857](agronholm/anyio#857) <https://github.com/agronholm/anyio/issues/857></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a> and <a href="https://github.com/agronholm"><code>@agronholm</code></a>)</li> <li>Fixed inconsistency between Trio and asyncio where a TCP stream that previously raised a <code>BrokenResourceError</code> on <code>send()</code> would still raise <code>BrokenResourceError</code> after the stream was closed on asyncio, but <code>ClosedResourceError</code> on Trio. They now both raise a <code>ClosedResourceError</code> in this scenario. (<code>[#671](agronholm/anyio#671) <https://github.com/agronholm/anyio/issues/671></code>_)</li> </ul> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/08737af202f6610cdb8ba53fecaefd9c03269637"><code>08737af</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059"><code>8bb9fe0</code></a> Fixed the inconsistent exception on sending to a closed TCP stream (<a href="https://redirect.github.com/agronholm/anyio/issues/980">#980</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981"><code>9637093</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/981">#981</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9"><code>f1bc6ee</code></a> Fixed changelog entry formatting</li> <li><a href="https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133"><code>0b58964</code></a> Mentioned the sub-interpreter support in the README</li> <li><a href="https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71"><code>1ed112c</code></a> Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...</li> <li><a href="https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0"><code>aceeee0</code></a> Re-enabled coverage reporting on macOS</li> <li><a href="https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2"><code>6b890dc</code></a> Reworded a changelog entry and added PR links to others</li> <li><a href="https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd"><code>944257d</code></a> Updated pre-commit modules</li> <li><a href="https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a"><code>087975f</code></a> Fixed a documentation style (<a href="https://redirect.github.com/agronholm/anyio/issues/976">#976</a>)</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.10.0...4.11.0">compare view</a></li> </ul> </details> <br /> Updates `pyyaml` from 6.0.2 to 6.0.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/yaml/pyyaml/releases">pyyaml's releases</a>.</em></p> <blockquote> <h2>6.0.3</h2> <h2>What's Changed</h2> <ul> <li>Support for Python 3.14 and free-threading (experimental).</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3">https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES">pyyaml's changelog</a>.</em></p> <blockquote> <p>6.0.3 (2025-09-25)</p> <ul> <li><a href="https://redirect.github.com/yaml/pyyaml/pull/864">yaml/pyyaml#864</a> -- Support for Python 3.14 and free-threading (experimental)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb"><code>49790e7</code></a> Release 6.0.3 (<a href="https://redirect.github.com/yaml/pyyaml/issues/889">#889</a>)</li> <li>See full diff in <a href="https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3">compare view</a></li> </ul> </details> <br /> 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [anyio](https://github.com/agronholm/anyio) from 4.9.0 to 4.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.10.0</h2> <ul> <li>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</li> <li>Added various class methods to wrap existing sockets as listeners or socket streams: <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</li> <li>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<a href="https://redirect.github.com/agronholm/anyio/pull/905">#905</a>; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</li> <li>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/818">#818</a>; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</li> <li>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<a href="https://redirect.github.com/agronholm/anyio/pull/896">#896</a>; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</li> <li>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</li> <li>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</li> <li>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</li> <li>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</li> <li>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<a href="https://redirect.github.com/agronholm/anyio/pull/913">#913</a>; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</li> <li>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/915">#915</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</li> <li>Migrated testing and documentation dependencies from extras to dependency groups</li> <li>Fixed compatibility of <code>anyio.to_interpreter</code> with Python 3.14.0b2 (<a href="https://redirect.github.com/agronholm/anyio/issues/926">#926</a>; PR by <a href="https://github.com/hroncok"><code>@hroncok</code></a>)</li> <li>Fixed <code>SyntaxWarning</code> on Python 3.14 about <code>return</code> in <code>finally</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/816">#816</a>)</li> <li>Fixed RunVar name conflicts. RunVar instances with the same name should not share storage (<a href="https://redirect.github.com/agronholm/anyio/issues/880">#880</a>; PR by <a href="https://github.com/vimfu"><code>@vimfu</code></a>)</li> <li>Renamed the <code>BrokenWorkerIntepreter</code> exception to <code>BrokenWorkerInterpreter</code>. The old name is available as a deprecated alias. (<a href="https://redirect.github.com/agronholm/anyio/pull/938">#938</a>; PR by <a href="https://github.com/ayussh-verma"><code>@ayussh-verma</code></a>)</li> <li>Fixed an edge case in <code>CapacityLimiter</code> on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (<a href="https://redirect.github.com/agronholm/anyio/issues/947">#947</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>UNRELEASED</strong></p> <ul> <li>Set <code>None</code> as the default type argument for <code>anyio.abc.TaskStatus</code></li> </ul> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</p> </li> <li> <p>Added the ability to specify the thread name in <code>start_blocking_portal()</code> (<code>[#818](agronholm/anyio#818) <https://github.com/agronholm/anyio/issues/818></code>_; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</p> </li> <li> <p>Added <code>anyio.notify_closing</code> to allow waking <code>anyio.wait_readable</code> and <code>anyio.wait_writable</code> before closing a socket. Among other things, this prevents an OSError on the <code>ProactorEventLoop</code>. (<code>[#896](agronholm/anyio#896) <https://github.com/agronholm/anyio/pull/896></code>_; PR by <a href="https://github.com/graingert"><code>@graingert</code></a>)</p> </li> <li> <p>Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)</p> </li> <li> <p>Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's</p> </li> <li> <p>Updated the <code>to_interpreters</code> module to use the public <code>concurrent.interpreters</code> API on Python 3.14 or later</p> </li> <li> <p>Fixed <code>anyio.Path.copy()</code> and <code>anyio.Path.copy_into()</code> failing on Python 3.14.0a7</p> </li> <li> <p>Fixed return annotation of <code>__aexit__</code> on async context managers. CMs which can suppress exceptions should return <code>bool</code>, or <code>None</code> otherwise. (<code>[#913](agronholm/anyio#913) <https://github.com/agronholm/anyio/pull/913></code>_; PR by <a href="https://github.com/Enegg"><code>@Enegg</code></a>)</p> </li> <li> <p>Fixed rollover boundary check in <code>SpooledTemporaryFile</code> so that rollover only occurs when the buffer size exceeds <code>max_size</code> (<code>[#915](agronholm/anyio#915) <https://github.com/agronholm/anyio/pull/915></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</p> </li> <li> <p>Migrated testing and documentation dependencies from extras to dependency groups</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6"><code>0cf55b8</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345"><code>b029df5</code></a> Updated the to_interpreter module to use the public API on Python 3.14 (<a href="https://redirect.github.com/agronholm/anyio/issues/956">#956</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1"><code>01f02cf</code></a> Incorporated EP2025 sprint feedback and added a new section (<a href="https://redirect.github.com/agronholm/anyio/issues/955">#955</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4"><code>d896480</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/954">#954</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c"><code>0282b81</code></a> Added the BufferedByteReceiveStream.feed_data() method (<a href="https://redirect.github.com/agronholm/anyio/issues/945">#945</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb"><code>19e5477</code></a> Fixed a cancellation edge case for asyncio CapacityLimiter (<a href="https://redirect.github.com/agronholm/anyio/issues/952">#952</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827"><code>4666df3</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/946">#946</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e"><code>38c2567</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/942">#942</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb"><code>3db73ac</code></a> Add missing imports for Readcting to cancellation in worker threads example (...</li> <li><a href="https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9"><code>2eda004</code></a> Added an example on how to use move_on_after() with shielding</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.9.0...4.10">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Stabldev <114811070+stabldev@users.noreply.github.com>
Bumps [anyio](https://github.com/agronholm/anyio) from 4.10.0 to 4.11.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.11.0</h2> <ul> <li>Added support for cancellation reasons (the <code>reason</code> parameter to <code>CancelScope.cancel()</code>) (<a href="https://redirect.github.com/agronholm/anyio/pull/975">#975</a>)</li> <li>Bumped the minimum version of Trio to v0.31.0</li> <li>Added the ability to enter the event loop from foreign (non-worker) threads by passing the return value of <code>anyio.lowlevel.current_token()</code> to <code>anyio.from_thread.run()</code> and <code>anyio.from_thread.run_sync()</code> as the <code>token</code> keyword argument (<a href="https://redirect.github.com/agronholm/anyio/issues/256">#256</a>)</li> <li>Added pytest option (<code>anyio_mode = "auto"</code>) to make the pytest plugin automatically handle all async tests (<a href="https://redirect.github.com/agronholm/anyio/pull/971">#971</a>)</li> <li>Added the <code>anyio.Condition.wait_for()</code> method for feature parity with asyncio (<a href="https://redirect.github.com/agronholm/anyio/pull/974">#974</a>)</li> <li>Changed the default type argument of <code>anyio.abc.TaskStatus</code> from <code>Any</code> to <code>None</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/964">#964</a>)</li> <li>Fixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when <code>local_port=0</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/857">#857</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a> and <a href="https://github.com/agronholm"><code>@agronholm</code></a>)</li> <li>Fixed inconsistency between Trio and asyncio where a TCP stream that previously raised a <code>BrokenResourceError</code> on <code>send()</code> would still raise <code>BrokenResourceError</code> after the stream was closed on asyncio, but <code>ClosedResourceError</code> on Trio. They now both raise a <code>ClosedResourceError</code> in this scenario. (<a href="https://redirect.github.com/agronholm/anyio/issues/671">#671</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>4.11.0</strong></p> <ul> <li>Added support for cancellation reasons (the <code>reason</code> parameter to <code>CancelScope.cancel()</code>) (<code>[#975](agronholm/anyio#975) <https://github.com/agronholm/anyio/pull/975></code>_)</li> <li>Bumped the minimum version of Trio to v0.31.0</li> <li>Added the ability to enter the event loop from foreign (non-worker) threads by passing the return value of <code>anyio.lowlevel.current_token()</code> to <code>anyio.from_thread.run()</code> and <code>anyio.from_thread.run_sync()</code> as the <code>token</code> keyword argument (<code>[#256](agronholm/anyio#256) <https://github.com/agronholm/anyio/issues/256></code>_)</li> <li>Added pytest option (<code>anyio_mode = "auto"</code>) to make the pytest plugin automatically handle all async tests (<code>[#971](agronholm/anyio#971) <https://github.com/agronholm/anyio/pull/971></code>_)</li> <li>Added the <code>anyio.Condition.wait_for()</code> method for feature parity with asyncio (<code>[#974](agronholm/anyio#974) <https://github.com/agronholm/anyio/pull/974></code>_)</li> <li>Changed the default type argument of <code>anyio.abc.TaskStatus</code> from <code>Any</code> to <code>None</code> (<code>[#964](agronholm/anyio#964) <https://github.com/agronholm/anyio/pull/964></code>_)</li> <li>Fixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when <code>local_port=0</code> (<code>[#857](agronholm/anyio#857) <https://github.com/agronholm/anyio/issues/857></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a> and <a href="https://github.com/agronholm"><code>@agronholm</code></a>)</li> <li>Fixed inconsistency between Trio and asyncio where a TCP stream that previously raised a <code>BrokenResourceError</code> on <code>send()</code> would still raise <code>BrokenResourceError</code> after the stream was closed on asyncio, but <code>ClosedResourceError</code> on Trio. They now both raise a <code>ClosedResourceError</code> in this scenario. (<code>[#671](agronholm/anyio#671) <https://github.com/agronholm/anyio/issues/671></code>_)</li> </ul> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/08737af202f6610cdb8ba53fecaefd9c03269637"><code>08737af</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059"><code>8bb9fe0</code></a> Fixed the inconsistent exception on sending to a closed TCP stream (<a href="https://redirect.github.com/agronholm/anyio/issues/980">#980</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981"><code>9637093</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/981">#981</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9"><code>f1bc6ee</code></a> Fixed changelog entry formatting</li> <li><a href="https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133"><code>0b58964</code></a> Mentioned the sub-interpreter support in the README</li> <li><a href="https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71"><code>1ed112c</code></a> Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...</li> <li><a href="https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0"><code>aceeee0</code></a> Re-enabled coverage reporting on macOS</li> <li><a href="https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2"><code>6b890dc</code></a> Reworded a changelog entry and added PR links to others</li> <li><a href="https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd"><code>944257d</code></a> Updated pre-commit modules</li> <li><a href="https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a"><code>087975f</code></a> Fixed a documentation style (<a href="https://redirect.github.com/agronholm/anyio/issues/976">#976</a>)</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.10.0...4.11.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [anyio](https://github.com/agronholm/anyio) from 4.10.0 to 4.11.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.11.0</h2> <ul> <li>Added support for cancellation reasons (the <code>reason</code> parameter to <code>CancelScope.cancel()</code>) (<a href="https://redirect.github.com/agronholm/anyio/pull/975">#975</a>)</li> <li>Bumped the minimum version of Trio to v0.31.0</li> <li>Added the ability to enter the event loop from foreign (non-worker) threads by passing the return value of <code>anyio.lowlevel.current_token()</code> to <code>anyio.from_thread.run()</code> and <code>anyio.from_thread.run_sync()</code> as the <code>token</code> keyword argument (<a href="https://redirect.github.com/agronholm/anyio/issues/256">#256</a>)</li> <li>Added pytest option (<code>anyio_mode = "auto"</code>) to make the pytest plugin automatically handle all async tests (<a href="https://redirect.github.com/agronholm/anyio/pull/971">#971</a>)</li> <li>Added the <code>anyio.Condition.wait_for()</code> method for feature parity with asyncio (<a href="https://redirect.github.com/agronholm/anyio/pull/974">#974</a>)</li> <li>Changed the default type argument of <code>anyio.abc.TaskStatus</code> from <code>Any</code> to <code>None</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/964">#964</a>)</li> <li>Fixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when <code>local_port=0</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/857">#857</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a> and <a href="https://github.com/agronholm"><code>@agronholm</code></a>)</li> <li>Fixed inconsistency between Trio and asyncio where a TCP stream that previously raised a <code>BrokenResourceError</code> on <code>send()</code> would still raise <code>BrokenResourceError</code> after the stream was closed on asyncio, but <code>ClosedResourceError</code> on Trio. They now both raise a <code>ClosedResourceError</code> in this scenario. (<a href="https://redirect.github.com/agronholm/anyio/issues/671">#671</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst">anyio's changelog</a>.</em></p> <blockquote> <h1>Version history</h1> <p>This library adheres to <code>Semantic Versioning 2.0 <http://semver.org/></code>_.</p> <p><strong>4.11.0</strong></p> <ul> <li>Added support for cancellation reasons (the <code>reason</code> parameter to <code>CancelScope.cancel()</code>) (<code>[bazelbuild#975](agronholm/anyio#975) <https://github.com/agronholm/anyio/pull/975></code>_)</li> <li>Bumped the minimum version of Trio to v0.31.0</li> <li>Added the ability to enter the event loop from foreign (non-worker) threads by passing the return value of <code>anyio.lowlevel.current_token()</code> to <code>anyio.from_thread.run()</code> and <code>anyio.from_thread.run_sync()</code> as the <code>token</code> keyword argument (<code>[bazelbuild#256](agronholm/anyio#256) <https://github.com/agronholm/anyio/issues/256></code>_)</li> <li>Added pytest option (<code>anyio_mode = "auto"</code>) to make the pytest plugin automatically handle all async tests (<code>[bazelbuild#971](agronholm/anyio#971) <https://github.com/agronholm/anyio/pull/971></code>_)</li> <li>Added the <code>anyio.Condition.wait_for()</code> method for feature parity with asyncio (<code>[bazelbuild#974](agronholm/anyio#974) <https://github.com/agronholm/anyio/pull/974></code>_)</li> <li>Changed the default type argument of <code>anyio.abc.TaskStatus</code> from <code>Any</code> to <code>None</code> (<code>[bazelbuild#964](agronholm/anyio#964) <https://github.com/agronholm/anyio/pull/964></code>_)</li> <li>Fixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when <code>local_port=0</code> (<code>[bazelbuild#857](agronholm/anyio#857) <https://github.com/agronholm/anyio/issues/857></code>_; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a> and <a href="https://github.com/agronholm"><code>@agronholm</code></a>)</li> <li>Fixed inconsistency between Trio and asyncio where a TCP stream that previously raised a <code>BrokenResourceError</code> on <code>send()</code> would still raise <code>BrokenResourceError</code> after the stream was closed on asyncio, but <code>ClosedResourceError</code> on Trio. They now both raise a <code>ClosedResourceError</code> in this scenario. (<code>[bazelbuild#671](agronholm/anyio#671) <https://github.com/agronholm/anyio/issues/671></code>_)</li> </ul> <p><strong>4.10.0</strong></p> <ul> <li> <p>Added the <code>feed_data()</code> method to the <code>BufferedByteReceiveStream</code> class, allowing users to inject data directly into the buffer</p> </li> <li> <p>Added various class methods to wrap existing sockets as listeners or socket streams:</p> <ul> <li><code>SocketListener.from_socket()</code></li> <li><code>SocketStream.from_socket()</code></li> <li><code>UNIXSocketStream.from_socket()</code></li> <li><code>UDPSocket.from_socket()</code></li> <li><code>ConnectedUDPSocket.from_socket()</code></li> <li><code>UNIXDatagramSocket.from_socket()</code></li> <li><code>ConnectedUNIXDatagramSocket.from_socket()</code></li> </ul> </li> <li> <p>Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects</p> </li> <li> <p>Added context manager mix-in classes (<code>anyio.ContextManagerMixin</code> and <code>anyio.AsyncContextManagerMixin</code>) to help write classes that embed other context managers, particularly cancel scopes or task groups (<code>[bazelbuild#905](agronholm/anyio#905) <https://github.com/agronholm/anyio/pull/905></code>_; PR by <a href="https://github.com/agronholm"><code>@agronholm</code></a> and</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/08737af202f6610cdb8ba53fecaefd9c03269637"><code>08737af</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059"><code>8bb9fe0</code></a> Fixed the inconsistent exception on sending to a closed TCP stream (<a href="https://redirect.github.com/agronholm/anyio/issues/980">#980</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981"><code>9637093</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/981">#981</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9"><code>f1bc6ee</code></a> Fixed changelog entry formatting</li> <li><a href="https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133"><code>0b58964</code></a> Mentioned the sub-interpreter support in the README</li> <li><a href="https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71"><code>1ed112c</code></a> Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...</li> <li><a href="https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0"><code>aceeee0</code></a> Re-enabled coverage reporting on macOS</li> <li><a href="https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2"><code>6b890dc</code></a> Reworded a changelog entry and added PR links to others</li> <li><a href="https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd"><code>944257d</code></a> Updated pre-commit modules</li> <li><a href="https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a"><code>087975f</code></a> Fixed a documentation style (<a href="https://redirect.github.com/agronholm/anyio/issues/976">#976</a>)</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.10.0...4.11.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Changes
This adds two new mix-in classes:
ContextManagerMixinandAsyncContextManagerMixin. They're meant to enable users to write context manager classes in the same way as@contextmanagerand@asynccontextmanager, respectively. The aim is to enable users to more easily embed cancel scopes and task groups into other context manager classes.Checklist
If this is a user-facing code change, like a bugfix or a new feature, please ensure that
you've fulfilled the following conditions (where applicable):
tests/) added which would fail without your patchdocs/, in case of behavior changes or newfeatures)
docs/versionhistory.rst).If this is a trivial change, like a typo fix or a code reformatting, then you can ignore
these instructions.
Updating the changelog
If there are no entries after the last release, use
**UNRELEASED**as the version.If, say, your patch fixes issue #123, the entry should look like this:
If there's no issue linked, just link to your pull request instead by updating the
changelog after you've created the PR.