From 0d140b8c5ea83d095cb35b6b0c9434cb63fe6ced Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Tue, 29 Aug 2023 12:23:22 +0100 Subject: 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 --- Tools/peg_generator/mypy.ini | 3 ++- Tools/peg_generator/pegen/__main__.py | 5 ++++- Tools/peg_generator/pegen/parser.py | 6 +++--- Tools/peg_generator/pegen/testutil.py | 6 +++--- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Tools/peg_generator/mypy.ini b/Tools/peg_generator/mypy.ini index bc94c6a..6a45165 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 2910d6c..262c8a6 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 eab48ef..ed0aec9 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 9fcca92..50cc852 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:") -- cgit v0.12