12345678910111213141516171819202122232425262728293031323334353637 |
- import os
- import os.path as osp
- import pathlib
- import subprocess
- def recursively_lint_files():
- """Recursively lint all python files in chosen subdirectories of megatron-lm"""
- try:
- import autopep8
- except ModuleNotFoundError:
- print("Please first install autopep8 via `pip install autopep8`")
- return
- # get all python file paths from top level directory
- file_dir = str(pathlib.Path(__file__).parent.absolute())
- working_dir = osp.join(file_dir, os.pardir)
- all_py_paths = set(os.path.join(working_dir, fname)
- for fname in os.listdir(working_dir) if ".py" in fname)
- # get all python file paths from chosen subdirectories
- check_dirs = ['docker', 'megatron', 'openwebtext', 'scripts', 'tasks']
- for sub_dir in check_dirs:
- for path, _, fnames in os.walk(osp.join(working_dir, sub_dir)):
- all_py_paths.update(set(osp.join(path, fname) for fname in fnames if ".py" in fname))
- print("Linting the following: ")
- for py_path in all_py_paths:
- print(py_path)
- command = 'autopep8 --max-line-length 100 --aggressive --in-place {}'.format(py_path)
- subprocess.check_call(command)
- if __name__ == "__main__":
- recursively_lint_files()
|