mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
The ' # NOQA' comment is added so that the unused imports check (F401) can still be run while still having the Mypy type check.
40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
from __future__ import print_function
|
|
from __future__ import absolute_import
|
|
|
|
import subprocess
|
|
|
|
from .printer import print_err, colors
|
|
|
|
from typing import Any, Dict, List
|
|
|
|
def check_pyflakes(options, by_lang):
|
|
# type: (Any, Dict[str, List[str]]) -> bool
|
|
if len(by_lang['py']) == 0:
|
|
return False
|
|
failed = False
|
|
color = next(colors)
|
|
pyflakes = subprocess.Popen(['pyflakes'] + by_lang['py'],
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT)
|
|
|
|
for ln in iter(pyflakes.stdout.readline, b''):
|
|
if options.full or not (
|
|
b'imported but unused' in ln or
|
|
b'redefinition of unused' in ln or
|
|
# Our ipython startup pythonrc file intentionally imports *
|
|
(b"scripts/lib/pythonrc.py" in ln and
|
|
b" import *' used; unable to detect undefined names" in ln) or
|
|
# Special dev_settings.py import
|
|
b"from .prod_settings_template import *" in ln or
|
|
(b"settings.py" in ln and
|
|
(b"settings import *' used; unable to detect undefined names" in ln or
|
|
b"may be undefined, or defined from star imports" in ln)) or
|
|
(b"zerver/tornado/ioloop_logging.py" in ln and
|
|
b"redefinition of function 'instrument_tornado_ioloop'" in ln) or
|
|
(b"zephyr_mirror_backend.py:" in ln and
|
|
b"redefinition of unused 'simplejson' from line" in ln)):
|
|
|
|
print_err('pyflakes', color, ln)
|
|
failed = True
|
|
return failed
|