
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