I co-maintain a modestly complicated C library whose build process involves a bunch of shell scripts. We’re in the process of rewriting these scripts in Python for maintainability and portability (it’s a lot easier to be sure that a Python script will work the same way on all of the host environments of interest, than a shell script). The scripts are being written to run in-place with no
setup.py and I would prefer to keep it that way — for some of our downstreams, requiring core Python (>=3.6) at build time is just barely feasible, an additional requirement for working pip and setuptools would be too much to ask. The overall build process uses autoconf and automake; this might change in the future but it would be to something else oriented for building C programs, e.g. meson.
Now, here’s the actual question. I have a directory full of directly-executable Python scripts (and a
common.py that they all import). They are complicated enough that I would like to apply linting tools (e.g. flake8, mypy) to them. Is there a best practice for where to put the lint configuration, and how to automatically run the linters as part of the build / in CI, in this circumstance? I could make something up but I imagine other people have already made something up …