rocksdb/tools/check_all_python.py

23 lines
839 B
Python
Executable File

#!/usr/bin/env python3
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
import glob
# Checks that all python files in the repository are at least free of syntax
# errors. This provides a minimal pre-/post-commit check for python file
# modifications.
filenames = []
# Avoid scanning all of ./ because there might be other external repos
# linked in.
for base in ["buckifier", "build_tools", "coverage", "tools"]:
# Clean this up when we finally upgrade to Python 3
for suff in ["*", "*/*", "*/*/*"]:
filenames += glob.glob(base + "/" + suff + ".py")
for filename in filenames:
source = open(filename).read() + "\n"
# Parses and syntax checks the file, throwing on error. (No pyc written.)
_ = compile(source, filename, "exec")
print(f"No syntax errors in {len(filenames)} .py files")