Skip to content

Commit

Permalink
gh-108455: Run mypy on Tools/peg_generator
Browse files Browse the repository at this point in the history
  • Loading branch information
sobolevn committed Aug 24, 2023
1 parent a071ecb commit a33e5a9
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 12 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/mypy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ jobs:
mypy:
strategy:
matrix:
target: ["Tools/cases_generator", "Tools/clinic"]
target: [
"Tools/cases_generator",
"Tools/clinic",
"Tools/peg_generator",
]
name: Run mypy on ${{ matrix.target }}
runs-on: ubuntu-latest
timeout-minutes: 10
Expand Down
3 changes: 2 additions & 1 deletion Tools/peg_generator/mypy.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[mypy]
files = pegen
files = Tools/peg_generator/pegen
pretty = True

follow_imports = error
no_implicit_optional = True
Expand Down
15 changes: 8 additions & 7 deletions Tools/peg_generator/pegen/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import sysconfig
import tempfile
import tokenize
from typing import IO, Dict, List, Optional, Set, Tuple
from typing import IO, Any, Dict, List, Optional, Set, Tuple

from pegen.c_generator import CParserGenerator
from pegen.grammar import Grammar
Expand All @@ -18,6 +18,7 @@
MOD_DIR = pathlib.Path(__file__).resolve().parent

TokenDefinitions = Tuple[Dict[int, str], Dict[str, int], Set[str]]
Incomplete = Any # TODO: install `types-setuptools` and remove this alias


def get_extra_flags(compiler_flags: str, compiler_py_flags_nodist: str) -> List[str]:
Expand All @@ -28,7 +29,7 @@ def get_extra_flags(compiler_flags: str, compiler_py_flags_nodist: str) -> List[
return f"{flags} {py_flags_nodist}".split()


def fixup_build_ext(cmd):
def fixup_build_ext(cmd: Incomplete) -> None:
"""Function needed to make build_ext tests pass.
When Python was built with --enable-shared on Unix, -L. is not enough to
Expand Down Expand Up @@ -74,7 +75,7 @@ def compile_c_extension(
keep_asserts: bool = True,
disable_optimization: bool = False,
library_dir: Optional[str] = None,
) -> str:
) -> pathlib.Path:
"""Compile the generated source for a parser generator into an extension module.
The extension module will be generated in the same directory as the provided path
Expand All @@ -89,12 +90,12 @@ def compile_c_extension(
static library of the common parser sources (this is useful in case you are
creating multiple extensions).
"""
import setuptools.logging
import setuptools.logging # type: ignore[import]

from setuptools import Extension, Distribution
from setuptools._distutils.dep_util import newer_group
from setuptools._distutils.ccompiler import new_compiler
from setuptools._distutils.sysconfig import customize_compiler
from setuptools._distutils.dep_util import newer_group # type: ignore[import]
from setuptools._distutils.ccompiler import new_compiler # type: ignore[import]
from setuptools._distutils.sysconfig import customize_compiler # type: ignore[import]

if verbose:
setuptools.logging.set_threshold(setuptools.logging.logging.DEBUG)
Expand Down
4 changes: 2 additions & 2 deletions Tools/peg_generator/pegen/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def logger(method: F) -> F:
"""
method_name = method.__name__

def logger_wrapper(self: P, *args: object) -> T:
def logger_wrapper(self: P, *args: object) -> Any:
if not self._verbose:
return method(self, *args)
argsr = ",".join(repr(arg) for arg in args)
Expand All @@ -41,7 +41,7 @@ def memoize(method: F) -> F:
"""Memoize a symbol method."""
method_name = method.__name__

def memoize_wrapper(self: P, *args: object) -> T:
def memoize_wrapper(self: P, *args: object) -> Any:
mark = self._mark()
key = mark, method_name, args
# Fast path: cache hit, and not verbose.
Expand Down
2 changes: 1 addition & 1 deletion Tools/requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Requirements file for external linters and checks we run on
# Tools/clinic and Tools/cases_generator/ in CI
# Tools/clinic, Tools/cases_generator/, and Tools/peg_generator/ in CI
mypy==1.5.1

0 comments on commit a33e5a9

Please sign in to comment.