pre-commit-hooks/pre_commit_hooks/check_number_of_lines_count.py
Lorenz Egginger 2f4236158c Use pyfakefs instead of real files in tests
* adjust review findings
2021-10-08 11:47:40 +02:00

35 lines
921 B
Python
Executable file

#!/usr/bin/env python3
import argparse
from typing import Optional
from typing import Sequence
def main(argv: Optional[Sequence[str]] = None) -> int:
parser = argparse.ArgumentParser()
parser.add_argument('filenames', nargs='*')
parser.add_argument(
'--max-lines',
default=30,
type=int,
action='store',
help='Maximum allowed number of lines',
)
args = parser.parse_args(argv)
retcode = 0
for filename in args.filenames:
with open(filename) as file:
file_content = file.readlines()
number_of_lines = len(file_content)
if number_of_lines > args.max_lines:
print(
f'{filename} ({number_of_lines} lines) exceeds '
f'{args.max_lines} lines.',
)
retcode = 1
return retcode
if __name__ == '__main__':
exit(main())