0ee55a9db5
📁 Files changed: 5 📝 Lines changed: 18 • build.py • check.py • pyproject.toml • tensors.py • uv.lock
52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
"""Run all code quality checks."""
|
|
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def run(cmd: list[str], name: str) -> bool:
|
|
"""Run a command and return success status."""
|
|
print(f"\n{'=' * 60}")
|
|
print(f"Running: {name}")
|
|
print(f"{'=' * 60}")
|
|
result = subprocess.run(cmd, check=False)
|
|
if result.returncode != 0:
|
|
print(f"FAILED: {name}")
|
|
return False
|
|
print(f"PASSED: {name}")
|
|
return True
|
|
|
|
|
|
def main() -> int:
|
|
"""Run all checks."""
|
|
fix_mode = "--fix" in sys.argv
|
|
|
|
checks = [
|
|
(["uv", "run", "ruff", "format", "." if fix_mode else "--check", "."], "Ruff Format"),
|
|
(
|
|
["uv", "run", "ruff", "check", ".", *(["--fix"] if fix_mode else [])],
|
|
"Ruff Lint",
|
|
),
|
|
(["uv", "run", "mypy", "tensors.py"], "Mypy"),
|
|
]
|
|
|
|
# Fix the format check command
|
|
if not fix_mode:
|
|
checks[0] = (["uv", "run", "ruff", "format", "--check", "."], "Ruff Format")
|
|
|
|
results = [run(cmd, name) for cmd, name in checks]
|
|
|
|
print(f"\n{'=' * 60}")
|
|
if all(results):
|
|
print("All checks passed!")
|
|
return 0
|
|
else:
|
|
failed = [name for (_, name), passed in zip(checks, results, strict=True) if not passed]
|
|
print(f"Failed checks: {', '.join(failed)}")
|
|
return 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|