diff --git a/qutebrowser/__init__.py b/qutebrowser/__init__.py
index 17cc5d3d3..e939d633a 100644
--- a/qutebrowser/__init__.py
+++ b/qutebrowser/__init__.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=line-too-long,bad-builtin
+# pylint: disable=line-too-long
"""A keyboard-driven, vim-like browser based on PyQt5 and QtWebKit."""
diff --git a/qutebrowser/app.py b/qutebrowser/app.py
index f9b5fad45..716cd7d18 100644
--- a/qutebrowser/app.py
+++ b/qutebrowser/app.py
@@ -42,7 +42,7 @@ except ImportError:
hunter = None
import qutebrowser
-import qutebrowser.resources # pylint: disable=unused-import
+import qutebrowser.resources
from qutebrowser.completion.models import instances as completionmodels
from qutebrowser.commands import cmdutils, runners, cmdexc
from qutebrowser.config import style, config, websettings, configexc
@@ -61,7 +61,6 @@ qApp = None
def run(args):
"""Initialize everything and run the application."""
- # pylint: disable=too-many-statements
if args.version:
print(version.version(short=True))
print()
diff --git a/qutebrowser/browser/mhtml.py b/qutebrowser/browser/mhtml.py
index a202b5639..e5845a07d 100644
--- a/qutebrowser/browser/mhtml.py
+++ b/qutebrowser/browser/mhtml.py
@@ -451,7 +451,7 @@ class _Downloader:
self._finished(url, item)
-class _NoCloseBytesIO(io.BytesIO): # pylint: disable=no-init
+class _NoCloseBytesIO(io.BytesIO):
"""BytesIO that can't be .closed().
diff --git a/qutebrowser/browser/network/networkmanager.py b/qutebrowser/browser/network/networkmanager.py
index 7122ec695..79f73e58e 100644
--- a/qutebrowser/browser/network/networkmanager.py
+++ b/qutebrowser/browser/network/networkmanager.py
@@ -249,7 +249,6 @@ class NetworkManager(QNetworkAccessManager):
net = netrc.netrc()
authenticators = net.authenticators(reply.url().host())
if authenticators is not None:
- # pylint: disable=unpacking-non-sequence
(user, _account, password) = authenticators
except FileNotFoundError:
log.misc.debug("No .netrc file found")
diff --git a/qutebrowser/browser/webelem.py b/qutebrowser/browser/webelem.py
index c559be414..4261c1d5b 100644
--- a/qutebrowser/browser/webelem.py
+++ b/qutebrowser/browser/webelem.py
@@ -106,7 +106,6 @@ class WebElementWrapper(collections.abc.MutableMapping):
method = getattr(self._elem, name)
def _wrapper(meth, *args, **kwargs):
- # pylint: disable=missing-docstring
self._check_vanished()
return meth(*args, **kwargs)
diff --git a/qutebrowser/commands/command.py b/qutebrowser/commands/command.py
index 0ee50fbb7..48124ce63 100644
--- a/qutebrowser/commands/command.py
+++ b/qutebrowser/commands/command.py
@@ -75,7 +75,7 @@ class Command:
deprecated=False, no_cmd_split=False, scope='global',
count=None, win_id=None):
# I really don't know how to solve this in a better way, I tried.
- # pylint: disable=too-many-arguments,too-many-locals
+ # pylint: disable=too-many-locals
if modes is not None and not_modes is not None:
raise ValueError("Only modes or not_modes can be given!")
if modes is not None:
diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py
index 727145e0a..42f9395e2 100644
--- a/qutebrowser/config/config.py
+++ b/qutebrowser/config/config.py
@@ -97,7 +97,6 @@ class change_filter: # pylint: disable=invalid-name
@pyqtSlot(str, str)
@functools.wraps(func)
def wrapper(sectname=None, optname=None):
- # pylint: disable=missing-docstring
if sectname is None and optname is None:
# Called directly, not from a config change event.
return func()
@@ -111,7 +110,6 @@ class change_filter: # pylint: disable=invalid-name
@pyqtSlot(str, str)
@functools.wraps(func)
def wrapper(wrapper_self, sectname=None, optname=None):
- # pylint: disable=missing-docstring
if sectname is None and optname is None:
# Called directly, not from a config change event.
return func(wrapper_self)
@@ -150,7 +148,7 @@ def _init_main_config(parent=None):
errstr = "Error while reading config:"
try:
errstr += "\n\n{} -> {}:".format(
- e.section, e.option) # pylint: disable=no-member
+ e.section, e.option)
except AttributeError:
pass
errstr += "\n"
diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py
index ac602194a..0cef7037f 100644
--- a/qutebrowser/mainwindow/mainwindow.py
+++ b/qutebrowser/mainwindow/mainwindow.py
@@ -264,7 +264,6 @@ class MainWindow(QWidget):
def _connect_signals(self):
"""Connect all mainwindow signals."""
- # pylint: disable=too-many-statements
key_config = objreg.get('key-config')
status = self._get_object('statusbar')
diff --git a/qutebrowser/misc/checkpyver.py b/qutebrowser/misc/checkpyver.py
index a5d561764..3cc57db03 100644
--- a/qutebrowser/misc/checkpyver.py
+++ b/qutebrowser/misc/checkpyver.py
@@ -28,7 +28,6 @@ try:
except ImportError: # pragma: no coverage
try:
# Python2
- # pylint: disable=import-error
from Tkinter import Tk
import tkMessageBox as messagebox
except ImportError:
diff --git a/qutebrowser/misc/crashdialog.py b/qutebrowser/misc/crashdialog.py
index c64f5aeda..4aed21a38 100644
--- a/qutebrowser/misc/crashdialog.py
+++ b/qutebrowser/misc/crashdialog.py
@@ -349,8 +349,6 @@ class _CrashDialog(QDialog):
Args:
newest: The newest version as a string.
"""
- # pylint: disable=no-member
- # https://bitbucket.org/logilab/pylint/issue/73/
new_version = pkg_resources.parse_version(newest)
cur_version = pkg_resources.parse_version(qutebrowser.__version__)
lines = ['The report has been sent successfully. Thanks!']
diff --git a/qutebrowser/misc/earlyinit.py b/qutebrowser/misc/earlyinit.py
index ca8096b03..3014fbaac 100644
--- a/qutebrowser/misc/earlyinit.py
+++ b/qutebrowser/misc/earlyinit.py
@@ -23,7 +23,7 @@ At this point we can be sure we have all python 3.4 features available.
try:
# Importing hunter to register its atexit handler early so it gets called
# late.
- import hunter # pylint: disable=import-error,unused-import
+ import hunter # pylint: disable=unused-import
except ImportError:
hunter = None
@@ -35,7 +35,7 @@ import signal
import operator
import importlib
try:
- import tkinter # pylint: disable=import-error
+ import tkinter
except ImportError:
tkinter = None
# NOTE: No qutebrowser or PyQt import should be done here, as some early
@@ -180,7 +180,7 @@ def fix_harfbuzz(args):
def check_pyqt_core():
"""Check if PyQt core is installed."""
try:
- import PyQt5.QtCore # pylint: disable=unused-variable
+ import PyQt5.QtCore
except ImportError as e:
text = _missing_str('PyQt5',
windows="Use the installer by Riverbank computing "
diff --git a/qutebrowser/utils/qtutils.py b/qutebrowser/utils/qtutils.py
index 7decba942..1408ae58a 100644
--- a/qutebrowser/utils/qtutils.py
+++ b/qutebrowser/utils/qtutils.py
@@ -77,8 +77,6 @@ def version_check(version, op=operator.ge):
version: The version to check against.
op: The operator to use for the check.
"""
- # pylint: disable=no-member
- # https://bitbucket.org/logilab/pylint/issue/73/
return op(pkg_resources.parse_version(qVersion()),
pkg_resources.parse_version(version))
@@ -244,8 +242,6 @@ class PyQIODevice(io.BufferedIOBase):
dev: The underlying QIODevice.
"""
- # pylint: disable=missing-docstring
-
def __init__(self, dev):
super().__init__()
self.dev = dev
diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py
index 7909c251b..1061433a4 100644
--- a/qutebrowser/utils/utils.py
+++ b/qutebrowser/utils/utils.py
@@ -609,7 +609,7 @@ class prevent_exceptions: # pylint: disable=invalid-name
retval = self._retval
@functools.wraps(func)
- def wrapper(*args, **kwargs): # pylint: disable=missing-docstring
+ def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except BaseException:
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py
index f5cd767f4..78bff31cd 100644
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -168,8 +168,6 @@ def _os_info():
elif sys.platform == 'win32':
osver = ', '.join(platform.win32_ver())
elif sys.platform == 'darwin':
- # pylint: disable=unpacking-non-sequence
- # See https://bitbucket.org/logilab/pylint/issue/165/
release, versioninfo, machine = platform.mac_ver()
if all(not e for e in versioninfo):
versioninfo = ''
diff --git a/scripts/dev/run_frozen_tests.py b/scripts/dev/run_frozen_tests.py
index f5a4dfb71..5b20df09f 100644
--- a/scripts/dev/run_frozen_tests.py
+++ b/scripts/dev/run_frozen_tests.py
@@ -18,8 +18,6 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see .
-# pylint: disable=import-error,no-member
-
"""cx_Freeze script to run qutebrowser tests on the frozen executable."""
import sys
diff --git a/scripts/minimal_webkit_testbrowser.py b/scripts/minimal_webkit_testbrowser.py
index b5aab12c8..1cdebafb1 100755
--- a/scripts/minimal_webkit_testbrowser.py
+++ b/scripts/minimal_webkit_testbrowser.py
@@ -29,7 +29,6 @@ from PyQt5.QtWebKit import QWebSettings
from PyQt5.QtWebKitWidgets import QWebView
try:
- # pylint: disable=no-name-in-module,import-error
from PyQt5.QtWebEngineWidgets import QWebEngineView
WEBENGINE = True
except ImportError:
diff --git a/tests/conftest.py b/tests/conftest.py
index c40a66c39..78d83be17 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -207,7 +207,7 @@ def _generate_cmdline_tests():
def cmdline_test(request):
"""Fixture which generates tests for things validating commandlines."""
# Import qutebrowser.app so all cmdutils.register decorators get run.
- import qutebrowser.app # pylint: disable=unused-variable
+ import qutebrowser.app
return request.param
diff --git a/tests/helpers/stubs.py b/tests/helpers/stubs.py
index 844de59a2..bcc7b866e 100644
--- a/tests/helpers/stubs.py
+++ b/tests/helpers/stubs.py
@@ -281,8 +281,6 @@ class FakeTimer(QObject):
"""Stub for a usertypes.Timer."""
- # pylint: disable=missing-docstring
-
timeout_signal = pyqtSignal()
def __init__(self, parent=None, name=None):
diff --git a/tests/integration/quteprocess.py b/tests/integration/quteprocess.py
index f60e4d026..e72d1dd9c 100644
--- a/tests/integration/quteprocess.py
+++ b/tests/integration/quteprocess.py
@@ -17,9 +17,6 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see .
-# pylint doesn't understand the testprocess import
-# pylint: disable=no-member
-
"""Fixtures to run qutebrowser in a QProcess and communicate."""
import re
@@ -42,6 +39,9 @@ from qutebrowser.utils import log, utils
def is_ignored_qt_message(message):
"""Check if the message is listed in qt_log_ignore."""
+ # pylint: disable=no-member
+ # WORKAROUND for https://bitbucket.org/logilab/pylint/issues/717/
+ # we should switch to generated-members after that
regexes = pytest.config.getini('qt_log_ignore')
for regex in regexes:
if re.match(regex, message):
@@ -151,6 +151,9 @@ class QuteProc(testprocess.Process):
else:
raise
+ # WORKAROUND for https://bitbucket.org/logilab/pylint/issues/717/
+ # we should switch to generated-members after that
+ # pylint: disable=no-member
if (log_line.loglevel in ['INFO', 'WARNING', 'ERROR'] or
pytest.config.getoption('--verbose')):
print(line)
diff --git a/tests/integration/webserver.py b/tests/integration/webserver.py
index 09563cc48..3848ab902 100644
--- a/tests/integration/webserver.py
+++ b/tests/integration/webserver.py
@@ -17,9 +17,6 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see .
-# pylint doesn't understand the testprocess import
-# pylint: disable=no-member
-
"""Fixtures for the httpbin webserver."""
import sys
diff --git a/tests/integration/webserver_sub.py b/tests/integration/webserver_sub.py
index f9364555f..9466b4350 100644
--- a/tests/integration/webserver_sub.py
+++ b/tests/integration/webserver_sub.py
@@ -127,11 +127,6 @@ class WSGIServer(cherrypy.wsgiserver.CherryPyWSGIServer):
def main():
- # pylint: disable=no-member
- # WORKAROUND for https://bitbucket.org/logilab/pylint/issues/702
- # "Instance of 'WSGIServer' has no 'start' member (no-member)"
- # "Instance of 'WSGIServer' has no 'stop' member (no-member)"
-
if hasattr(sys, 'frozen'):
basedir = os.path.realpath(os.path.dirname(sys.executable))
app.template_folder = os.path.join(basedir, 'integration', 'templates')
diff --git a/tests/unit/browser/test_mhtml.py b/tests/unit/browser/test_mhtml.py
index 5a6912863..23d42d700 100644
--- a/tests/unit/browser/test_mhtml.py
+++ b/tests/unit/browser/test_mhtml.py
@@ -275,8 +275,6 @@ def test_css_url_scanner(monkeypatch, has_cssutils, inline, style,
class TestNoCloseBytesIO:
- # WORKAROUND for https://bitbucket.org/logilab/pylint/issues/540/
- # pylint: disable=no-member
def test_fake_close(self):
fp = mhtml._NoCloseBytesIO()
diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py
index a6b8af445..a7d6dda8f 100644
--- a/tests/unit/config/test_config.py
+++ b/tests/unit/config/test_config.py
@@ -281,7 +281,7 @@ class TestDefaultConfig:
def test_default_key_config(self):
"""Test validating of the default key config."""
# We import qutebrowser.app so the cmdutils.register decorators run.
- import qutebrowser.app # pylint: disable=unused-variable
+ import qutebrowser.app
conf = keyconf.KeyConfigParser(None, None)
runner = runners.CommandRunner(win_id=0)
for sectname in configdata.KEY_DATA:
diff --git a/tests/unit/config/test_configexc.py b/tests/unit/config/test_configexc.py
index 6d0aba3fd..6b19a5ed1 100644
--- a/tests/unit/config/test_configexc.py
+++ b/tests/unit/config/test_configexc.py
@@ -16,8 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see .
-# pylint: disable=missing-docstring
-
"""Tests for qutebrowser.config.configexc."""
from qutebrowser.config import configexc
diff --git a/tests/unit/misc/test_checkpyver.py b/tests/unit/misc/test_checkpyver.py
index c2e89ddad..15d7fb9d3 100644
--- a/tests/unit/misc/test_checkpyver.py
+++ b/tests/unit/misc/test_checkpyver.py
@@ -77,7 +77,7 @@ def test_patched_errwindow(capfd, mocker, monkeypatch):
lambda status: None)
try:
- import tkinter # pylint: disable=unused-variable
+ import tkinter
except ImportError:
tk_mock = mocker.patch('qutebrowser.misc.checkpyver.Tk',
spec=['withdraw'], new_callable=mocker.Mock)
diff --git a/tests/unit/misc/test_ipc.py b/tests/unit/misc/test_ipc.py
index e3a977e30..62247ca14 100644
--- a/tests/unit/misc/test_ipc.py
+++ b/tests/unit/misc/test_ipc.py
@@ -31,7 +31,7 @@ import subprocess
from unittest import mock
import pytest
-import py.path # pylint: disable=no-name-in-module,import-error
+import py.path # pylint: disable=no-name-in-module
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtNetwork import QLocalServer, QLocalSocket, QAbstractSocket
from PyQt5.QtTest import QSignalSpy
diff --git a/tests/unit/misc/test_lineparser.py b/tests/unit/misc/test_lineparser.py
index 8d099d18b..ae603a20b 100644
--- a/tests/unit/misc/test_lineparser.py
+++ b/tests/unit/misc/test_lineparser.py
@@ -50,7 +50,7 @@ class LineParserMixin:
else:
prev_val = None
- if self._binary: # pylint: disable=no-member
+ if self._binary:
fobj = io.BytesIO(prev_val)
else:
fobj = io.StringIO(prev_val)
diff --git a/tests/unit/utils/test_log.py b/tests/unit/utils/test_log.py
index 9b579fef0..0ecd42d5c 100644
--- a/tests/unit/utils/test_log.py
+++ b/tests/unit/utils/test_log.py
@@ -25,7 +25,7 @@ import itertools
import sys
import pytest
-import pytest_catchlog # pylint: disable=import-error
+import pytest_catchlog
from qutebrowser.utils import log