Module ext_tool_checks

Source
Expand description

Optional checks for file types other than Rust source

Handles python tool version management via a virtual environment in build/venv.

§Functional outline

  1. 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)
  2. 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.
  3. 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§

MIN_PY_REV 🔒
MIN_PY_REV_STR 🔒
PIP_REQ_PATH 🔒
REL_PY_PATH 🔒
RUFF_CACHE_PATH 🔒
Location within build directory
RUFF_CONFIG_PATH 🔒

Functions§

check
check_impl 🔒
create_venv_at_path 🔒
Attempt to create a virtualenv at this path. Cycles through all expected valid python versions to find one that is installed.
find_with_extension 🔒
Check git for tracked files matching an extension
get_or_create_venv 🔒
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.
install_requirements 🔒
merge_args 🔒
Helper to create cfg1 cfg2 -- file1 file2 output
py_runner 🔒
Run a python command with given arguments. py_path should be a virtualenv.
run_ruff 🔒
shellcheck_runner 🔒
Check that shellcheck is installed then run it at the given path
try_create_venv 🔒
verify_py_version 🔒
Parse python’s version output (Python x.y.z) and ensure we have a suitable version.