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():