From: Alex Waygood Date: Tue, 29 Aug 2023 11:23:22 +0000 (+0100) Subject: gh-108455: peg_generator: make the mypy config slightly stricter (#108627) X-Git-Tag: v3.13.0a1~715 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0d140b8c5ea83d095cb35b6b0c9434cb63fe6ced;p=thirdparty%2FPython%2Fcpython.git gh-108455: peg_generator: make the mypy config slightly stricter (#108627) * 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 --- diff --git a/Tools/peg_generator/mypy.ini b/Tools/peg_generator/mypy.ini index bc94c6a94512..6a45165e8eec 100644 --- a/Tools/peg_generator/mypy.ini +++ b/Tools/peg_generator/mypy.ini @@ -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 diff --git a/Tools/peg_generator/pegen/__main__.py b/Tools/peg_generator/pegen/__main__.py index 2910d6ccf1c6..262c8a6db68f 100755 --- a/Tools/peg_generator/pegen/__main__.py +++ b/Tools/peg_generator/pegen/__main__.py @@ -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 diff --git a/Tools/peg_generator/pegen/parser.py b/Tools/peg_generator/pegen/parser.py index eab48efe2089..ed0aec9db244 100644 --- a/Tools/peg_generator/pegen/parser.py +++ b/Tools/peg_generator/pegen/parser.py @@ -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 diff --git a/Tools/peg_generator/pegen/testutil.py b/Tools/peg_generator/pegen/testutil.py index 9fcca928b08e..50cc8520f2ce 100644 --- a/Tools/peg_generator/pegen/testutil.py +++ b/Tools/peg_generator/pegen/testutil.py @@ -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:")