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
This commit is contained in:
Alex Waygood 2023-08-29 12:23:22 +01:00 committed by GitHub
parent c879b9fddf
commit 0d140b8c5e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 8 deletions

View file

@ -8,10 +8,11 @@ python_version = 3.10
# Be strict... # Be strict...
strict = True strict = True
enable_error_code = truthy-bool,ignore-without-code
# except for a few settings that can't yet be enabled: # except for a few settings that can't yet be enabled:
warn_return_any = False warn_return_any = False
no_implicit_reexport = False warn_unreachable = False
[mypy-pegen.grammar_parser] [mypy-pegen.grammar_parser]
strict_optional = False strict_optional = False

View file

@ -12,7 +12,10 @@ import token
import traceback import traceback
from typing import Tuple 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 from pegen.validator import validate_grammar

View file

@ -32,7 +32,7 @@ def logger(method: F) -> F:
print(f"{fill}... {method_name}({argsr}) --> {tree!s:.200}") print(f"{fill}... {method_name}({argsr}) --> {tree!s:.200}")
return tree return tree
logger_wrapper.__wrapped__ = method # type: ignore logger_wrapper.__wrapped__ = method # type: ignore[attr-defined]
return cast(F, logger_wrapper) return cast(F, logger_wrapper)
@ -69,7 +69,7 @@ def memoize(method: F) -> F:
self._reset(endmark) self._reset(endmark)
return tree return tree
memoize_wrapper.__wrapped__ = method # type: ignore memoize_wrapper.__wrapped__ = method # type: ignore[attr-defined]
return cast(F, memoize_wrapper) return cast(F, memoize_wrapper)
@ -153,7 +153,7 @@ def memoize_left_rec(
self._reset(endmark) self._reset(endmark)
return tree 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 return memoize_left_rec_wrapper

View 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: def run_parser(file: IO[bytes], parser_class: Type[Parser], *, verbose: bool = False) -> Any:
# Run a parser on a file (stream). # 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) parser = parser_class(tokenizer, verbose=verbose)
result = parser.start() result = parser.start()
if result is None: if result is None:
@ -52,7 +52,7 @@ def parse_string(
if dedent: if dedent:
source = textwrap.dedent(source) source = textwrap.dedent(source)
file = io.StringIO(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]: def make_parser(source: str) -> Type[Parser]:
@ -116,7 +116,7 @@ def generate_parser_c_extension(
def print_memstats() -> bool: def print_memstats() -> bool:
MiB: Final = 2**20 MiB: Final = 2**20
try: try:
import psutil # type: ignore import psutil # type: ignore[import]
except ImportError: except ImportError:
return False return False
print("Memory stats:") print("Memory stats:")