From 4e0e7876c4aecab15bb51d51b7fd91793404317c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 12 Oct 2026 23:01:00 +0000 Subject: [PATCH 1/3] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black-pre-commit-mirror: 26.5.1 → 26.10.1](https://github.com/psf/black-pre-commit-mirror/compare/26.5.1...26.10.1) - [github.com/astral-sh/ruff-pre-commit: v0.16.9 → v0.17.0](https://github.com/astral-sh/ruff-pre-commit/compare/v0.16.9...v0.17.0) - [github.com/adhtruong/mirrors-typos: v1.50.3 → v1.51.1](https://github.com/adhtruong/mirrors-typos/compare/v1.50.3...v1.51.1) - [github.com/astral-sh/uv-pre-commit: 0.12.21 → 0.13.0](https://github.com/astral-sh/uv-pre-commit/compare/0.12.21...0.13.0) --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7ad1a59e00..7e23719841 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,11 +20,11 @@ repos: - id: sort-simple-yaml files: .pre-commit-config.yaml - repo: https://github.com/psf/black-pre-commit-mirror - rev: 26.5.1 + rev: 26.10.1 hooks: - id: black - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.9 + rev: v0.17.0 hooks: - id: ruff-check types: [file] @@ -38,7 +38,7 @@ repos: # tomli needed on 3.10. tomllib is available in stdlib on 3.11+ - tomli - repo: https://github.com/adhtruong/mirrors-typos - rev: v1.50.3 + rev: v1.51.1 hooks: - id: typos - repo: https://github.com/sphinx-contrib/sphinx-lint @@ -69,7 +69,7 @@ repos: additional_dependencies: ["pyyaml"] files: ^(test-requirements\.txt)|(\.pre-commit-config\.yaml)$ - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.12.21 + rev: 0.13.0 hooks: # Compile requirements - id: pip-compile From cd041da35edbfa59826745e9bf406991c04a187e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 12 Oct 2026 23:02:39 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- test-requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index 2e4cad4b0f..06bd3669b1 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -16,7 +16,7 @@ attrs==26.1.0 # outcome babel==2.18.0 # via sphinx -black==26.5.1 ; implementation_name == 'cpython' +black==26.10.1 ; implementation_name == 'cpython' # via -r test-requirements.in certifi==2026.7.22 # via requests @@ -143,7 +143,7 @@ requests==2.34.2 # via sphinx roman-numerals==4.1.0 ; python_full_version >= '3.11' # via sphinx -ruff==0.16.9 +ruff==0.17.0 # via -r test-requirements.in sniffio==1.3.1 # via -r test-requirements.in @@ -205,7 +205,7 @@ typing-extensions==4.16.0 # virtualenv urllib3==2.8.0 # via requests -uv==0.12.21 +uv==0.13.0 # via -r test-requirements.in virtualenv==21.14.1 # via pre-commit From c5566cf547c75d41540a40e4932cf39cbd7fc3ef Mon Sep 17 00:00:00 2001 From: CoolCat467 <52022020+CoolCat467@users.noreply.github.com> Date: Mon, 12 Oct 2026 21:21:15 -0500 Subject: [PATCH 3/3] Ruff unsafe autofixes --- src/trio/_core/_tests/test_thread_cache.py | 5 +++-- src/trio/_tests/test_ssl.py | 10 ++++++---- src/trio/_tests/test_subprocess.py | 6 +++--- src/trio/testing/_sequencer.py | 4 ++-- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/trio/_core/_tests/test_thread_cache.py b/src/trio/_core/_tests/test_thread_cache.py index 8fdcfba8be..77d0cc6d5e 100644 --- a/src/trio/_core/_tests/test_thread_cache.py +++ b/src/trio/_core/_tests/test_thread_cache.py @@ -16,7 +16,8 @@ from .tutil import gc_collect_harder, slow if TYPE_CHECKING: - from collections.abc import Iterator + + from collections.abc import Generator from outcome import Outcome @@ -112,7 +113,7 @@ def test_idle_threads_exit(monkeypatch: pytest.MonkeyPatch) -> None: @contextmanager -def _join_started_threads() -> Iterator[None]: +def _join_started_threads() -> Generator[None, None, None]: before = frozenset(threading.enumerate()) try: yield diff --git a/src/trio/_tests/test_ssl.py b/src/trio/_tests/test_ssl.py index f0dd884c64..2a1dc3d487 100644 --- a/src/trio/_tests/test_ssl.py +++ b/src/trio/_tests/test_ssl.py @@ -43,7 +43,7 @@ ) if TYPE_CHECKING: - from collections.abc import AsyncIterator, Awaitable, Callable, Iterator + from collections.abc import AsyncGenerator, Awaitable, Callable, Generator from trio._core import MockClock from trio._ssl import T_Stream @@ -158,7 +158,9 @@ def ssl_echo_serve_sync( # (running in a thread). Useful for testing making connections with different # SSLContexts. @asynccontextmanager -async def ssl_echo_server_raw(expect_fail: bool = False) -> AsyncIterator[SocketStream]: +async def ssl_echo_server_raw( + expect_fail: bool = False, +) -> AsyncGenerator[SocketStream, None]: a, b = stdlib_socket.socketpair() async with trio.open_nursery() as nursery: # Exiting the 'with a, b' context manager closes the sockets, which @@ -179,7 +181,7 @@ async def ssl_echo_server_raw(expect_fail: bool = False) -> AsyncIterator[Socket async def ssl_echo_server( client_ctx: SSLContext, expect_fail: bool = False, -) -> AsyncIterator[SSLStream[Stream]]: +) -> AsyncGenerator[SSLStream[Stream], None]: async with ssl_echo_server_raw(expect_fail=expect_fail) as sock: yield SSLStream(sock, client_ctx, server_hostname="trio-test-1.example.org") @@ -368,7 +370,7 @@ async def do_test( def virtual_ssl_echo_server( client_ctx: SSLContext, sleeper: Callable[[str], Awaitable[None]] | None = None, -) -> Iterator[SSLStream[PyOpenSSLEchoStream]]: +) -> Generator[SSLStream[PyOpenSSLEchoStream], None, None]: fakesock = PyOpenSSLEchoStream(sleeper=sleeper) yield SSLStream(fakesock, client_ctx, server_hostname="trio-test-1.example.org") diff --git a/src/trio/_tests/test_subprocess.py b/src/trio/_tests/test_subprocess.py index 890dd0d4e9..dbd55f8282 100644 --- a/src/trio/_tests/test_subprocess.py +++ b/src/trio/_tests/test_subprocess.py @@ -6,7 +6,7 @@ import signal import subprocess import sys -from collections.abc import AsyncIterator, Callable +from collections.abc import AsyncGenerator, Callable from contextlib import AbstractAsyncContextManager, asynccontextmanager from functools import partial from pathlib import Path as SyncPath @@ -84,7 +84,7 @@ def SLEEP(seconds: int) -> list[str]: async def open_process_then_kill( # type: ignore[misc, explicit-any] *args: Any, **kwargs: Any, -) -> AsyncIterator[Process]: +) -> AsyncGenerator[Process, None]: proc = await open_process(*args, **kwargs) try: yield proc @@ -97,7 +97,7 @@ async def open_process_then_kill( # type: ignore[misc, explicit-any] async def run_process_in_nursery( # type: ignore[misc, explicit-any] *args: Any, **kwargs: Any, -) -> AsyncIterator[Process]: +) -> AsyncGenerator[Process, None]: async with _core.open_nursery() as nursery: kwargs.setdefault("check", False) value = await nursery.start(partial(run_process, *args, **kwargs)) diff --git a/src/trio/testing/_sequencer.py b/src/trio/testing/_sequencer.py index 32171cb2a2..1fc543a3c8 100644 --- a/src/trio/testing/_sequencer.py +++ b/src/trio/testing/_sequencer.py @@ -9,7 +9,7 @@ from .. import Event, _core, _util if TYPE_CHECKING: - from collections.abc import AsyncIterator + from collections.abc import AsyncGenerator @_util.final @@ -62,7 +62,7 @@ async def main(): _broken: bool = attrs.field(default=False, init=False) @asynccontextmanager - async def __call__(self, position: int) -> AsyncIterator[None]: + async def __call__(self, position: int) -> AsyncGenerator[None, None]: if position in self._claimed: raise RuntimeError(f"Attempted to reuse sequence point {position}") if self._broken: