From: Shi Lei Date: Wed, 18 Sep 2019 04:19:43 +0000 (+0800) Subject: maint: Use flake8 to check python code X-Git-Tag: v5.8.0-rc1~153 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc1e4389f5dfcde8944ec32dd9c4485ec3db2c96;p=thirdparty%2Flibvirt.git maint: Use flake8 to check python code 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 --- 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])