diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cc41d85f1..2d85031b5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -23,4 +23,11 @@ repos: entry: python3 -m mypy --ignore-missing-imports language: system types: [python] - files: ^litellm/ \ No newline at end of file + files: ^litellm/ + # - id: check-file-length + # name: Check file length + # entry: python check_file_length.py + # args: ["10000"] # set your desired maximum number of lines + # language: python + # files: litellm/.*\.py + # exclude: ^litellm/tests/ \ No newline at end of file diff --git a/check_file_length.py b/check_file_length.py new file mode 100644 index 000000000..f23b79add --- /dev/null +++ b/check_file_length.py @@ -0,0 +1,28 @@ +import sys + + +def check_file_length(max_lines, filenames): + bad_files = [] + for filename in filenames: + with open(filename, "r") as file: + lines = file.readlines() + if len(lines) > max_lines: + bad_files.append((filename, len(lines))) + return bad_files + + +if __name__ == "__main__": + max_lines = int(sys.argv[1]) + filenames = sys.argv[2:] + + bad_files = check_file_length(max_lines, filenames) + if bad_files: + bad_files.sort( + key=lambda x: x[1], reverse=True + ) # Sort files by length in descending order + for filename, length in bad_files: + print(f"{filename}: {length} lines") + + sys.exit(1) + else: + sys.exit(0)