diff --git a/make/py-topdir.mk b/make/py-topdir.mk new file mode 100644 index 00000000..895b860a --- /dev/null +++ b/make/py-topdir.mk @@ -0,0 +1,31 @@ +TD_COPY_FILES += + +PY_CHECK_EXCLUDE ?= +PY_SRC_ROOT += $(wildcard $(TOPDIR)/src $(TOPDIR)/tools) + +all: + +format: py-format +check-syntax: py-check-syntax +check-format: py-check-format + +py-check: py-check-syntax py-check-format +py-check-syntax: + mypy $(addprefix --exclude ,$(PY_CHECK_EXCLUDE)) $(PY_SRC_ROOT) + +py-check-format: + +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/^ //}}' + +py-format-assignments: + find . \ + -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' {} '+' + git diff --exit-code + +clean.topdir: clean.py-check +clean.py-check: + rm -rf .mypy_cache