|
|
@@ -101,10 +101,43 @@ echo |
|
|
|
# Print out the commands being run |
|
|
|
set -x |
|
|
|
|
|
|
|
# Ensure the sort order of imports. |
|
|
|
isort "${files[@]}" |
|
|
|
|
|
|
|
# Ensure Python code conforms to an opinionated style. |
|
|
|
python3 -m black "${files[@]}" |
|
|
|
|
|
|
|
# Ensure the sample configuration file conforms to style checks. |
|
|
|
./scripts-dev/config-lint.sh |
|
|
|
|
|
|
|
# Catch any common programming mistakes in Python code. |
|
|
|
# --quiet suppresses the update check. |
|
|
|
ruff --quiet "${files[@]}" |
|
|
|
|
|
|
|
# Catch any common programming mistakes in Rust code. |
|
|
|
# |
|
|
|
# --bins, --examples, --lib, --tests combined explicitly disable checking |
|
|
|
# the benchmarks, which can fail due to `#![feature]` macros not being |
|
|
|
# allowed on the stable rust toolchain (rustc error E0554). |
|
|
|
# |
|
|
|
# --allow-staged and --allow-dirty suppress clippy raising errors |
|
|
|
# for uncommitted files. Only needed when using --fix. |
|
|
|
# |
|
|
|
# -D warnings disables the "warnings" lint. |
|
|
|
# |
|
|
|
# Using --fix has a tendency to cause subsequent runs of clippy to recompile |
|
|
|
# rust code, which can slow down this script. Thus we run clippy without --fix |
|
|
|
# first which is quick, and then re-run it with --fix if an error was found. |
|
|
|
if ! cargo-clippy --bins --examples --lib --tests -- -D warnings > /dev/null 2>&1; then |
|
|
|
cargo-clippy \ |
|
|
|
--bins --examples --lib --tests --allow-staged --allow-dirty --fix -- -D warnings |
|
|
|
fi |
|
|
|
|
|
|
|
# Ensure the formatting of Rust code. |
|
|
|
cargo-fmt |
|
|
|
|
|
|
|
# Ensure all Pydantic models use strict types. |
|
|
|
./scripts-dev/check_pydantic_models.py lint |
|
|
|
|
|
|
|
# Ensure type hints are correct. |
|
|
|
mypy |