import os from install.download_bin import download, PYTORCH_ROOT # type: ignore[import] # This dictionary maps each platform to the S3 object URL for its clang-format binary. PLATFORM_TO_CF_URL = { "Darwin": "https://oss-clang-format.s3.us-east-2.amazonaws.com/mac/clang-format-mojave", "Linux": "https://oss-clang-format.s3.us-east-2.amazonaws.com/linux64/clang-format-linux64", } # This dictionary maps each platform to a relative path to a file containing its reference hash. PLATFORM_TO_HASH = { "Darwin": os.path.join("tools", "clang_format_hash", "mac", "clang-format-mojave"), "Linux": os.path.join( "tools", "clang_format_hash", "linux64", "clang-format-linux64" ), } CLANG_FORMAT_DIR = os.path.join(PYTORCH_ROOT, ".clang-format-bin") CLANG_FORMAT_PATH = os.path.join(CLANG_FORMAT_DIR, "clang-format") def get_and_check_clang_format(verbose: bool = False) -> bool: return bool( download("clang-format", CLANG_FORMAT_DIR, PLATFORM_TO_CF_URL, PLATFORM_TO_HASH) )