changeset 8240:51af7c12ffb1

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.
author Mads Kiilerich <mads@kiilerich.com>
date Tue, 11 Feb 2020 05:17:03 +0100
parents 9d6cc55384fe
children 173612a900ef
files dev_requirements.txt scripts/pyflakes scripts/run-all-cleanup
diffstat 3 files changed, 40 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/dev_requirements.txt	Sun Feb 09 19:46:43 2020 +0100
+++ b/dev_requirements.txt	Tue Feb 11 05:17:03 2020 +0100
@@ -6,3 +6,4 @@
 Sphinx >= 1.8.0, < 2.4
 WebTest >= 2.0.6, < 2.1
 isort == 4.3.21
+pyflakes == 2.1.1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/pyflakes	Tue Feb 11 05:17:03 2020 +0100
@@ -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)
--- a/scripts/run-all-cleanup	Sun Feb 09 19:46:43 2020 +0100
+++ b/scripts/run-all-cleanup	Tue Feb 11 05:17:03 2020 +0100
@@ -8,3 +8,5 @@
 scripts/docs-headings.py
 scripts/generate-ini.py
 scripts/whitespacecleanup.sh
+
+hg loc 'set:!binary()&grep("^#!.*python")' '*.py' | xargs scripts/pyflakes