mirror of https://github.com/zulip/zulip.git
Add tools/run-mypy.
Since a lot of files don't pass the mypy check, a long list of files to be excluded from mypy check has been specified.
This commit is contained in:
parent
c220c61dbd
commit
1af4334887
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import sys
|
||||
import lister
|
||||
import argparse
|
||||
import subprocess
|
||||
|
||||
exclude="""
|
||||
api/integrations/
|
||||
api/zulip/__init__.py
|
||||
bots/jabber_mirror_backend.py
|
||||
bots/zephyr_mirror_backend.py
|
||||
docs/conf.py
|
||||
puppet/zulip_internal/files/postgresql/pg_backup_and_purge.py
|
||||
tools/deprecated/
|
||||
tools/lister.py
|
||||
zproject/
|
||||
zerver/lib/actions.py
|
||||
zerver/lib/bugdown/__init__.py
|
||||
zerver/lib/bugdown/fenced_code.py
|
||||
zerver/lib/statistics.py
|
||||
zerver/migrations/
|
||||
zerver/models.py
|
||||
zerver/tests/
|
||||
zerver/views/__init__.py
|
||||
zerver/views/messages.py
|
||||
zilencer/models.py
|
||||
""".split()
|
||||
|
||||
parser = argparse.ArgumentParser(description="Run mypy on files tracked by git.")
|
||||
parser.add_argument('targets', nargs='*', default=[],
|
||||
help="""files and directories to include in the result.
|
||||
If this is not specified, the current directory is used""")
|
||||
parser.add_argument('-m', '--modified', action='store_true', default=False, help='list only modified files')
|
||||
parser.add_argument('-a', '--all', dest='all', action='store_true', default=False,
|
||||
help="""run mypy on all python files, ignoring the exclude list.
|
||||
This is useful if you have to find out which files fail mypy check.""")
|
||||
args = parser.parse_args()
|
||||
if args.all:
|
||||
exclude = []
|
||||
|
||||
python_files = lister.list_files(targets=args.targets, ftypes=['py'], use_shebang=False,
|
||||
modified_only=args.modified, exclude=exclude)
|
||||
|
||||
if python_files:
|
||||
rc = subprocess.call(["mypy", "--silent", "--py2", "--check-untyped-defs"] + python_files)
|
||||
if not rc:
|
||||
print("The mypy static type checker for python detected no errors!")
|
||||
else:
|
||||
print("\nThe mypy static type checker for Python threw some errors,")
|
||||
print("which indicates a bug in your code or incorrect type annotations.")
|
||||
sys.exit(rc)
|
||||
else:
|
||||
print("There are no files to run mypy on.")
|
Loading…
Reference in New Issue