From 7fa0dc68bf90d0d3e5bbf421853dca082835544d Mon Sep 17 00:00:00 2001
From: Florian Bruhin <git@the-compiler.org>
Date: Fri, 22 Jan 2016 19:40:10 +0100
Subject: [PATCH] flake8: Add flake8-pep3101 plugin.

Checks for old string formatting.
https://pypi.python.org/pypi/flake8-pep3101/
---
 qutebrowser/browser/network/filescheme.py | 2 +-
 qutebrowser/browser/rfc6266.py            | 2 +-
 qutebrowser/misc/crashdialog.py           | 2 +-
 scripts/dev/pylint_checkers/config.py     | 3 ++-
 scripts/dev/run_vulture.py                | 4 ++--
 scripts/dev/src2asciidoc.py               | 3 ++-
 setup.cfg                                 | 1 +
 tox.ini                                   | 1 +
 8 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/qutebrowser/browser/network/filescheme.py b/qutebrowser/browser/network/filescheme.py
index 973e62d17..e3dbd2539 100644
--- a/qutebrowser/browser/network/filescheme.py
+++ b/qutebrowser/browser/network/filescheme.py
@@ -84,7 +84,7 @@ def dirbrowser_html(path):
     except OSError as e:
         html = jinja.env.get_template('error.html').render(
             title="Error while reading directory",
-            url='file://%s' % path,
+            url='file://{}'.format(path),
             error=str(e),
             icon='')
         return html.encode('UTF-8', errors='xmlcharrefreplace')
diff --git a/qutebrowser/browser/rfc6266.py b/qutebrowser/browser/rfc6266.py
index 0238cfed5..cc7f50f1e 100644
--- a/qutebrowser/browser/rfc6266.py
+++ b/qutebrowser/browser/rfc6266.py
@@ -49,7 +49,7 @@ attr_chars = string.ascii_letters + string.digits + attr_chars_nonalnum
 
 
 # RFC 5987 gives this alternative construction of the token character class
-token_chars = attr_chars + "*'%"
+token_chars = attr_chars + "*'%"  # flake8: disable=S001
 
 
 # Definitions from https://tools.ietf.org/html/rfc2616#section-2.2
diff --git a/qutebrowser/misc/crashdialog.py b/qutebrowser/misc/crashdialog.py
index 6296b190e..4a2244af4 100644
--- a/qutebrowser/misc/crashdialog.py
+++ b/qutebrowser/misc/crashdialog.py
@@ -100,7 +100,7 @@ def _get_environment_vars():
     for key, value in os.environ.items():
         for m in masks:
             if fnmatch.fnmatch(key, m):
-                info.append('%s = %s' % (key, value))
+                info.append('{} = {}'.format(key, value))
     return '\n'.join(sorted(info))
 
 
diff --git a/scripts/dev/pylint_checkers/config.py b/scripts/dev/pylint_checkers/config.py
index 77a69c14e..4a47c95ef 100644
--- a/scripts/dev/pylint_checkers/config.py
+++ b/scripts/dev/pylint_checkers/config.py
@@ -41,7 +41,8 @@ class ConfigChecker(checkers.BaseChecker):
     __implements__ = interfaces.IAstroidChecker
     name = 'config'
     msgs = {
-        'E0000': ('"%s -> %s" is no valid config option.', 'bad-config-call',
+        'E0000': ('"%s -> %s" is no valid config option.',  # flake8: disable=S001
+                  'bad-config-call',
                   None),
     }
     priority = -1
diff --git a/scripts/dev/run_vulture.py b/scripts/dev/run_vulture.py
index db520f924..6350ddea7 100755
--- a/scripts/dev/run_vulture.py
+++ b/scripts/dev/run_vulture.py
@@ -128,8 +128,8 @@ def report(items):
     for item in sorted(items, key=lambda e: (e.file.lower(), e.lineno)):
         relpath = os.path.relpath(item.file)
         path = relpath if not relpath.startswith('..') else item.file
-        output.append("%s:%d: Unused %s '%s'" % (path, item.lineno, item.typ,
-                                                 item))
+        output.append("{}:{}: Unused {} '{}'".format(path, item.lineno,
+                                                     item.typ, item))
     return output
 
 
diff --git a/scripts/dev/src2asciidoc.py b/scripts/dev/src2asciidoc.py
index 212d5ec1b..746a2ceaf 100755
--- a/scripts/dev/src2asciidoc.py
+++ b/scripts/dev/src2asciidoc.py
@@ -72,7 +72,8 @@ class UsageFormatter(argparse.HelpFormatter):
             result = "'{}'".format(action.metavar)
         elif action.choices is not None:
             choice_strs = [str(choice) for choice in action.choices]
-            result = '{%s}' % ','.join('*{}*'.format(e) for e in choice_strs)
+            result = ('{' + ','.join('*{}*'.format(e) for e in choice_strs) +
+                      '}')
         else:
             result = "'{}'".format(default_metavar)
 
diff --git a/setup.cfg b/setup.cfg
index 5c1947a51..715e6999e 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -38,6 +38,7 @@ putty-ignore =
     /# flake8: disable=N803/ : +N803
     /# flake8: disable=T002/ : +T002
     /# flake8: disable=F841/ : +F841
+    /# flake8: disable=S001/ : +S001
 copyright-check = True
 copyright-regexp = # Copyright [\d-]+ .*
 copyright-min-file-size = 110
diff --git a/tox.ini b/tox.ini
index 5efa3638b..bd59d9400 100644
--- a/tox.ini
+++ b/tox.ini
@@ -164,6 +164,7 @@ deps =
     flake8-string-format==0.2.1
     flake8-deprecated==0.2
     flake8-mock==0.2
+    flake8-pep3101==0.2
 commands =
     {envpython} -m flake8