# HG changeset patch # User Mads Kiilerich # Date 2020-02-11 04:17:03 # Node ID 51af7c12ffb12c9fcc7791ff593a76121f046324 # Parent 9d6cc55384fe405f73914c4cef3ffa9f1463a007 cleanup: run pyflakes as a part of scripts/run-all-cleanup pyflakes has no usable configuration options, so create a small wrapper script. Instead of having two wrapper scripts (with one being almost nothing and the other containing configuration), just keep it simple and use one combined. diff --git a/dev_requirements.txt b/dev_requirements.txt --- a/dev_requirements.txt +++ b/dev_requirements.txt @@ -6,3 +6,4 @@ mock >= 3.0.0, < 4.1 Sphinx >= 1.8.0, < 2.4 WebTest >= 2.0.6, < 2.1 isort == 4.3.21 +pyflakes == 2.1.1 diff --git a/scripts/pyflakes b/scripts/pyflakes new file mode 100755 --- /dev/null +++ b/scripts/pyflakes @@ -0,0 +1,37 @@ +#!/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) diff --git a/scripts/run-all-cleanup b/scripts/run-all-cleanup --- a/scripts/run-all-cleanup +++ b/scripts/run-all-cleanup @@ -8,3 +8,5 @@ set -x scripts/docs-headings.py scripts/generate-ini.py scripts/whitespacecleanup.sh + +hg loc 'set:!binary()&grep("^#!.*python")' '*.py' | xargs scripts/pyflakes