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