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
--bless
is 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_DIFF
is 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 file2
output - Run a python command with given arguments.
py_path
should 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.