From bc1e4389f5dfcde8944ec32dd9c4485ec3db2c96 Mon Sep 17 00:00:00 2001 From: Shi Lei Date: Wed, 18 Sep 2019 12:19:43 +0800 Subject: [PATCH] maint: Use flake8 to check python code MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Replace 'sc_prohibit_semicolon_at_eol_in_python' with generic 'sc_flake8' rule to check python code style. Now 'sc_flake8' just check the error E703: 'statement ends with a semicolon'. In future, we could use '--select' to introduce more rules. Signed-off-by: Shi Lei Reviewed-by: Ján Tomko Signed-off-by: Ján Tomko --- cfg.mk | 17 ++++++++++++----- configure.ac | 4 ++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/cfg.mk b/cfg.mk index 42e1abf0dd..a7c883830f 100644 --- a/cfg.mk +++ b/cfg.mk @@ -812,11 +812,13 @@ sc_require_enum_last_marker: exit 1; } || : # In Python files we don't want to end lines with a semicolon like in C -sc_prohibit_semicolon_at_eol_in_python: - @prohibit='^[^#].*\;$$' \ - in_vc_files='\.py$$' \ - halt='python does not require to end lines with a semicolon' \ - $(_sc_search_regexp) +sc_flake8: + @if [ -n "$(FLAKE8)" ]; then \ + $(VC_LIST_EXCEPT) | $(GREP) '\.py$$' | xargs \ + $(FLAKE8) --select E703 --show-source; \ + else \ + echo '$(ME): skipping test $@: flake8 not installed' 1>&2; \ + fi # mymain() in test files should use return, not exit, for nicer output sc_prohibit_exit_in_tests: @@ -1140,6 +1142,11 @@ syntax-check: spacing-check test-wrap-argv \ echo "*****************************************************" >&2; \ echo "* cppi not installed, some checks have been skipped *" >&2; \ echo "*****************************************************" >&2; \ + fi; \ + if [ -z "$(FLAKE8)" ]; then \ + echo "*****************************************************" >&2; \ + echo "* flake8 not installed, sc_flake8 has been skipped *" >&2; \ + echo "*****************************************************" >&2; \ fi endif diff --git a/configure.ac b/configure.ac index 41d3da3e09..286b9f7abe 100644 --- a/configure.ac +++ b/configure.ac @@ -704,6 +704,10 @@ AC_PATH_PROGS([PYTHON], [python3 python2 python]) if test -z "$PYTHON"; then AC_MSG_ERROR(['python3', 'python2' or 'python' binary is required to build libvirt]) fi +AC_PATH_PROG([FLAKE8], [flake8]) +if test -z "$FLAKE8"; then + AC_MSG_WARN(['flake8' binary is required to check python code style]) +fi AC_PATH_PROG([PERL], [perl]) if test -z "$PERL"; then AC_MSG_ERROR(['perl' binary is required to build libvirt]) -- 2.47.2