https://github.com/python/cpython/commit/cb3174113e7dbb8a757ce64faac5a8c7e074945b
commit: cb3174113e7dbb8a757ce64faac5a8c7e074945b
branch: main
author: sobolevn <m...@sobolevn.me>
committer: sobolevn <m...@sobolevn.me>
date: 2025-05-03T16:57:09+03:00
summary:

gh-133117: Enable stricter mypy checks for `tomllib` (#133206)

files:
M Lib/tomllib/_parser.py
M Lib/tomllib/_re.py
M Lib/tomllib/mypy.ini

diff --git a/Lib/tomllib/_parser.py b/Lib/tomllib/_parser.py
index da56af3f34d9b2..3ee47aa9e0afba 100644
--- a/Lib/tomllib/_parser.py
+++ b/Lib/tomllib/_parser.py
@@ -214,7 +214,7 @@ class Flags:
     EXPLICIT_NEST = 1
 
     def __init__(self) -> None:
-        self._flags: dict[str, dict] = {}
+        self._flags: dict[str, dict[Any, Any]] = {}
         self._pending_flags: set[tuple[Key, int]] = set()
 
     def add_pending(self, key: Key, flag: int) -> None:
@@ -272,7 +272,7 @@ def get_or_create_nest(
         key: Key,
         *,
         access_lists: bool = True,
-    ) -> dict:
+    ) -> dict[str, Any]:
         cont: Any = self.dict
         for k in key:
             if k not in cont:
@@ -486,9 +486,9 @@ def parse_one_line_basic_str(src: str, pos: Pos) -> 
tuple[Pos, str]:
     return parse_basic_str(src, pos, multiline=False)
 
 
-def parse_array(src: str, pos: Pos, parse_float: ParseFloat) -> tuple[Pos, 
list]:
+def parse_array(src: str, pos: Pos, parse_float: ParseFloat) -> tuple[Pos, 
list[Any]]:
     pos += 1
-    array: list = []
+    array: list[Any] = []
 
     pos = skip_comments_and_array_ws(src, pos)
     if src.startswith("]", pos):
@@ -510,7 +510,7 @@ def parse_array(src: str, pos: Pos, parse_float: 
ParseFloat) -> tuple[Pos, list]
             return pos + 1, array
 
 
-def parse_inline_table(src: str, pos: Pos, parse_float: ParseFloat) -> 
tuple[Pos, dict]:
+def parse_inline_table(src: str, pos: Pos, parse_float: ParseFloat) -> 
tuple[Pos, dict[str, Any]]:
     pos += 1
     nested_dict = NestedDict()
     flags = Flags()
diff --git a/Lib/tomllib/_re.py b/Lib/tomllib/_re.py
index 1ca6bef77a0b03..eb8beb19747288 100644
--- a/Lib/tomllib/_re.py
+++ b/Lib/tomllib/_re.py
@@ -52,7 +52,7 @@
 )
 
 
-def match_to_datetime(match: re.Match) -> datetime | date:
+def match_to_datetime(match: re.Match[str]) -> datetime | date:
     """Convert a `RE_DATETIME` match to `datetime.datetime` or `datetime.date`.
 
     Raises ValueError if the match does not correspond to a valid date
@@ -101,13 +101,13 @@ def cached_tz(hour_str: str, minute_str: str, sign_str: 
str) -> timezone:
     )
 
 
-def match_to_localtime(match: re.Match) -> time:
+def match_to_localtime(match: re.Match[str]) -> time:
     hour_str, minute_str, sec_str, micros_str = match.groups()
     micros = int(micros_str.ljust(6, "0")) if micros_str else 0
     return time(int(hour_str), int(minute_str), int(sec_str), micros)
 
 
-def match_to_number(match: re.Match, parse_float: ParseFloat) -> Any:
+def match_to_number(match: re.Match[str], parse_float: ParseFloat) -> Any:
     if match.group("floatpart"):
         return parse_float(match.group())
     return int(match.group(), 0)
diff --git a/Lib/tomllib/mypy.ini b/Lib/tomllib/mypy.ini
index 0297d19e2c8445..1761dce45562a6 100644
--- a/Lib/tomllib/mypy.ini
+++ b/Lib/tomllib/mypy.ini
@@ -15,5 +15,3 @@ 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

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to