Files
@ 4d36432bf705
Branch filter:
Location: kallithea/scripts/pyflakes - annotation
4d36432bf705
1.2 KiB
text/plain
eslint: install eslint with front-end so it can be run manually
eslint can be run manually on the main .js files with:
./node_modules/.bin/eslint kallithea/public/js/base.js kallithea/public/js/codemirror_loadmode.js kallithea/public/js/graph.js
- but it is quite noisy. Some problems do however stand out as relevant to fix.
Script sections in HTML files can also be checked after removing mako markup:
hg up -cr.
sed -i -e 's/\${[^{}]*\({[^{}]*}[^{}]*\)*}/""/g' -e 's/%\(if\|else\|endif\|for\|endfor\)\>.*//g' -e 's/##.*//g' $(hg loc 'kallithea/templates/**.html')
vim kallithea/templates/pullrequests/pullrequest.html +139 # blank out the multi line 'var url = ${}'
./node_modules/.bin/eslint $(hg loc 'kallithea/templates/**.html')
hg up -Cr.
- but that is even more noisy.
The noise is mainly due to eslint not knowing that everything runs together,
with kallithea/templates/base/root.html defining global variables,
kallithea/public/js/base.js using these and defining functions, which then is
used "everywhere". There might be solutions to that - this is a starting point.
eslint can be run manually on the main .js files with:
./node_modules/.bin/eslint kallithea/public/js/base.js kallithea/public/js/codemirror_loadmode.js kallithea/public/js/graph.js
- but it is quite noisy. Some problems do however stand out as relevant to fix.
Script sections in HTML files can also be checked after removing mako markup:
hg up -cr.
sed -i -e 's/\${[^{}]*\({[^{}]*}[^{}]*\)*}/""/g' -e 's/%\(if\|else\|endif\|for\|endfor\)\>.*//g' -e 's/##.*//g' $(hg loc 'kallithea/templates/**.html')
vim kallithea/templates/pullrequests/pullrequest.html +139 # blank out the multi line 'var url = ${}'
./node_modules/.bin/eslint $(hg loc 'kallithea/templates/**.html')
hg up -Cr.
- but that is even more noisy.
The noise is mainly due to eslint not knowing that everything runs together,
with kallithea/templates/base/root.html defining global variables,
kallithea/public/js/base.js using these and defining functions, which then is
used "everywhere". There might be solutions to that - this is a starting point.
51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 51af7c12ffb1 | #!/usr/bin/env python3
"""
pyflakes with filter configuration for Kallithea.
Inspired by pyflakes/api.py and flake8/plugins/pyflakes.py .
"""
import sys
import pyflakes.api
import pyflakes.messages
class Reporter:
warned = False
def flake(self, warning):
# ignore known warnings
if isinstance(warning, pyflakes.messages.UnusedVariable):
return
if warning.filename == 'kallithea/bin/kallithea_cli_ishell.py':
if isinstance(warning, pyflakes.messages.ImportStarUsed) and warning.message_args == ('kallithea.model.db',):
return
if isinstance(warning, pyflakes.messages.UnusedImport) and warning.message_args == ('kallithea.model.db.*',):
return
print('%s:%s %s [%s %s]' % (warning.filename, warning.lineno, warning.message % warning.message_args, type(warning).__name__, warning.message_args))
self.warned = True
def unexpectedError(self, filename, msg):
print('Unexpected error for %s: %s' % (filename, msg))
reporter = Reporter()
for filename in sorted(set(sys.argv[1:])):
pyflakes.api.checkPath(filename, reporter=reporter)
if reporter.warned:
raise SystemExit(1)
|