aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/mypy.yml2
-rw-r--r--Lib/tomllib/_parser.py4
-rw-r--r--Lib/tomllib/mypy.ini19
l---------Misc/mypy/tomllib1
-rw-r--r--Misc/mypy/typed-stdlib.txt1
5 files changed, 25 insertions, 2 deletions
diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml
index cb1b9fb5dbf..908daaf3a60 100644
--- a/.github/workflows/mypy.yml
+++ b/.github/workflows/mypy.yml
@@ -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",
diff --git a/Lib/tomllib/_parser.py b/Lib/tomllib/_parser.py
index 0e522c3a69e..da56af3f34d 100644
--- a/Lib/tomllib/_parser.py
+++ b/Lib/tomllib/_parser.py
@@ -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:
diff --git a/Lib/tomllib/mypy.ini b/Lib/tomllib/mypy.ini
new file mode 100644
index 00000000000..0297d19e2c8
--- /dev/null
+++ b/Lib/tomllib/mypy.ini
@@ -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 \ No newline at end of file
diff --git a/Misc/mypy/tomllib b/Misc/mypy/tomllib
new file mode 120000
index 00000000000..20f34d49da0
--- /dev/null
+++ b/Misc/mypy/tomllib
@@ -0,0 +1 @@
+../../Lib/tomllib \ No newline at end of file
diff --git a/Misc/mypy/typed-stdlib.txt b/Misc/mypy/typed-stdlib.txt
index 8cd6858b4e5..9b27ee0d2de 100644
--- a/Misc/mypy/typed-stdlib.txt
+++ b/Misc/mypy/typed-stdlib.txt
@@ -2,3 +2,4 @@
_colorize.py
_pyrepl
+tomllib \ No newline at end of file