[libvirt PATCH 3/3] syntax-check: Run flake8 on all Python scripts

Andrea Bolognani abologna at redhat.com
Mon Mar 22 09:29:32 UTC 2021


On Mon, 2021-03-22 at 07:50 +0100, Erik Skultety wrote:
> On Fri, Mar 19, 2021 at 06:39:31PM +0100, Andrea Bolognani wrote:
> >  sc_flake8:
> >  	@if [ -n "$(FLAKE8)" ]; then \
> > -		$(VC_LIST_EXCEPT) | $(GREP) '\.py$$' | xargs \
> > -			$(FLAKE8) --ignore $(FLAKE8_IGNORE) --show-source; \
> > +		DOT_PY=$$($(VC_LIST_EXCEPT) | $(GREP) '\.py$$'); \
> > +		BANG_PY=$$($(VC_LIST_EXCEPT) | xargs grep -l '^#!/usr/bin/env python3$$'); \
> > +		ALL_PY=$$(printf "%s\n%s" "$$DOT_PY" "$$BANG_PY" | sort -u); \
> 
> Not that I'd be against ^this, but I think it might be worth (even for
> consistency reasons) to mandate that all Python scripts to use the '.py'
> extension explicitly instead and rename the ones that violate this. To support
> my argument, there are 34 scripts that use a suffix and 2 (one of which is the
> latest CI helper) that don't.

It's a time-honored tradition to omit the suffix for scripts which
are called directly by the user, which is why you don't install
packages using dnf.py or build software using meson.py :)

If you don't limit yourself to Python specifically, you'll find several more
examples of this happening in libvirt:

  $ git grep -lE '^#!/' | sed -E 's/\.in$//g' | grep -Ev '\.[^.]+$'
  build-aux/useless-if-before-free
  build-aux/vc-list-files
  ci/helper
  examples/sh/virt-lxc-convert
  run
  tests/libvirtd-fail
  tests/libvirtd-pool
  tests/qemucapsfixreplies
  tests/qemuvhostuserdata/usr/libexec/qemu/vhost-user/test-vhost-user-gpu
  tests/virsh-auth
  tests/virsh-checkpoint
  tests/virsh-cpuset
  tests/virsh-define-dev-segfault
  tests/virsh-int-overflow
  tests/virsh-optparse
  tests/virsh-output
  tests/virsh-output-commands
  tests/virsh-read-bufsiz
  tests/virsh-read-non-seekable
  tests/virsh-schedinfo
  tests/virsh-self-test
  tests/virsh-snapshot
  tests/virsh-start
  tests/virsh-undefine
  tests/virsh-uriprecedence
  tests/virsh-vcpupin
  tests/virt-aa-helper-test
  tools/virt-pki-validate
  tools/virt-sanlock-cleanup
  tools/virt-xml-validate

Finally, if we wanted to enforce the convention that all Python
script in the repository have to be named something.py, then we'd
have to introduce a new syntax-check rule for that...

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list