From 824afbf548e7128ca57c6faf45cfd6b066a6ee45 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Tue, 19 Nov 2024 22:41:59 +0300 Subject: [PATCH] gh-109413: Enable mypy's `disallow_any_generics` setting when checking `libregrtest` (#127033) --- Lib/test/libregrtest/mypy.ini | 1 - Lib/test/libregrtest/results.py | 6 +++++- Lib/test/libregrtest/runtests.py | 2 +- Lib/test/libregrtest/worker.py | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Lib/test/libregrtest/mypy.ini b/Lib/test/libregrtest/mypy.ini index 905341cc04b..3fa9afcb7a4 100644 --- a/Lib/test/libregrtest/mypy.ini +++ b/Lib/test/libregrtest/mypy.ini @@ -15,7 +15,6 @@ strict = True # Various stricter settings that we can't yet enable # Try to enable these in the following order: -disallow_any_generics = False disallow_incomplete_defs = False disallow_untyped_calls = False disallow_untyped_defs = False diff --git a/Lib/test/libregrtest/results.py b/Lib/test/libregrtest/results.py index 4f3e84282dc..9eda926966d 100644 --- a/Lib/test/libregrtest/results.py +++ b/Lib/test/libregrtest/results.py @@ -1,5 +1,6 @@ import sys import trace +from typing import TYPE_CHECKING from .runtests import RunTests from .result import State, TestResult, TestStats, Location @@ -7,6 +8,9 @@ from .utils import ( StrPath, TestName, TestTuple, TestList, FilterDict, printlist, count, format_duration) +if TYPE_CHECKING: + from xml.etree.ElementTree import Element + # Python uses exit code 1 when an exception is not caught # argparse.ArgumentParser.error() uses exit code 2 @@ -34,7 +38,7 @@ class TestResults: self.test_times: list[tuple[float, TestName]] = [] self.stats = TestStats() # used by --junit-xml - self.testsuite_xml: list = [] + self.testsuite_xml: list['Element'] = [] # used by -T with -j self.covered_lines: set[Location] = set() diff --git a/Lib/test/libregrtest/runtests.py b/Lib/test/libregrtest/runtests.py index cd1ce8080a0..130c036a62e 100644 --- a/Lib/test/libregrtest/runtests.py +++ b/Lib/test/libregrtest/runtests.py @@ -28,7 +28,7 @@ class JsonFile: file: int | None file_type: str - def configure_subprocess(self, popen_kwargs: dict) -> None: + def configure_subprocess(self, popen_kwargs: dict[str, Any]) -> None: match self.file_type: case JsonFileType.UNIX_FD: # Unix file descriptor diff --git a/Lib/test/libregrtest/worker.py b/Lib/test/libregrtest/worker.py index da24760a82c..0c9f5bd6e42 100644 --- a/Lib/test/libregrtest/worker.py +++ b/Lib/test/libregrtest/worker.py @@ -20,7 +20,7 @@ NEED_TTY = { def create_worker_process(runtests: WorkerRunTests, output_fd: int, - tmp_dir: StrPath | None = None) -> subprocess.Popen: + tmp_dir: StrPath | None = None) -> subprocess.Popen[str]: worker_json = runtests.as_json() cmd = runtests.create_python_cmd()