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 <shi_lei@xxxxxxxxxxxxxx> --- v1: https://www.redhat.com/archives/libvir-list/2019-September/msg00501.html since v1: - Use the return-value from flake8 directly for 'sc_flake8'. - Add the option '--show-source' to be more helpful for developers. - Set checking for 'flake8' as a soft requirement. cfg.mk | 17 ++++++++++++----- configure.ac | 4 ++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/cfg.mk b/cfg.mk index 42e1abf0..a7c88383 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 41d3da3e..286b9f7a 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.17.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list