From 0b558635a8e8320e7b562d04e568d6240e44e777 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Fri, 5 Jun 2026 14:36:22 +0200 Subject: [PATCH] py-topdir.mk: Introduce $(PY_CHECK_ROOTS) Replace variable PY_SRC_ROOT by PY_CHECK_ROOTS. The name PY_SRC_ROOT was a bad choice, given that it isn't immediately obvious that it a) can contain multiple root locations to be checked, and that it b) specifically concerns static type checking. As of this commit, it's possible to limit the type checking scope with PY_CHECK_ROOTS as in PY_CHECK_ROOTS="src/python/jw/pkg/CmdBase.py src/python/jw/lib" \ make check Signed-off-by: Jan Lindemann --- make/py-topdir.mk | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/make/py-topdir.mk b/make/py-topdir.mk index 4a298642..471ee8b4 100644 --- a/make/py-topdir.mk +++ b/make/py-topdir.mk @@ -1,7 +1,9 @@ TD_COPY_FILES += pyproject.toml PY_CHECK_EXCLUDE ?= -PY_SRC_ROOT += $(wildcard $(TOPDIR)/src $(TOPDIR)/tools) +ifndef PY_CHECK_ROOTS + PY_CHECK_ROOTS += $(wildcard $(TOPDIR)/src $(TOPDIR)/tools) +endif ifndef PY_CHECK_RUFF PY_CHECK_RUFF := $(shell which ruff 2>/dev/null) @@ -25,27 +27,27 @@ check-format: py-check-format py-check: py-check-syntax py-check-format py-check-syntax: ifneq ($(PY_CHECK_RUFF),) - $(PY_CHECK_RUFF) check $(addprefix --exclude ,$(PY_CHECK_EXCLUDE)) $(PY_SRC_ROOT) + $(PY_CHECK_RUFF) check $(addprefix --exclude ,$(PY_CHECK_EXCLUDE)) $(PY_CHECK_ROOTS) endif - mypy $(addprefix --exclude ,$(PY_CHECK_EXCLUDE)) $(PY_SRC_ROOT) + mypy $(addprefix --exclude ,$(PY_CHECK_EXCLUDE)) $(PY_CHECK_ROOTS) ifneq ($(PY_CHECK_PYRIGHT),) - pyright + pyright $(PY_CHECK_ROOTS) endif py-check-format: ifneq ($(PY_CHECK_YAPF),) - $(PY_CHECK_YAPF) --diff --recursive . + $(PY_CHECK_YAPF) --diff --recursive $(PY_CHECK_ROOTS) endif py-format: find . -type f -name '*.py' -print0 | \ xargs -0 sed -i -E '1{/^# -\*- coding: utf-8 -\*-$$/{:a;N;/\n[[:space:]]*$$/ba;s/^# -\*- coding: utf-8 -\*-\n([[:space:]]*\n)*/ /;s/^ //}}' ifneq ($(PY_CHECK_YAPF),) - $(PY_CHECK_YAPF) --in-place --recursive . + $(PY_CHECK_YAPF) --in-place --recursive $(PY_CHECK_ROOTS) endif py-format-assignments: - find . \ + find $(PY_CHECK_ROOTS) \ -path './.git' -prune -o \ -type f -name '*.py' \ -execdir /usr/bin/sed -i 's/^\(\s\+[a-zA-Z0-9_]\+\)=\([^,[:space:]]\+\)\([,(]\)*\s*$$/\1 = \2\3/g' {} '+' @@ -53,12 +55,12 @@ py-format-assignments: py-check-annotation-imports: ifneq ($(PY_CHECK_RUFF),) - $(PY_CHECK_RUFF) check --select TC,FA --diff --unsafe-fixes . + $(PY_CHECK_RUFF) check --select TC,FA --diff --unsafe-fixes $(PY_CHECK_ROOTS) endif py-format-annotation-imports: ifneq ($(PY_CHECK_RUFF),) - $(PY_CHECK_RUFF) check --select TC,FA --fix --unsafe-fixes . + $(PY_CHECK_RUFF) check --select TC,FA --fix --unsafe-fixes $(PY_CHECK_ROOTS) endif clean.topdir: clean.py-check