Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions Lib/test/libregrtest/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,8 +470,7 @@ def finalize_tests(self, coverage: trace.CoverageResults | None) -> None:
os.unlink(self.next_single_filename)

if coverage is not None:
# uses a new-in-Python 3.13 keyword argument that mypy doesn't know about yet:
coverage.write_results(show_missing=True, summary=True, # type: ignore[call-arg]
coverage.write_results(show_missing=True, summary=True,
coverdir=self.coverage_dir,
ignore_missing_files=True)

Expand Down Expand Up @@ -539,10 +538,7 @@ def _run_tests(self, selected: TestTuple, tests: TestList | None) -> int:
if self.num_workers < 0:
# Use all CPUs + 2 extra worker processes for tests
# that like to sleep
#
# os.process.cpu_count() is new in Python 3.13;
# mypy doesn't know about it yet
self.num_workers = (os.process_cpu_count() or 1) + 2 # type: ignore[attr-defined]
self.num_workers = (os.process_cpu_count() or 1) + 2

# For a partial run, we do not need to clutter the output.
if (self.want_header
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/libregrtest/mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[mypy]
files = Lib/test/libregrtest
explicit_package_bases = True
python_version = 3.12
python_version = 3.15
platform = linux
pretty = True

Expand Down
9 changes: 3 additions & 6 deletions Lib/test/libregrtest/refleak.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,8 @@ def runtest_refleak(test_name, test_func,

# `ByteString` is not included in `collections.abc.__all__`
with warnings.catch_warnings(action='ignore', category=DeprecationWarning):
ByteString = collections.abc.ByteString
# Mypy doesn't even think `ByteString` is a class, hence the `type: ignore`
for obj in ByteString.__subclasses__() + [ByteString]: # type: ignore[attr-defined]
ByteString = collections.abc.ByteString # type: ignore[attr-defined]
for obj in ByteString.__subclasses__() + [ByteString]:
abcs[obj] = _get_dump(obj)[0]

# bpo-31217: Integer pool to get a single integer object for the same
Expand Down Expand Up @@ -154,9 +153,7 @@ def get_pooled_int(value):
# Also, readjust the reference counts and alloc blocks by ignoring
# any strings that might have been interned during test_func. These
# strings will be deallocated at runtime shutdown
interned_immortal_after = getunicodeinternedsize(
# Use an internal-only keyword argument that mypy doesn't know yet
_only_immortal=True) # type: ignore[call-arg]
interned_immortal_after = getunicodeinternedsize(_only_immortal=True)
alloc_after = getallocatedblocks() - interned_immortal_after
rc_after = gettotalrefcount()
fd_after = fd_count()
Expand Down
6 changes: 2 additions & 4 deletions Lib/test/libregrtest/results.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
import sys
import trace
from _colorize import get_colors # type: ignore[import-not-found]
from typing import TYPE_CHECKING

from .runtests import RunTests
from .result import State, TestResult, TestStats, Location
from .utils import (
StrPath, TestName, TestTuple, TestList, FilterDict,
printlist, count, format_duration)

if TYPE_CHECKING:
from xml.etree.ElementTree import Element
lazy from xml.etree.ElementTree import Element
Comment thread
ashm-dev marked this conversation as resolved.
Resolved


# Python uses exit code 1 when an exception is not caught
Expand Down Expand Up @@ -41,7 +39,7 @@ def __init__(self) -> None:
self.test_times: list[tuple[float, TestName]] = []
self.stats = TestStats()
# used by --junit-xml
self.testsuite_xml: list['Element'] = []
self.testsuite_xml: list[Element] = []
# used by -T with -j
self.covered_lines: set[Location] = set()

Expand Down
3 changes: 1 addition & 2 deletions Lib/test/libregrtest/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -657,8 +657,7 @@ def display_header(use_resources: dict[str, str | None],

cpu_count: object = os.cpu_count()
if cpu_count:
# The function is new in Python 3.13; mypy doesn't know about it yet:
process_cpu_count = os.process_cpu_count() # type: ignore[attr-defined]
process_cpu_count = os.process_cpu_count()
if process_cpu_count and process_cpu_count != cpu_count:
cpu_count = f"{process_cpu_count} (process) / {cpu_count} (system)"
print("== CPU count:", cpu_count)
Expand Down
Comment thread
ashm-dev marked this conversation as resolved.
Resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Modernize annotation usage in :mod:`!test.libregrtest` by replacing a
type-checking-only import with a lazy import. Patched by Shamil Abdulaev.
Loading