Skip to content

Commit 290bcc0

Browse files
refactor(check_file_length.py): add local pre-commit check for file length
1 parent 54cf065 commit 290bcc0

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

.pre-commit-config.yaml

+8-1
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,11 @@ repos:
2323
entry: python3 -m mypy --ignore-missing-imports
2424
language: system
2525
types: [python]
26-
files: ^litellm/
26+
files: ^litellm/
27+
# - id: check-file-length
28+
# name: Check file length
29+
# entry: python check_file_length.py
30+
# args: ["10000"] # set your desired maximum number of lines
31+
# language: python
32+
# files: litellm/.*\.py
33+
# exclude: ^litellm/tests/

check_file_length.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import sys
2+
3+
4+
def check_file_length(max_lines, filenames):
5+
bad_files = []
6+
for filename in filenames:
7+
with open(filename, "r") as file:
8+
lines = file.readlines()
9+
if len(lines) > max_lines:
10+
bad_files.append((filename, len(lines)))
11+
return bad_files
12+
13+
14+
if __name__ == "__main__":
15+
max_lines = int(sys.argv[1])
16+
filenames = sys.argv[2:]
17+
18+
bad_files = check_file_length(max_lines, filenames)
19+
if bad_files:
20+
bad_files.sort(
21+
key=lambda x: x[1], reverse=True
22+
) # Sort files by length in descending order
23+
for filename, length in bad_files:
24+
print(f"{filename}: {length} lines")
25+
26+
sys.exit(1)
27+
else:
28+
sys.exit(0)

0 commit comments

Comments
 (0)