Skip to content

Commit f9bdfcb

Browse files
feat: run ruff as a formatter (#6981)
Close #5951 Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
1 parent 1e6cd2f commit f9bdfcb

16 files changed

+23
-0
lines changed

lib/functions/buildFileList.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@ BuildFileArrays() {
534534
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-PYTHON_PYLINT"
535535
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-PYTHON_MYPY"
536536
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-PYTHON_RUFF"
537+
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-PYTHON_RUFF_FORMAT"
537538
elif [ "${FILE_TYPE}" == "r" ] || [ "${FILE_TYPE}" == "rmd" ]; then
538539
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-R"
539540
elif [ "${FILE_TYPE}" == "rb" ]; then

lib/functions/linterCommands.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ LINTER_COMMANDS_ARRAY_PYTHON_FLAKE8=(flake8 --config="${PYTHON_FLAKE8_LINTER_RUL
251251
LINTER_COMMANDS_ARRAY_PYTHON_ISORT=(isort --sp "${PYTHON_ISORT_LINTER_RULES}")
252252
LINTER_COMMANDS_ARRAY_PYTHON_MYPY=(mypy --config-file "${PYTHON_MYPY_LINTER_RULES}" --install-types --non-interactive)
253253
LINTER_COMMANDS_ARRAY_PYTHON_RUFF=(ruff check --config "${PYTHON_RUFF_LINTER_RULES}")
254+
LINTER_COMMANDS_ARRAY_PYTHON_RUFF_FORMAT=(ruff format --config "${PYTHON_RUFF_FORMAT_LINTER_RULES}")
254255
LINTER_COMMANDS_ARRAY_R=(R --slave -e "\"lints <- lintr::lint('{}');print(lints);errors <- purrr::keep(lints, ~ .\\\$type == 'error');quit(save = 'no', status = if (length(errors) > 0) 1 else 0)\"")
255256
LINTER_COMMANDS_ARRAY_RENOVATE=(renovate-config-validator --strict)
256257
LINTER_COMMANDS_ARRAY_RUBY=(rubocop -c "${RUBY_LINTER_RULES}" --force-exclusion --ignore-unrecognized-cops)

lib/functions/validation.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -609,4 +609,9 @@ ValidateDeprecatedConfigurationFiles() {
609609

610610
ValidateConflictingTools() {
611611
debug "Validating if potentially conflicting tools are enabled"
612+
613+
if [[ "${VALIDATE_PYTHON_BLACK}" == "true" ]] && [[ "${VALIDATE_PYTHON_RUFF_FORMAT}" == "true" ]]; then
614+
warn "Black and Ruff formatter are both enabled, and might conflict with each other. To avoid potential conflicts, keep only one of the two enabled, and disable the other."
615+
return 1
616+
fi
612617
}

lib/globals/languages.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ LANGUAGE_ARRAY=('ANSIBLE' 'ARM' 'BASH' 'BASH_EXEC' 'CHECKOV' 'CLANG_FORMAT'
4040
'NATURAL_LANGUAGE' 'OPENAPI' 'PERL' 'PHP_BUILTIN' 'PHP_PHPCS' 'PHP_PHPSTAN'
4141
'PHP_PSALM' 'POWERSHELL' 'PROTOBUF' 'PYTHON_BLACK' 'PYTHON_PYLINT'
4242
'PYTHON_FLAKE8' 'PYTHON_ISORT' 'PYTHON_MYPY' 'PYTHON_RUFF'
43+
"PYTHON_RUFF_FORMAT"
4344
'R' 'RENOVATE' 'RUBY' 'RUST_2015'
4445
'RUST_2018' 'RUST_2021' 'RUST_CLIPPY' 'SCALAFMT' 'SHELL_SHFMT'
4546
'SNAKEMAKE_LINT' 'SNAKEMAKE_SNAKEFMT' 'STATES' 'SQLFLUFF'

lib/globals/linterCommandsOptions.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ JUPYTER_NBQA_ISORT_CHECK_ONLY_MODE_OPTIONS=(--diff --check)
2929
MARKDOWN_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}")
3030
PYTHON_BLACK_CHECK_ONLY_MODE_OPTIONS=(--diff --check)
3131
PYTHON_ISORT_CHECK_ONLY_MODE_OPTIONS=(--diff --check)
32+
PYTHON_RUFF_FORMAT_CHECK_ONLY_MODE_OPTIONS=(--check)
3233
RUST_2015_CHECK_ONLY_MODE_OPTIONS=("${RUSTFMT_CHECK_ONLY_MODE_OPTIONS[@]}")
3334
RUST_2018_CHECK_ONLY_MODE_OPTIONS=("${RUSTFMT_CHECK_ONLY_MODE_OPTIONS[@]}")
3435
RUST_2021_CHECK_ONLY_MODE_OPTIONS=("${RUSTFMT_CHECK_ONLY_MODE_OPTIONS[@]}")

lib/globals/linterRules.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ PYTHON_PYLINT_FILE_NAME="${PYTHON_PYLINT_CONFIG_FILE:-.python-lint}"
7878
# shellcheck disable=SC2034 # Variable is referenced indirectly
7979
PYTHON_RUFF_FILE_NAME="${PYTHON_RUFF_CONFIG_FILE:-.ruff.toml}"
8080
# shellcheck disable=SC2034 # Variable is referenced indirectly
81+
PYTHON_RUFF_FORMAT_FILE_NAME="${PYTHON_RUFF_FORMAT_CONFIG_FILE:-.ruff.toml}"
82+
# shellcheck disable=SC2034 # Variable is referenced indirectly
8183
R_FILE_NAME=".lintr"
8284
# shellcheck disable=SC2034 # Variable is referenced indirectly
8385
RUBY_FILE_NAME="${RUBY_CONFIG_FILE:-.ruby-lint.yml}"

scripts/linterVersions.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ LINTER_NAMES_ARRAY['PYTHON_FLAKE8']="flake8"
7171
LINTER_NAMES_ARRAY['PYTHON_ISORT']="isort"
7272
LINTER_NAMES_ARRAY['PYTHON_MYPY']="mypy"
7373
LINTER_NAMES_ARRAY['PYTHON_RUFF']="ruff"
74+
LINTER_NAMES_ARRAY['PYTHON_RUFF_FORMAT']="ruff"
7475
LINTER_NAMES_ARRAY['R']="R"
7576
LINTER_NAMES_ARRAY['RENOVATE']="renovate-config-validator"
7677
LINTER_NAMES_ARRAY['RUBY']="rubocop"

test/data/super-linter-summary/markdown/table/expected-summary-test-linters-expect-failure-slim.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
| PYTHON_ISORT | Fail ❌ |
6868
| PYTHON_MYPY | Fail ❌ |
6969
| PYTHON_RUFF | Fail ❌ |
70+
| PYTHON_RUFF_FORMAT | Fail ❌ |
7071
| R | Fail ❌ |
7172
| RENOVATE | Fail ❌ |
7273
| RUBY | Fail ❌ |

test/data/super-linter-summary/markdown/table/expected-summary-test-linters-expect-failure-standard.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
| PYTHON_ISORT | Fail ❌ |
7474
| PYTHON_MYPY | Fail ❌ |
7575
| PYTHON_RUFF | Fail ❌ |
76+
| PYTHON_RUFF_FORMAT | Fail ❌ |
7677
| R | Fail ❌ |
7778
| RENOVATE | Fail ❌ |
7879
| RUBY | Fail ❌ |

test/data/super-linter-summary/markdown/table/expected-summary-test-linters-expect-success-slim.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
| PYTHON_ISORT | Pass ✅ |
6868
| PYTHON_MYPY | Pass ✅ |
6969
| PYTHON_RUFF | Pass ✅ |
70+
| PYTHON_RUFF_FORMAT | Pass ✅ |
7071
| R | Pass ✅ |
7172
| RENOVATE | Pass ✅ |
7273
| RUBY | Pass ✅ |

0 commit comments

Comments
 (0)