pytorch/tools/linter/clang_tidy/generate_build_files.py
Aaron Gokaslan 6d725e7d66 [BE]: enable ruff rules PLR1722 and PLW3301 (#109461)
Enables two ruff rules derived from pylint:
* PLR1722 replaces any exit() calls with sys.exit(). exit() is only designed to be used in repl contexts as may not always be imported by default. This always use the version in the sys module which is better
* PLW3301 replaces nested min / max calls with simplified versions (ie. `min(a, min(b, c))` => `min(a, b. c)`). The new version is more idiomatic and more efficient.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/109461
Approved by: https://github.com/ezyang
2023-09-18 02:07:21 +00:00

70 lines
1.5 KiB
Python

import os
import subprocess
import sys
from typing import List
def run_cmd(cmd: List[str]) -> None:
print(f"Running: {cmd}")
result = subprocess.run(
cmd,
capture_output=True,
)
stdout, stderr = (
result.stdout.decode("utf-8").strip(),
result.stderr.decode("utf-8").strip(),
)
print(stdout)
print(stderr)
if result.returncode != 0:
print(f"Failed to run {cmd}")
sys.exit(1)
def update_submodules() -> None:
run_cmd(["git", "submodule", "update", "--init", "--recursive"])
def gen_compile_commands() -> None:
os.environ["USE_NCCL"] = "0"
os.environ["CC"] = "clang"
os.environ["CXX"] = "clang++"
run_cmd([sys.executable, "setup.py", "--cmake-only", "build"])
def run_autogen() -> None:
run_cmd(
[
sys.executable,
"-m",
"torchgen.gen",
"-s",
"aten/src/ATen",
"-d",
"build/aten/src/ATen",
"--per-operator-headers",
]
)
run_cmd(
[
sys.executable,
"tools/setup_helpers/generate_code.py",
"--native-functions-path",
"aten/src/ATen/native/native_functions.yaml",
"--tags-path",
"aten/src/ATen/native/tags.yaml",
"--gen-lazy-ts-backend",
]
)
def generate_build_files() -> None:
update_submodules()
gen_compile_commands()
run_autogen()
if __name__ == "__main__":
generate_build_files()