diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py
index 12f58d610..254c21126 100644
--- a/qutebrowser/browser/commands.py
+++ b/qutebrowser/browser/commands.py
@@ -634,7 +634,7 @@ class CommandDispatcher:
scope='window')
@cmdutils.argument('count', count=True)
@cmdutils.argument('horizontal', flag='x')
- def scroll_perc(self, perc: float=None, horizontal=False, count=None):
+ def scroll_perc(self, perc: float = None, horizontal=False, count=None):
"""Scroll to a specific percentage of the page.
The percentage can be given either as argument or as count.
@@ -670,7 +670,7 @@ class CommandDispatcher:
@cmdutils.argument('bottom_navigate', metavar='ACTION',
choices=('next', 'increment'))
def scroll_page(self, x: float, y: float, *,
- top_navigate: str=None, bottom_navigate: str=None,
+ top_navigate: str = None, bottom_navigate: str = None,
count=1):
"""Scroll the frame page-wise.
@@ -807,7 +807,7 @@ class CommandDispatcher:
@cmdutils.register(instance='command-dispatcher', scope='window')
@cmdutils.argument('count', count=True)
- def zoom(self, zoom: int=None, count=None):
+ def zoom(self, zoom: int = None, count=None):
"""Set the zoom level for the current tab.
The zoom can be given as argument or as [count]. If neither is
diff --git a/qutebrowser/browser/downloads.py b/qutebrowser/browser/downloads.py
index f9b246d3a..8182aabfd 100644
--- a/qutebrowser/browser/downloads.py
+++ b/qutebrowser/browser/downloads.py
@@ -952,7 +952,7 @@ class DownloadModel(QAbstractListModel):
@cmdutils.register(instance='download-model', scope='window', maxsplit=0)
@cmdutils.argument('count', count=True)
- def download_open(self, cmdline: str=None, count=0):
+ def download_open(self, cmdline: str = None, count=0):
"""Open the last/[count]th download.
If no specific command is given, this will use the system's default
diff --git a/qutebrowser/browser/webengine/webenginedownloads.py b/qutebrowser/browser/webengine/webenginedownloads.py
index 53cbb82c1..ca6e04c04 100644
--- a/qutebrowser/browser/webengine/webenginedownloads.py
+++ b/qutebrowser/browser/webengine/webenginedownloads.py
@@ -100,7 +100,8 @@ class DownloadItem(downloads.AbstractDownloadItem):
def _get_open_filename(self):
return self._filename
- def _set_fileobj(self, fileobj):
+ def _set_fileobj(self, fileobj, *,
+ autoclose=True): # pylint: disable=unused-argument
raise downloads.UnsupportedOperationError
def _set_tempfile(self, fileobj):
diff --git a/qutebrowser/browser/webengine/webengineelem.py b/qutebrowser/browser/webengine/webengineelem.py
index 3e145468b..1147b8475 100644
--- a/qutebrowser/browser/webengine/webengineelem.py
+++ b/qutebrowser/browser/webengine/webengineelem.py
@@ -18,7 +18,7 @@
# along with qutebrowser. If not, see .
# FIXME:qtwebengine remove this once the stubs are gone
-# pylint: disable=unused-variable
+# pylint: disable=unused-argument
"""QtWebEngine specific part of the web element API."""
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index 7eef0b03a..821b73a1a 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -18,7 +18,7 @@
# along with qutebrowser. If not, see .
# FIXME:qtwebengine remove this once the stubs are gone
-# pylint: disable=unused-variable
+# pylint: disable=unused-argument
"""Wrapper over a QWebEngineView."""
diff --git a/qutebrowser/browser/webkit/rfc6266.py b/qutebrowser/browser/webkit/rfc6266.py
index 89f4c78c6..11a1d76a1 100644
--- a/qutebrowser/browser/webkit/rfc6266.py
+++ b/qutebrowser/browser/webkit/rfc6266.py
@@ -286,9 +286,6 @@ def normalize_ws(text):
def parse_headers(content_disposition):
"""Build a _ContentDisposition from header values."""
- # WORKAROUND for https://bitbucket.org/logilab/pylint/issue/492/
- # pylint: disable=no-member
-
# We allow non-ascii here (it will only be parsed inside of qdtext, and
# rejected by the grammar if it appears in other places), although parsing
# it can be ambiguous. Parsing it ensures that a non-ambiguous filename*
diff --git a/qutebrowser/commands/argparser.py b/qutebrowser/commands/argparser.py
index e4c6378bd..c0e08ccb6 100644
--- a/qutebrowser/commands/argparser.py
+++ b/qutebrowser/commands/argparser.py
@@ -76,11 +76,11 @@ class ArgumentParser(argparse.ArgumentParser):
self.name = name
super().__init__(*args, add_help=False, prog=name, **kwargs)
- def exit(self, status=0, msg=None):
- raise ArgumentParserExit(status, msg)
+ def exit(self, status=0, message=None):
+ raise ArgumentParserExit(status, message)
- def error(self, msg):
- raise ArgumentParserError(msg.capitalize())
+ def error(self, message):
+ raise ArgumentParserError(message.capitalize())
def arg_name(name):
diff --git a/qutebrowser/completion/models/base.py b/qutebrowser/completion/models/base.py
index 88b06a4e0..1ee45af71 100644
--- a/qutebrowser/completion/models/base.py
+++ b/qutebrowser/completion/models/base.py
@@ -103,7 +103,7 @@ class BaseCompletionModel(QStandardItemModel):
nameitem.setData(userdata, Role.userdata)
return nameitem, descitem, miscitem
- def delete_cur_item(self, win_id):
+ def delete_cur_item(self, completion):
"""Delete the selected item."""
raise NotImplementedError
diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py
index 82c6aca00..73aa2ae22 100644
--- a/qutebrowser/config/config.py
+++ b/qutebrowser/config/config.py
@@ -643,8 +643,7 @@ class ConfigManager(QObject):
def _after_set(self, changed_sect, changed_opt):
"""Clean up caches and emit signals after an option has been set."""
- # WORKAROUND for https://bitbucket.org/logilab/pylint/issues/659/
- self.get.cache_clear() # pylint: disable=no-member
+ self.get.cache_clear()
self._changed(changed_sect, changed_opt)
# Options in the same section and ${optname} interpolation.
for optname, option in self.sections[changed_sect].items():
@@ -715,8 +714,7 @@ class ConfigManager(QObject):
existed = optname in sectdict
if existed:
sectdict.delete(optname)
- # WORKAROUND for https://bitbucket.org/logilab/pylint/issues/659/
- self.get.cache_clear() # pylint: disable=no-member
+ self.get.cache_clear()
return existed
@functools.lru_cache()
diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py
index 69feab920..358bcc80b 100644
--- a/qutebrowser/mainwindow/prompt.py
+++ b/qutebrowser/mainwindow/prompt.py
@@ -387,7 +387,7 @@ class PromptContainer(QWidget):
@cmdutils.register(instance='prompt-container', hide=True, scope='window',
modes=[usertypes.KeyMode.prompt], maxsplit=0)
- def prompt_open_download(self, cmdline: str=None):
+ def prompt_open_download(self, cmdline: str = None):
"""Immediately open a download.
If no specific command is given, this will use the system's default
diff --git a/qutebrowser/misc/sessions.py b/qutebrowser/misc/sessions.py
index 6ad8358a6..8bf55016f 100644
--- a/qutebrowser/misc/sessions.py
+++ b/qutebrowser/misc/sessions.py
@@ -443,7 +443,7 @@ class SessionManager(QObject):
@cmdutils.register(name=['session-save', 'w'], instance='session-manager')
@cmdutils.argument('name', completion=usertypes.Completion.sessions)
@cmdutils.argument('win_id', win_id=True)
- def session_save(self, name: str=default, current=False, quiet=False,
+ def session_save(self, name: str = default, current=False, quiet=False,
force=False, only_active_window=False, win_id=None):
"""Save a session.
@@ -455,9 +455,7 @@ class SessionManager(QObject):
force: Force saving internal sessions (starting with an underline).
only_active_window: Saves only tabs of the currently active window.
"""
- if (name is not default and
- name.startswith('_') and # pylint: disable=no-member
- not force):
+ if name is not default and name.startswith('_') and not force:
raise cmdexc.CommandError("{} is an internal session, use --force "
"to save anyways.".format(name))
if current:
diff --git a/qutebrowser/utils/message.py b/qutebrowser/utils/message.py
index bb758d78a..8f39e8174 100644
--- a/qutebrowser/utils/message.py
+++ b/qutebrowser/utils/message.py
@@ -18,7 +18,7 @@
# along with qutebrowser. If not, see .
# Because every method needs to have a log_stack argument
-# pylint: disable=unused-variable
+# pylint: disable=unused-argument
"""Message singleton so we don't have to define unneeded signals."""
diff --git a/scripts/dev/run_pylint_on_tests.py b/scripts/dev/run_pylint_on_tests.py
index 01dd14ad7..e4412708d 100644
--- a/scripts/dev/run_pylint_on_tests.py
+++ b/scripts/dev/run_pylint_on_tests.py
@@ -54,7 +54,8 @@ def main():
'missing-docstring',
'protected-access',
# https://bitbucket.org/logilab/pylint/issue/511/
- 'undefined-variable',
+ #'undefined-variable',
+ 'len-as-condition',
# directories without __init__.py...
'import-error',
]
@@ -66,7 +67,8 @@ def main():
no_docstring_rgx = ['^__.*__$', '^setup$']
args = (['--disable={}'.format(','.join(disabled)),
- '--no-docstring-rgx=({})'.format('|'.join(no_docstring_rgx))] +
+ '--no-docstring-rgx=({})'.format('|'.join(no_docstring_rgx)),
+ '--ignored-modules=helpers,pytest'] +
sys.argv[2:] + files)
env = os.environ.copy()
env['PYTHONPATH'] = os.pathsep.join(pythonpath)
diff --git a/tests/conftest.py b/tests/conftest.py
index fe2ca9042..53dbbb752 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see .
-# pylint: disable=unused-import
+# pylint: disable=unused-import,wildcard-import,unused-wildcard-import
"""The qutebrowser test suite conftest file."""
@@ -34,7 +34,7 @@ pytest.register_assert_rewrite('helpers')
from helpers import logfail
from helpers.logfail import fail_on_logging
from helpers.messagemock import message_mock
-from helpers.fixtures import * # pylint: disable=wildcard-import
+from helpers.fixtures import *
from qutebrowser.utils import qtutils
diff --git a/tests/end2end/fixtures/quteprocess.py b/tests/end2end/fixtures/quteprocess.py
index 80643b131..cc835693c 100644
--- a/tests/end2end/fixtures/quteprocess.py
+++ b/tests/end2end/fixtures/quteprocess.py
@@ -356,7 +356,8 @@ class QuteProc(testprocess.Process):
self.wait_for(category='webview',
message='Scroll position changed to ' + point)
- def wait_for(self, timeout=None, **kwargs):
+ def wait_for(self, timeout=None, # pylint: disable=arguments-differ
+ **kwargs):
"""Extend wait_for to add divisor if a test is xfailing."""
__tracebackhide__ = (lambda e:
e.errisinstance(testprocess.WaitForTimeout))
diff --git a/tests/helpers/stubs.py b/tests/helpers/stubs.py
index dfbcc550d..3e028b0c9 100644
--- a/tests/helpers/stubs.py
+++ b/tests/helpers/stubs.py
@@ -376,9 +376,6 @@ class InstaTimer(QObject):
timeout = pyqtSignal()
- def __init__(self, parent=None):
- super().__init__(parent)
-
def start(self):
self.timeout.emit()
@@ -410,9 +407,6 @@ class StatusBarCommandStub(QLineEdit):
show_cmd = pyqtSignal()
hide_cmd = pyqtSignal()
- def __init__(self, parent=None):
- super().__init__(parent)
-
def prefix(self):
return self.text()[0]
@@ -594,6 +588,3 @@ class ApplicationStub(QObject):
"""Stub to insert as the app object in objreg."""
new_window = pyqtSignal(mainwindow.MainWindow)
-
- def __init__(self):
- super().__init__()
diff --git a/tests/helpers/utils.py b/tests/helpers/utils.py
index faafefa82..52a843dbc 100644
--- a/tests/helpers/utils.py
+++ b/tests/helpers/utils.py
@@ -17,8 +17,6 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see .
-# pylint: disable=unused-variable
-
"""Partial comparison of dicts/lists."""
diff --git a/tests/unit/completion/test_completer.py b/tests/unit/completion/test_completer.py
index a2b3bc7f0..3f0f021bf 100644
--- a/tests/unit/completion/test_completer.py
+++ b/tests/unit/completion/test_completer.py
@@ -113,7 +113,6 @@ def cmdutils_patch(monkeypatch, stubs):
@cmdutils.argument('command', completion=usertypes.Completion.command)
def bind(key, win_id, command=None, *, mode='normal', force=False):
"""docstring."""
- # pylint: disable=unused-variable
pass
def tab_detach():