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...
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

View file

@ -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

View 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

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:
# 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:")