From cd8af2191511bee1c87f52bcff0d2acab7e1c7c2 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Sat, 1 Nov 2025 14:15:39 -0400 Subject: [PATCH] Add lint-py type checking using mypy --- .github/workflows/reusable-lint-py.yml | 2 +- Makefile.in | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable-lint-py.yml b/.github/workflows/reusable-lint-py.yml index 511e6cf69..3edc4bed7 100644 --- a/.github/workflows/reusable-lint-py.yml +++ b/.github/workflows/reusable-lint-py.yml @@ -37,7 +37,7 @@ jobs: # We use specific version numbers, otherwise a Python package # update may add a warning and break our build - name: Install packages for lint - run: sudo pip3 install pylint==3.0.2 ruff==0.1.3 clang sphinx sphinx_rtd_theme sphinxcontrib-spelling breathe ruff + run: sudo pip3 install mypy==1.18.2 pylint==3.0.2 ruff==0.1.3 clang sphinx sphinx_rtd_theme sphinxcontrib-spelling breathe ruff - name: Configure run: autoconf && ./configure --enable-longtests --enable-ccwarn diff --git a/Makefile.in b/Makefile.in index cec040d0b..30352cc63 100644 --- a/Makefile.in +++ b/Makefile.in @@ -563,7 +563,17 @@ RUFF_FLAGS = check --ignore=E402,E501,E701 # "make -k" so can see all tool result errors lint-py: - $(MAKE) -k lint-py-pylint lint-py-pylint-tests lint-py-ruff + $(MAKE) -k lint-py-mypy lint-py-mypy-none lint-py-pylint lint-py-pylint-tests lint-py-ruff + +lint-py-mypy: + for filename in `fgrep -l '# mypy' $(PY_PROGRAMS)`; do \ + echo "$(MYPY) $(MYPY_FLAGS) $$filename" ; \ + $(MYPY) $(MYPY_FLAGS) $$filename ; \ + done + @echo "Not mypy checked: " `fgrep -L '# mypy' $(PY_PROGRAMS)` + +lint-py-mypy-none: + @echo "mypy not checking: " `fgrep -L '# mypy' $(PY_PROGRAMS)` lint-py-mypy: for filename in `fgrep -l '# mypy' $(PY_PROGRAMS)`; do \