Module tidy::ext_tool_checks
source · Expand description
Optional checks for file types other than Rust source
Handles python tool version managment via a virtual environment in
build/venv.
Functional outline
- Run tidy with an extra option:
--extra-checks=py,shell,--extra-checks=py:lint, or similar. Optionally provide specific configuration after a double dash (--extra-checks=py -- foo.py) - Build configuration based on args/environment:
- Formatters by default are in check only mode
- If in CI (TIDY_PRINT_DIFF=1 is set), check and print the diff
- If
--blessis provided, formatters may run - Pass any additional config after the
--. If no files are specified, use a default.
- Print the output of the given command. If it fails and
TIDY_PRINT_DIFFis set, rerun the tool to print a suggestion diff (for e.g. CI)
Enums
- Error 🔒
Constants
- Minimum python revision is 3.7 for ruff
- Location within build directory
Functions
- Attempt to create a virtualenv at this path. Cycles through all expected valid python versions to find one that is installed.
- Check git for tracked files matching an extension
- Create a virtuaenv at a given path if it doesn’t already exist, or validate the install if it does. Returns the path to that venv’s python executable.
- Helper to create
cfg1 cfg2 -- file1 file2output - Run a python command with given arguments.
py_pathshould be a virtualenv. - Check that shellcheck is installed then run it at the given path
- Parse python’s version output (
Python x.y.z) and ensure we have a suitable version.