Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
seleniumhq
GitHub Repository: seleniumhq/selenium
Path: blob/trunk/py/private/ruff_check.py
4505 views
1
# Licensed to the Software Freedom Conservancy (SFC) under one
2
# or more contributor license agreements. See the NOTICE file
3
# distributed with this work for additional information
4
# regarding copyright ownership. The SFC licenses this file
5
# to you under the Apache License, Version 2.0 (the
6
# "License"); you may not use this file except in compliance
7
# with the License. You may obtain a copy of the License at
8
#
9
# http://www.apache.org/licenses/LICENSE-2.0
10
#
11
# Unless required by applicable law or agreed to in writing,
12
# software distributed under the License is distributed on an
13
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
# KIND, either express or implied. See the License for the
15
# specific language governing permissions and limitations
16
# under the License.
17
18
"""Run ruff check on Python files across the project.
19
20
Usage:
21
bazel run //py:ruff-check -- [ruff check args]
22
"""
23
24
import os
25
import subprocess
26
import sys
27
28
from python.runfiles import Runfiles
29
30
ALL_DIRS = ["py", "scripts", "common", "dotnet", "java", "javascript", "rb"]
31
EXCLUDES = ["**/node_modules/**", "**/.bundle/**", "**/devtools/**"]
32
33
34
def run_check(ruff, exclude_args, dirs, extra_args):
35
"""Run ruff check (linting)."""
36
cmd = [ruff, "check", "--fix", "--show-fixes", "--exit-non-zero-on-fix", "--config=py/pyproject.toml"]
37
return subprocess.run(cmd + exclude_args + dirs + extra_args).returncode
38
39
40
if __name__ == "__main__":
41
r = Runfiles.Create()
42
ruff = r.Rlocation("rules_multitool++multitool+multitool/tools/ruff/ruff")
43
44
os.chdir(os.environ["BUILD_WORKSPACE_DIRECTORY"])
45
46
exclude_args = []
47
for pattern in EXCLUDES:
48
exclude_args.extend(["--exclude", pattern])
49
50
sys.exit(run_check(ruff, exclude_args, ALL_DIRS, sys.argv[1:]))
51
52