gh-133117: Run mypy on tomllib in CI (#133118)

This commit is contained in:
sobolevn 2025-04-30 11:45:58 +03:00 committed by GitHub
parent fd0f5d0a5e
commit 5ea9010e89
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 25 additions and 2 deletions

View file

@ -11,6 +11,7 @@ on:
- "Lib/_colorize.py"
- "Lib/_pyrepl/**"
- "Lib/test/libregrtest/**"
- "Lib/tomllib/**"
- "Misc/mypy/**"
- "Tools/build/generate_sbom.py"
- "Tools/cases_generator/**"
@ -44,6 +45,7 @@ jobs:
target: [
"Lib/_pyrepl",
"Lib/test/libregrtest",
"Lib/tomllib",
"Tools/build",
"Tools/cases_generator",
"Tools/clinic",

View file

@ -282,7 +282,7 @@ class NestedDict:
cont = cont[-1]
if not isinstance(cont, dict):
raise KeyError("There is no nest behind this key")
return cont
return cont # type: ignore[no-any-return]
def append_nest_to_list(self, key: Key) -> None:
cont = self.get_or_create_nest(key[:-1])
@ -741,7 +741,7 @@ def make_safe_parse_float(parse_float: ParseFloat) -> ParseFloat:
instead of returning illegal types.
"""
# The default `float` callable never returns illegal types. Optimize it.
if parse_float is float: # type: ignore[comparison-overlap]
if parse_float is float:
return float
def safe_parse_float(float_str: str) -> Any:

19
Lib/tomllib/mypy.ini Normal file
View file

@ -0,0 +1,19 @@
# Config file for running mypy on tomllib.
# Run mypy by invoking `mypy --config-file Lib/tomllib/mypy.ini`
# on the command-line from the repo root
[mypy]
files = Lib/tomllib
mypy_path = $MYPY_CONFIG_FILE_DIR/../../Misc/mypy
explicit_package_bases = True
python_version = 3.12
pretty = True
# Enable most stricter settings
enable_error_code = ignore-without-code
strict = True
strict_bytes = True
local_partial_types = True
warn_unreachable = True
# TODO(@sobolevn): remove this setting and refactor any found problems
disallow_any_generics = False

1
Misc/mypy/tomllib Symbolic link
View file

@ -0,0 +1 @@
../../Lib/tomllib

View file

@ -2,3 +2,4 @@
_colorize.py
_pyrepl
tomllib