From 171fd33cb657ab1d14a07e86778930dbc3d8b403 Mon Sep 17 00:00:00 2001 From: Peter Law Date: Mon, 13 Feb 2023 19:45:11 +0000 Subject: [PATCH] Be stricter about mypy needing error codes These make it clearer what's being ignored and harder to accidentally ignore more than expected. --- parso/grammar.py | 10 +++++----- parso/pgen2/generator.py | 2 +- setup.cfg | 3 +++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/parso/grammar.py b/parso/grammar.py index 43b7be94..85c65db9 100644 --- a/parso/grammar.py +++ b/parso/grammar.py @@ -106,14 +106,14 @@ def parse(self, if file_io is None: if code is None: - file_io = FileIO(path) # type: ignore + file_io = FileIO(path) # type: ignore[arg-type] else: file_io = KnownContentFileIO(path, code) if cache and file_io.path is not None: module_node = load_module(self._hashed, file_io, cache_path=cache_path) if module_node is not None: - return module_node # type: ignore + return module_node # type: ignore[no-any-return] if code is None: code = file_io.read() @@ -132,7 +132,7 @@ def parse(self, module_node = module_cache_item.node old_lines = module_cache_item.lines if old_lines == lines: - return module_node # type: ignore + return module_node # type: ignore[no-any-return] new_node = self._diff_parser( self._pgen_grammar, self._tokenizer, module_node @@ -144,7 +144,7 @@ def parse(self, # Never pickle in pypy, it's slow as hell. pickling=cache and not is_pypy, cache_path=cache_path) - return new_node # type: ignore + return new_node # type: ignore[no-any-return] tokens = self._tokenizer(lines) @@ -160,7 +160,7 @@ def parse(self, # Never pickle in pypy, it's slow as hell. pickling=cache and not is_pypy, cache_path=cache_path) - return root_node # type: ignore + return root_node # type: ignore[no-any-return] def _get_token_namespace(self): ns = self._token_namespace diff --git a/parso/pgen2/generator.py b/parso/pgen2/generator.py index db6e1cb3..30f0b546 100644 --- a/parso/pgen2/generator.py +++ b/parso/pgen2/generator.py @@ -276,7 +276,7 @@ def generate_grammar(bnf_grammar: str, token_namespace) -> Grammar: dfa_state.transitions[transition] = DFAPlan(next_dfa) _calculate_tree_traversal(rule_to_dfas) - return Grammar(start_nonterminal, rule_to_dfas, reserved_strings) # type: ignore + return Grammar(start_nonterminal, rule_to_dfas, reserved_strings) # type: ignore[arg-type] def _make_transition(token_namespace, reserved_syntax_strings, label): diff --git a/setup.cfg b/setup.cfg index 1d077d8c..94c886cc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -13,6 +13,9 @@ ignore = [mypy] +show_error_codes = true +enable_error_code = ignore-without-code + disallow_subclassing_any = True # Avoid creating future gotchas emerging from bad typing