]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-108455: peg_generator: make the mypy config slightly stricter (#108627)
authorAlex Waygood <Alex.Waygood@Gmail.com>
Tue, 29 Aug 2023 11:23:22 +0000 (12:23 +0100)
committerGitHub <noreply@github.com>
Tue, 29 Aug 2023 11:23:22 +0000 (11:23 +0000)
* Enable `--no-implicit-reexport`

* Enable the `truthy-bool` error code

* Enable the `ignore-without-code` error code

* Explicitly note that `--warn-unreachable` cannot yet be enabled

Tools/peg_generator/mypy.ini
Tools/peg_generator/pegen/__main__.py
Tools/peg_generator/pegen/parser.py
Tools/peg_generator/pegen/testutil.py

index bc94c6a94512b091861f4d1a951d97254420116f..6a45165e8eecb5e86ea6b6cb69326ab941e859d7 100644 (file)
@@ -8,10 +8,11 @@ python_version = 3.10
 
 # Be strict...
 strict = True
+enable_error_code = truthy-bool,ignore-without-code
 
 # except for a few settings that can't yet be enabled:
 warn_return_any = False
-no_implicit_reexport = False
+warn_unreachable = False
 
 [mypy-pegen.grammar_parser]
 strict_optional = False
index 2910d6ccf1c694f799a607db432c9180e34d5a56..262c8a6db68f6ed63954b2efd6b6c65b66b66bd8 100755 (executable)
@@ -12,7 +12,10 @@ import token
 import traceback
 from typing import Tuple
 
-from pegen.build import Grammar, Parser, ParserGenerator, Tokenizer
+from pegen.grammar import Grammar
+from pegen.parser import Parser
+from pegen.parser_generator import ParserGenerator
+from pegen.tokenizer import Tokenizer
 from pegen.validator import validate_grammar
 
 
index eab48efe2089ee3d3dcf53f73b92b7a768599746..ed0aec9db2443fab45bb3bc366e6c61c60e5b277 100644 (file)
@@ -32,7 +32,7 @@ def logger(method: F) -> F:
         print(f"{fill}... {method_name}({argsr}) --> {tree!s:.200}")
         return tree
 
-    logger_wrapper.__wrapped__ = method  # type: ignore
+    logger_wrapper.__wrapped__ = method  # type: ignore[attr-defined]
     return cast(F, logger_wrapper)
 
 
@@ -69,7 +69,7 @@ def memoize(method: F) -> F:
             self._reset(endmark)
         return tree
 
-    memoize_wrapper.__wrapped__ = method  # type: ignore
+    memoize_wrapper.__wrapped__ = method  # type: ignore[attr-defined]
     return cast(F, memoize_wrapper)
 
 
@@ -153,7 +153,7 @@ def memoize_left_rec(
                 self._reset(endmark)
         return tree
 
-    memoize_left_rec_wrapper.__wrapped__ = method  # type: ignore
+    memoize_left_rec_wrapper.__wrapped__ = method  # type: ignore[attr-defined]
     return memoize_left_rec_wrapper
 
 
index 9fcca928b08ee57686872be8e74f5c21ed802e62..50cc8520f2ce3fa65a7d7d180e11b518478016dc 100644 (file)
@@ -37,7 +37,7 @@ def generate_parser(grammar: Grammar) -> Type[Parser]:
 
 def run_parser(file: IO[bytes], parser_class: Type[Parser], *, verbose: bool = False) -> Any:
     # Run a parser on a file (stream).
-    tokenizer = Tokenizer(tokenize.generate_tokens(file.readline))  # type: ignore # typeshed issue #3515
+    tokenizer = Tokenizer(tokenize.generate_tokens(file.readline))  # type: ignore[arg-type] # typeshed issue #3515
     parser = parser_class(tokenizer, verbose=verbose)
     result = parser.start()
     if result is None:
@@ -52,7 +52,7 @@ def parse_string(
     if dedent:
         source = textwrap.dedent(source)
     file = io.StringIO(source)
-    return run_parser(file, parser_class, verbose=verbose)  # type: ignore # typeshed issue #3515
+    return run_parser(file, parser_class, verbose=verbose)  # type: ignore[arg-type] # typeshed issue #3515
 
 
 def make_parser(source: str) -> Type[Parser]:
@@ -116,7 +116,7 @@ def generate_parser_c_extension(
 def print_memstats() -> bool:
     MiB: Final = 2**20
     try:
-        import psutil  # type: ignore
+        import psutil  # type: ignore[import]
     except ImportError:
         return False
     print("Memory stats:")