mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2025-08-14 17:31:28 +08:00
40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
from __future__ import absolute_import
|
|
from __future__ import print_function
|
|
from __future__ import unicode_literals
|
|
|
|
import argparse
|
|
import ast
|
|
import platform
|
|
import sys
|
|
import traceback
|
|
from typing import Optional
|
|
from typing import Sequence
|
|
|
|
|
|
def main(argv=None): # type: (Optional[Sequence[str]]) -> int
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('filenames', nargs='*')
|
|
args = parser.parse_args(argv)
|
|
|
|
retval = 0
|
|
for filename in args.filenames:
|
|
|
|
try:
|
|
with open(filename, 'rb') as f:
|
|
ast.parse(f.read(), filename=filename)
|
|
except SyntaxError:
|
|
print('{}: failed parsing with {} {}:'.format(
|
|
filename,
|
|
platform.python_implementation(),
|
|
sys.version.partition(' ')[0],
|
|
))
|
|
print('\n{}'.format(
|
|
' ' + traceback.format_exc().replace('\n', '\n '),
|
|
))
|
|
retval = 1
|
|
return retval
|
|
|
|
|
|
if __name__ == '__main__':
|
|
exit(main())
|