mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
use ruff to enforce python code formatting
Requires servo/servo#37045 for deps and config. Fixes: servo/servo#37041 Signed-off-by: zefr0x <zer0-x.7ty50@aleeas.com>
This commit is contained in:
parent
60eb7c923d
commit
0240f5d93a
1 changed files with 25 additions and 4 deletions
|
@ -77,6 +77,18 @@ def format_toml_files_with_taplo(check_only: bool = True) -> int:
|
||||||
return call([taplo, "fmt", *TOML_GLOBS], env={'RUST_LOG': 'error'})
|
return call([taplo, "fmt", *TOML_GLOBS], env={'RUST_LOG': 'error'})
|
||||||
|
|
||||||
|
|
||||||
|
def format_python_files_with_ruff(check_only: bool = True) -> int:
|
||||||
|
ruff = shutil.which("ruff")
|
||||||
|
if ruff is None:
|
||||||
|
print("Could not find `ruff`. Run `./mach bootstrap`")
|
||||||
|
return 1
|
||||||
|
|
||||||
|
if check_only:
|
||||||
|
return call([ruff, "format", "--check", "--quiet"])
|
||||||
|
else:
|
||||||
|
return call([ruff, "format", "--quiet"])
|
||||||
|
|
||||||
|
|
||||||
def format_with_rustfmt(check_only: bool = True) -> int:
|
def format_with_rustfmt(check_only: bool = True) -> int:
|
||||||
maybe_check_only = ["--check"] if check_only else []
|
maybe_check_only = ["--check"] if check_only else []
|
||||||
result = call(["cargo", "fmt", "--", *UNSTABLE_RUSTFMT_ARGUMENTS, *maybe_check_only])
|
result = call(["cargo", "fmt", "--", *UNSTABLE_RUSTFMT_ARGUMENTS, *maybe_check_only])
|
||||||
|
@ -250,19 +262,24 @@ class MachCommands(CommandBase):
|
||||||
|
|
||||||
print("\r ➤ Checking formatting of Rust files...")
|
print("\r ➤ Checking formatting of Rust files...")
|
||||||
rustfmt_failed = format_with_rustfmt(check_only=True)
|
rustfmt_failed = format_with_rustfmt(check_only=True)
|
||||||
if rustfmt_failed:
|
|
||||||
print("Run `./mach fmt` to fix the formatting")
|
print("\r ➤ Checking formatting of python files...")
|
||||||
|
ruff_format_failed = format_python_files_with_ruff()
|
||||||
|
|
||||||
print("\r ➤ Checking formatting of toml files...")
|
print("\r ➤ Checking formatting of toml files...")
|
||||||
taplo_failed = format_toml_files_with_taplo()
|
taplo_failed = format_toml_files_with_taplo()
|
||||||
|
|
||||||
tidy_failed = tidy_failed or rustfmt_failed or taplo_failed
|
format_failed = rustfmt_failed or ruff_format_failed or taplo_failed
|
||||||
|
tidy_failed = format_failed or tidy_failed
|
||||||
print()
|
print()
|
||||||
if tidy_failed:
|
if tidy_failed:
|
||||||
print("\r ❌ test-tidy reported errors.")
|
print("\r ❌ test-tidy reported errors.")
|
||||||
else:
|
else:
|
||||||
print("\r ✅ test-tidy reported no errors.")
|
print("\r ✅ test-tidy reported no errors.")
|
||||||
|
|
||||||
|
if format_failed:
|
||||||
|
print("Run `./mach fmt` to fix the formatting")
|
||||||
|
|
||||||
return tidy_failed
|
return tidy_failed
|
||||||
|
|
||||||
@Command('test-scripts',
|
@Command('test-scripts',
|
||||||
|
@ -382,9 +399,13 @@ class MachCommands(CommandBase):
|
||||||
return wpt.manifestupdate.update(check_clean=False)
|
return wpt.manifestupdate.update(check_clean=False)
|
||||||
|
|
||||||
@Command('fmt',
|
@Command('fmt',
|
||||||
description='Format Rust and TOML files',
|
description='Format Rust, Python, and TOML files',
|
||||||
category='testing')
|
category='testing')
|
||||||
def format_code(self):
|
def format_code(self):
|
||||||
|
result = format_python_files_with_ruff(check_only=False)
|
||||||
|
if result != 0:
|
||||||
|
return result
|
||||||
|
|
||||||
result = format_toml_files_with_taplo(check_only=False)
|
result = format_toml_files_with_taplo(check_only=False)
|
||||||
if result != 0:
|
if result != 0:
|
||||||
return result
|
return result
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue