Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
gh-108455: Run mypy on Tools/peg_generator
  • Loading branch information
sobolevn committed Aug 24, 2023
commit c08b596bd7b37531504ed1aa13b322a812480c5b
7 changes: 6 additions & 1 deletion .github/workflows/mypy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
paths:
- "Tools/clinic/**"
- "Tools/cases_generator/**"
- "Tools/peg_generator/**"
- ".github/workflows/mypy.yml"
workflow_dispatch:

Expand All @@ -28,7 +29,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]
Comment thread
sobolevn marked this conversation as resolved.
Outdated

if verbose:
setuptools.logging.set_threshold(setuptools.logging.logging.DEBUG)
Expand Down
4 changes: 2 additions & 2 deletions Tools/peg_generator/pegen/parser.py
Comment thread
AlexWaygood marked this conversation as resolved.
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:
Comment thread
sobolevn marked this conversation as resolved.
Outdated
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:
Comment thread
sobolevn marked this conversation as resolved.
Outdated
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