From 2c4bb064e69d7e49a70090fd3df84c66277a1405 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Thu, 17 Dec 2020 17:25:00 -0500 Subject: [PATCH 001/161] Show set-cmd-text command bindings in completion. Fixes #5942. For bindings like `o -> :set-cmd-text -s :open`, the user conceptually expects that `o` maps to `open`, yet they do not show in the command completion UI. With this patch, a binding to a command of form `set-cmd-text [flags...] : [cmdargs]` will be treated as if it were bound to ` [cmdargs]` instead for the purpose of completion. Bindings to `set-cmd-text --append` are ignored. --- qutebrowser/config/config.py | 31 +++++++++++++++++++++++++++++-- tests/unit/config/test_config.py | 20 ++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index d8e8d612e..21616cb56 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -162,13 +162,40 @@ class KeyConfig: bindings[key] = binding return bindings + def _strip_leading_flags(self, cmdline: str) -> List[str]: + """Split cmdline at whitespace until the first non-flag.""" + first, _, rest = cmdline.partition(" ") + if first.startswith("-"): + return [first] + self._strip_leading_flags(rest) + return [cmdline] + + def _implied_cmd(self, cmdline: str) -> str: + """Return cmdline, or the implied cmd if cmdline is a set-cmd-text.""" + if not cmdline.startswith("set-cmd-text "): + return cmdline + cmdline = cmdline[len("set-cmd-text "):] + *flags, cmd = self._strip_leading_flags(cmdline) + if "-a" in flags or "--append" in flags or not cmd.startswith(":"): + return "" # doesn't look like this sets a command + return cmd.lstrip(":") + def get_reverse_bindings_for(self, mode: str) -> '_ReverseBindings': - """Get a dict of commands to a list of bindings for the mode.""" + """Get a dict of commands to a list of bindings for the mode. + + This is intented for user-facing display of keybindings. + As such, bindings for 'set-cmd-text [flags] : ...' are translated + to ' ...', as from the user's perspective these keys behave like + bindings for '' (that allow for further input before running). + + See #5942. + """ cmd_to_keys: KeyConfig._ReverseBindings = {} bindings = self.get_bindings_for(mode) for seq, full_cmd in sorted(bindings.items()): for cmd in full_cmd.split(';;'): - cmd = cmd.strip() + cmd = self._implied_cmd(cmd.strip()) + if not cmd: + continue cmd_to_keys.setdefault(cmd, []) # Put bindings involving modifiers last if any(info.modifiers for info in seq): diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py index b30ab4bee..5e97cf714 100644 --- a/tests/unit/config/test_config.py +++ b/tests/unit/config/test_config.py @@ -198,6 +198,26 @@ class TestKeyConfig: # Chained command ({'a': 'message-info foo ;; message-info bar'}, {'message-info foo': ['a'], 'message-info bar': ['a']}), + # Command using set-cmd-text (#5942) + ( + { + "o": "set-cmd-text -s :open", + "O": "set-cmd-text -s :open -t", + "go": "set-cmd-text :open {url:pretty}", + # all of these should be ignored + "/": "set-cmd-text /", + "?": "set-cmd-text ?", + ":": "set-cmd-text :", + "a": "set-cmd-text no_leading_colon", + "b": "set-cmd-text -s -a :skip_cuz_append", + "c": "set-cmd-text --append :skip_cuz_append", + }, + { + "open": ["o"], + "open -t": ["O"], + "open {url:pretty}": ["go"], + } + ), ]) def test_get_reverse_bindings_for(self, key_config_stub, config_stub, no_bindings, bindings, expected): From 4cf6d910498f8a4cf7636a0d278c8bd8458f058b Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Sun, 27 Dec 2020 12:08:40 -0500 Subject: [PATCH 002/161] Add CommandParser tests. All the existing tests just verify whether parsing suceeds or not, but don't verify the result. These tests make it easier to see what the intended behavior of CommandParser is. --- tests/unit/commands/test_runners.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/unit/commands/test_runners.py b/tests/unit/commands/test_runners.py index 497a99663..0d7f27fa7 100644 --- a/tests/unit/commands/test_runners.py +++ b/tests/unit/commands/test_runners.py @@ -67,6 +67,30 @@ class TestCommandParser: with pytest.raises(cmdexc.NoSuchCommandError): parser.parse_all(command) + @pytest.mark.parametrize('command, name, args', [ + ("set-cmd-text -s :open", "set-cmd-text", ["-s", ":open"]), + ("set-cmd-text :open {url:pretty}", "set-cmd-text", + [":open {url:pretty}"]), + ("set-cmd-text -s :open -t", "set-cmd-text", ["-s", ":open -t"]), + ("set-cmd-text :open -t -r {url:pretty}", "set-cmd-text", + [":open -t -r {url:pretty}"]), + ("set-cmd-text -s :open -b", "set-cmd-text", ["-s", ":open -b"]), + ("set-cmd-text :open -b -r {url:pretty}", "set-cmd-text", + [":open -b -r {url:pretty}"]), + ("set-cmd-text -s :open -w", "set-cmd-text", + ["-s", ":open -w"]), + ("set-cmd-text :open -w {url:pretty}", "set-cmd-text", + [":open -w {url:pretty}"]), + ("set-cmd-text /", "set-cmd-text", ["/"]), + ("set-cmd-text ?", "set-cmd-text", ["?"]), + ("set-cmd-text :", "set-cmd-text", [":"]), + ]) + def test_parse_result(self, command, name, args): + parser = runners.CommandParser() + result = parser.parse_all(command, aliases=False)[0] + assert result.cmd.name == name + assert result.args == args + class TestCompletions: From 3b7d459e0df635fa513472a8a00e84dc67c48aa1 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Sun, 27 Dec 2020 13:11:44 -0500 Subject: [PATCH 003/161] Use CommandParser for binding completion. Reduce the amount of custom parsing logic in config.py. Turns out circular import isn't a problem here. Some of the test cases in `test_get_reverse_bindings_for` had to be changed from `message-info` to `open`, as CommandParser expects commands to actually exist, and `message-info` isn't registered during those tests. --- qutebrowser/config/config.py | 20 ++++++++++---------- tests/unit/config/test_config.py | 16 ++++++++-------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index 21616cb56..b2ba1a6a5 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -27,6 +27,7 @@ from typing import (TYPE_CHECKING, Any, Callable, Dict, Iterator, List, Mapping, from PyQt5.QtCore import pyqtSignal, QObject, QUrl +from qutebrowser.commands import cmdexc, runners from qutebrowser.config import configdata, configexc, configutils from qutebrowser.utils import utils, log, urlmatch from qutebrowser.misc import objects @@ -162,19 +163,18 @@ class KeyConfig: bindings[key] = binding return bindings - def _strip_leading_flags(self, cmdline: str) -> List[str]: - """Split cmdline at whitespace until the first non-flag.""" - first, _, rest = cmdline.partition(" ") - if first.startswith("-"): - return [first] + self._strip_leading_flags(rest) - return [cmdline] - def _implied_cmd(self, cmdline: str) -> str: """Return cmdline, or the implied cmd if cmdline is a set-cmd-text.""" - if not cmdline.startswith("set-cmd-text "): + try: + results = runners.CommandParser().parse_all(cmdline, aliases=False) + if len(results) == 0: + return "" + result = results[0] + except cmdexc.NoSuchCommandError: + return "" + if result.cmd.name != "set-cmd-text": return cmdline - cmdline = cmdline[len("set-cmd-text "):] - *flags, cmd = self._strip_leading_flags(cmdline) + *flags, cmd = result.args if "-a" in flags or "--append" in flags or not cmd.startswith(":"): return "" # doesn't look like this sets a command return cmd.lstrip(":") diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py index 5e97cf714..b0c32c6fb 100644 --- a/tests/unit/config/test_config.py +++ b/tests/unit/config/test_config.py @@ -187,17 +187,17 @@ class TestKeyConfig: @pytest.mark.parametrize('bindings, expected', [ # Simple - ({'a': 'message-info foo', 'b': 'message-info bar'}, - {'message-info foo': ['a'], 'message-info bar': ['b']}), + ({'a': 'open foo', 'b': 'open bar'}, + {'open foo': ['a'], 'open bar': ['b']}), # Multiple bindings - ({'a': 'message-info foo', 'b': 'message-info foo'}, - {'message-info foo': ['b', 'a']}), + ({'a': 'open foo', 'b': 'open foo'}, + {'open foo': ['b', 'a']}), # With modifier keys (should be listed last and normalized) - ({'a': 'message-info foo', '': 'message-info foo'}, - {'message-info foo': ['a', '']}), + ({'a': 'open foo', '': 'open foo'}, + {'open foo': ['a', '']}), # Chained command - ({'a': 'message-info foo ;; message-info bar'}, - {'message-info foo': ['a'], 'message-info bar': ['a']}), + ({'a': 'open foo ;; open bar'}, + {'open foo': ['a'], 'open bar': ['a']}), # Command using set-cmd-text (#5942) ( { From e16e67baeb59024cad52a33844cccb81045865cf Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Sun, 3 Jan 2021 13:41:11 -0500 Subject: [PATCH 004/161] Fix PR issues for set-cmd-text completions. - Prefer None to "" - Prefer implicit bool checking - Try to fix mypy warnings --- qutebrowser/config/config.py | 13 +++++++------ qutebrowser/keyinput/modeparsers.py | 4 ++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index b2ba1a6a5..9af764253 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -163,20 +163,21 @@ class KeyConfig: bindings[key] = binding return bindings - def _implied_cmd(self, cmdline: str) -> str: + def _implied_cmd(self, cmdline: str) -> Optional[str]: """Return cmdline, or the implied cmd if cmdline is a set-cmd-text.""" try: results = runners.CommandParser().parse_all(cmdline, aliases=False) - if len(results) == 0: - return "" - result = results[0] except cmdexc.NoSuchCommandError: - return "" + return None + + if not results: + return None + result = results[0] if result.cmd.name != "set-cmd-text": return cmdline *flags, cmd = result.args if "-a" in flags or "--append" in flags or not cmd.startswith(":"): - return "" # doesn't look like this sets a command + return None # doesn't look like this sets a command return cmd.lstrip(":") def get_reverse_bindings_for(self, mode: str) -> '_ReverseBindings': diff --git a/qutebrowser/keyinput/modeparsers.py b/qutebrowser/keyinput/modeparsers.py index 48f3594a5..fe03a9db6 100644 --- a/qutebrowser/keyinput/modeparsers.py +++ b/qutebrowser/keyinput/modeparsers.py @@ -86,6 +86,8 @@ class NormalKeyParser(CommandKeyParser): _partial_timer: Timer to clear partial keypresses. """ + _sequence: keyutils.KeySequence + def __init__(self, *, win_id: int, commandrunner: 'runners.CommandRunner', parent: QObject = None) -> None: @@ -154,6 +156,8 @@ class HintKeyParser(basekeyparser.BaseKeyParser): _last_press: The nature of the last keypress, a LastPress member. """ + _sequence: keyutils.KeySequence + def __init__(self, *, win_id: int, commandrunner: 'runners.CommandRunner', hintmanager: hints.HintManager, From 8d1c5b690ee421144b499d14d62be644310bc29d Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Wed, 6 Jan 2021 09:15:13 -0500 Subject: [PATCH 005/161] Eliminate parser dependency on config. commands.runners depends on config.config to get aliases and the best_match setting, while config.config depends on commands.runners to split commands. Eliminate this circular dependency by: - Moving CommandParser from commands.runners into its a new commands.parser module - Pass aliases/config settings into CommandParser as arguments --- qutebrowser/commands/parser.py | 211 ++++++++++++++++++ qutebrowser/commands/runners.py | 194 +--------------- qutebrowser/completion/completer.py | 5 +- qutebrowser/completion/models/configmodel.py | 8 +- qutebrowser/config/config.py | 9 +- .../{test_runners.py => test_parser.py} | 48 ++-- 6 files changed, 249 insertions(+), 226 deletions(-) create mode 100644 qutebrowser/commands/parser.py rename tests/unit/commands/{test_runners.py => test_parser.py} (77%) diff --git a/qutebrowser/commands/parser.py b/qutebrowser/commands/parser.py new file mode 100644 index 000000000..562b48922 --- /dev/null +++ b/qutebrowser/commands/parser.py @@ -0,0 +1,211 @@ +# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et: + +# Copyright 2021 Ryan Roden-Corrent (rcorre) +# +# This file is part of qutebrowser. +# +# qutebrowser is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# qutebrowser is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with qutebrowser. If not, see . + +"""Module for parsing commands entered into the browser.""" + +import attr +from PyQt5.QtCore import pyqtSlot, QUrl, QObject + +from qutebrowser.commands import cmdexc +from qutebrowser.misc import split, objects + + +@attr.s +class ParseResult: + + """The result of parsing a commandline.""" + + cmd = attr.ib() + args = attr.ib() + cmdline = attr.ib() + + +class CommandParser: + + """Parse qutebrowser commandline commands. + + Attributes: + _partial_match: Whether to allow partial command matches. + """ + + def __init__(self, partial_match=False): + self._partial_match = partial_match + + def _get_alias(self, text, aliases, default=None): + """Get an alias from the config. + + Args: + text: The text to parse. + aliases: A map of aliases to commands. + default : Default value to return when alias was not found. + + Return: + The new command string if an alias was found. Default value + otherwise. + """ + parts = text.strip().split(maxsplit=1) + if parts[0] not in aliases: + return default + alias = aliases[parts[0]] + + try: + new_cmd = '{} {}'.format(alias, parts[1]) + except IndexError: + new_cmd = alias + if text.endswith(' '): + new_cmd += ' ' + return new_cmd + + def _parse_all_gen(self, text, *args, aliases=None, **kwargs): + """Split a command on ;; and parse all parts. + + If the first command in the commandline is a non-split one, it only + returns that. + + Args: + text: Text to parse. + aliases: A map of aliases to commands. + *args/**kwargs: Passed to parse(). + + Yields: + ParseResult tuples. + """ + text = text.strip().lstrip(':').strip() + if not text: + raise cmdexc.NoSuchCommandError("No command given") + + if aliases: + text = self._get_alias(text, aliases, text) + + if ';;' in text: + # Get the first command and check if it doesn't want to have ;; + # split. + first = text.split(';;')[0] + result = self.parse(first, *args, **kwargs) + if result.cmd.no_cmd_split: + sub_texts = [text] + else: + sub_texts = [e.strip() for e in text.split(';;')] + else: + sub_texts = [text] + for sub in sub_texts: + yield self.parse(sub, *args, **kwargs) + + def parse_all(self, *args, **kwargs): + """Wrapper over _parse_all_gen.""" + return list(self._parse_all_gen(*args, **kwargs)) + + def parse(self, text, *, fallback=False, keep=False, best_match=False): + """Split the commandline text into command and arguments. + + Args: + text: Text to parse. + fallback: Whether to do a fallback splitting when the command was + unknown. + keep: Whether to keep special chars and whitespace + + Return: + A ParseResult tuple. + """ + cmdstr, sep, argstr = text.partition(' ') + + if not cmdstr and not fallback: + raise cmdexc.NoSuchCommandError("No command given") + + if self._partial_match: + cmdstr = self._completion_match(cmdstr, best_match) + + try: + cmd = objects.commands[cmdstr] + except KeyError: + if not fallback: + raise cmdexc.NoSuchCommandError( + '{}: no such command'.format(cmdstr)) + cmdline = split.split(text, keep=keep) + return ParseResult(cmd=None, args=None, cmdline=cmdline) + + args = self._split_args(cmd, argstr, keep) + if keep and args: + cmdline = [cmdstr, sep + args[0]] + args[1:] + elif keep: + cmdline = [cmdstr, sep] + else: + cmdline = [cmdstr] + args[:] + + return ParseResult(cmd=cmd, args=args, cmdline=cmdline) + + def _completion_match(self, cmdstr, best): + """Replace cmdstr with a matching completion if there's only one match. + + Args: + cmdstr: The string representing the entered command so far + + Return: + cmdstr modified to the matching completion or unmodified + """ + matches = [cmd for cmd in sorted(objects.commands, key=len) + if cmdstr in cmd] + if len(matches) == 1: + cmdstr = matches[0] + elif len(matches) > 1 and best: + cmdstr = matches[0] + return cmdstr + + def _split_args(self, cmd, argstr, keep): + """Split the arguments from an arg string. + + Args: + cmd: The command we're currently handling. + argstr: An argument string. + keep: Whether to keep special chars and whitespace + + Return: + A list containing the split strings. + """ + if not argstr: + return [] + elif cmd.maxsplit is None: + return split.split(argstr, keep=keep) + else: + # If split=False, we still want to split the flags, but not + # everything after that. + # We first split the arg string and check the index of the first + # non-flag args, then we re-split again properly. + # example: + # + # input: "--foo -v bar baz" + # first split: ['--foo', '-v', 'bar', 'baz'] + # 0 1 2 3 + # second split: ['--foo', '-v', 'bar baz'] + # (maxsplit=2) + split_args = split.simple_split(argstr, keep=keep) + flag_arg_count = 0 + for i, arg in enumerate(split_args): + arg = arg.strip() + if arg.startswith('-'): + if arg in cmd.flags_with_args: + flag_arg_count += 1 + else: + maxsplit = i + cmd.maxsplit + flag_arg_count + return split.simple_split(argstr, keep=keep, + maxsplit=maxsplit) + + # If there are only flags, we got it right on the first try + # already. + return split_args diff --git a/qutebrowser/commands/runners.py b/qutebrowser/commands/runners.py index c195a8be9..7d32c7f50 100644 --- a/qutebrowser/commands/runners.py +++ b/qutebrowser/commands/runners.py @@ -24,14 +24,12 @@ import re import contextlib from typing import TYPE_CHECKING, Callable, Dict, Iterator, Mapping, MutableMapping -import attr from PyQt5.QtCore import pyqtSlot, QUrl, QObject from qutebrowser.api import cmdutils from qutebrowser.config import config -from qutebrowser.commands import cmdexc +from qutebrowser.commands import cmdexc, parser from qutebrowser.utils import message, objreg, qtutils, usertypes, utils -from qutebrowser.misc import split, objects from qutebrowser.keyinput import macros, modeman if TYPE_CHECKING: @@ -42,16 +40,6 @@ _ReplacementFunction = Callable[['tabbedbrowser.TabbedBrowser'], str] last_command = {} -@attr.s -class ParseResult: - - """The result of parsing a commandline.""" - - cmd = attr.ib() - args = attr.ib() - cmdline = attr.ib() - - def _url(tabbed_browser): """Convenience method to get the current url.""" try: @@ -129,181 +117,6 @@ def replace_variables(win_id, arglist): return args -class CommandParser: - - """Parse qutebrowser commandline commands. - - Attributes: - _partial_match: Whether to allow partial command matches. - """ - - def __init__(self, partial_match=False): - self._partial_match = partial_match - - def _get_alias(self, text, default=None): - """Get an alias from the config. - - Args: - text: The text to parse. - default : Default value to return when alias was not found. - - Return: - The new command string if an alias was found. Default value - otherwise. - """ - parts = text.strip().split(maxsplit=1) - aliases = config.cache['aliases'] - if parts[0] not in aliases: - return default - alias = aliases[parts[0]] - - try: - new_cmd = '{} {}'.format(alias, parts[1]) - except IndexError: - new_cmd = alias - if text.endswith(' '): - new_cmd += ' ' - return new_cmd - - def _parse_all_gen(self, text, *args, aliases=True, **kwargs): - """Split a command on ;; and parse all parts. - - If the first command in the commandline is a non-split one, it only - returns that. - - Args: - text: Text to parse. - aliases: Whether to handle aliases. - *args/**kwargs: Passed to parse(). - - Yields: - ParseResult tuples. - """ - text = text.strip().lstrip(':').strip() - if not text: - raise cmdexc.NoSuchCommandError("No command given") - - if aliases: - text = self._get_alias(text, text) - - if ';;' in text: - # Get the first command and check if it doesn't want to have ;; - # split. - first = text.split(';;')[0] - result = self.parse(first, *args, **kwargs) - if result.cmd.no_cmd_split: - sub_texts = [text] - else: - sub_texts = [e.strip() for e in text.split(';;')] - else: - sub_texts = [text] - for sub in sub_texts: - yield self.parse(sub, *args, **kwargs) - - def parse_all(self, *args, **kwargs): - """Wrapper over _parse_all_gen.""" - return list(self._parse_all_gen(*args, **kwargs)) - - def parse(self, text, *, fallback=False, keep=False): - """Split the commandline text into command and arguments. - - Args: - text: Text to parse. - fallback: Whether to do a fallback splitting when the command was - unknown. - keep: Whether to keep special chars and whitespace - - Return: - A ParseResult tuple. - """ - cmdstr, sep, argstr = text.partition(' ') - - if not cmdstr and not fallback: - raise cmdexc.NoSuchCommandError("No command given") - - if self._partial_match: - cmdstr = self._completion_match(cmdstr) - - try: - cmd = objects.commands[cmdstr] - except KeyError: - if not fallback: - raise cmdexc.NoSuchCommandError( - '{}: no such command'.format(cmdstr)) - cmdline = split.split(text, keep=keep) - return ParseResult(cmd=None, args=None, cmdline=cmdline) - - args = self._split_args(cmd, argstr, keep) - if keep and args: - cmdline = [cmdstr, sep + args[0]] + args[1:] - elif keep: - cmdline = [cmdstr, sep] - else: - cmdline = [cmdstr] + args[:] - - return ParseResult(cmd=cmd, args=args, cmdline=cmdline) - - def _completion_match(self, cmdstr): - """Replace cmdstr with a matching completion if there's only one match. - - Args: - cmdstr: The string representing the entered command so far - - Return: - cmdstr modified to the matching completion or unmodified - """ - matches = [cmd for cmd in sorted(objects.commands, key=len) - if cmdstr in cmd] - if len(matches) == 1: - cmdstr = matches[0] - elif len(matches) > 1 and config.val.completion.use_best_match: - cmdstr = matches[0] - return cmdstr - - def _split_args(self, cmd, argstr, keep): - """Split the arguments from an arg string. - - Args: - cmd: The command we're currently handling. - argstr: An argument string. - keep: Whether to keep special chars and whitespace - - Return: - A list containing the split strings. - """ - if not argstr: - return [] - elif cmd.maxsplit is None: - return split.split(argstr, keep=keep) - else: - # If split=False, we still want to split the flags, but not - # everything after that. - # We first split the arg string and check the index of the first - # non-flag args, then we re-split again properly. - # example: - # - # input: "--foo -v bar baz" - # first split: ['--foo', '-v', 'bar', 'baz'] - # 0 1 2 3 - # second split: ['--foo', '-v', 'bar baz'] - # (maxsplit=2) - split_args = split.simple_split(argstr, keep=keep) - flag_arg_count = 0 - for i, arg in enumerate(split_args): - arg = arg.strip() - if arg.startswith('-'): - if arg in cmd.flags_with_args: - flag_arg_count += 1 - else: - maxsplit = i + cmd.maxsplit + flag_arg_count - return split.simple_split(argstr, keep=keep, - maxsplit=maxsplit) - - # If there are only flags, we got it right on the first try - # already. - return split_args - - class AbstractCommandRunner(QObject): """Abstract base class for CommandRunner.""" @@ -328,7 +141,7 @@ class CommandRunner(AbstractCommandRunner): def __init__(self, win_id, partial_match=False, parent=None): super().__init__(parent) - self._parser = CommandParser(partial_match=partial_match) + self._parser = parser.CommandParser(partial_match=partial_match) self._win_id = win_id @contextlib.contextmanager @@ -358,7 +171,8 @@ class CommandRunner(AbstractCommandRunner): parsed = None with self._handle_error(safely): - parsed = self._parser.parse_all(text) + parsed = self._parser.parse_all( + text, best_match=config.val.completion.use_best_match) if parsed is None: return diff --git a/qutebrowser/completion/completer.py b/qutebrowser/completion/completer.py index b06611bc0..1b8e44bc1 100644 --- a/qutebrowser/completion/completer.py +++ b/qutebrowser/completion/completer.py @@ -23,7 +23,7 @@ import attr from PyQt5.QtCore import pyqtSlot, QObject, QTimer from qutebrowser.config import config -from qutebrowser.commands import runners +from qutebrowser.commands import parser from qutebrowser.misc import objects from qutebrowser.utils import log, utils, debug, objreg from qutebrowser.completion.models import miscmodels @@ -135,8 +135,7 @@ class Completer(QObject): if not text or not text.strip(): # Only ":", empty part under the cursor with nothing before/after return [], '', [] - parser = runners.CommandParser() - result = parser.parse(text, fallback=True, keep=True) + result = parser.CommandParser().parse(text, fallback=True, keep=True) parts = [x for x in result.cmdline if x] pos = self._cmd.cursorPosition() - len(self._cmd.prefix()) pos = min(pos, len(text)) # Qt treats 2-byte UTF-16 chars as 2 chars diff --git a/qutebrowser/completion/models/configmodel.py b/qutebrowser/completion/models/configmodel.py index b6337bdbd..2fbdae2ad 100644 --- a/qutebrowser/completion/models/configmodel.py +++ b/qutebrowser/completion/models/configmodel.py @@ -21,7 +21,7 @@ from qutebrowser.config import configdata, configexc from qutebrowser.completion.models import completionmodel, listcategory, util -from qutebrowser.commands import runners, cmdexc +from qutebrowser.commands import parser, cmdexc from qutebrowser.keyinput import keyutils @@ -117,9 +117,8 @@ def _bind_current_default(key, info): cmd_text = info.keyconf.get_command(seq, 'normal') if cmd_text: - parser = runners.CommandParser() try: - cmd = parser.parse(cmd_text).cmd + cmd = parser.CommandParser().parse(cmd_text).cmd except cmdexc.NoSuchCommandError: data.append((cmd_text, '(Current) Invalid command!', key)) else: @@ -127,8 +126,7 @@ def _bind_current_default(key, info): cmd_text = info.keyconf.get_command(seq, 'normal', default=True) if cmd_text: - parser = runners.CommandParser() - cmd = parser.parse(cmd_text).cmd + cmd = parser.CommandParser().parse(cmd_text).cmd data.append((cmd_text, '(Default) {}'.format(cmd.desc), key)) return data diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index 9af764253..fee3fec47 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -27,7 +27,7 @@ from typing import (TYPE_CHECKING, Any, Callable, Dict, Iterator, List, Mapping, from PyQt5.QtCore import pyqtSignal, QObject, QUrl -from qutebrowser.commands import cmdexc, runners +from qutebrowser.commands import cmdexc, parser from qutebrowser.config import configdata, configexc, configutils from qutebrowser.utils import utils, log, urlmatch from qutebrowser.misc import objects @@ -166,7 +166,8 @@ class KeyConfig: def _implied_cmd(self, cmdline: str) -> Optional[str]: """Return cmdline, or the implied cmd if cmdline is a set-cmd-text.""" try: - results = runners.CommandParser().parse_all(cmdline, aliases=False) + results = parser.CommandParser().parse_all( + cmdline, aliases=cache['aliases']) except cmdexc.NoSuchCommandError: return None @@ -193,8 +194,8 @@ class KeyConfig: cmd_to_keys: KeyConfig._ReverseBindings = {} bindings = self.get_bindings_for(mode) for seq, full_cmd in sorted(bindings.items()): - for cmd in full_cmd.split(';;'): - cmd = self._implied_cmd(cmd.strip()) + for cmdtext in full_cmd.split(';;'): + cmd = self._implied_cmd(cmdtext.strip()) if not cmd: continue cmd_to_keys.setdefault(cmd, []) diff --git a/tests/unit/commands/test_runners.py b/tests/unit/commands/test_parser.py similarity index 77% rename from tests/unit/commands/test_runners.py rename to tests/unit/commands/test_parser.py index 0d7f27fa7..011c1ca02 100644 --- a/tests/unit/commands/test_runners.py +++ b/tests/unit/commands/test_parser.py @@ -17,12 +17,12 @@ # You should have received a copy of the GNU General Public License # along with qutebrowser. If not, see . -"""Tests for qutebrowser.commands.runners.""" +"""Tests for qutebrowser.commands.parser.""" import pytest from qutebrowser.misc import objects -from qutebrowser.commands import runners, cmdexc +from qutebrowser.commands import parser, cmdexc class TestCommandParser: @@ -35,26 +35,26 @@ class TestCommandParser: Args: cmdline_test: A pytest fixture which provides testcases. """ - parser = runners.CommandParser() + p = parser.CommandParser() if cmdline_test.valid: - parser.parse_all(cmdline_test.cmd, aliases=False) + p.parse_all(cmdline_test.cmd) else: with pytest.raises(cmdexc.NoSuchCommandError): - parser.parse_all(cmdline_test.cmd, aliases=False) + p.parse_all(cmdline_test.cmd) def test_parse_all_with_alias(self, cmdline_test, monkeypatch, config_stub): if not cmdline_test.cmd: pytest.skip("Empty command") - config_stub.val.aliases = {'alias_name': cmdline_test.cmd} + aliases = {'alias_name': cmdline_test.cmd} - parser = runners.CommandParser() + p = parser.CommandParser() if cmdline_test.valid: - assert len(parser.parse_all("alias_name")) > 0 + assert len(p.parse_all("alias_name", aliases=aliases)) > 0 else: with pytest.raises(cmdexc.NoSuchCommandError): - parser.parse_all("alias_name") + p.parse_all("alias_name", aliases=aliases) @pytest.mark.parametrize('command', ['', ' ']) def test_parse_empty_with_alias(self, command): @@ -63,31 +63,31 @@ class TestCommandParser: See https://github.com/qutebrowser/qutebrowser/issues/1690 and https://github.com/qutebrowser/qutebrowser/issues/1773 """ - parser = runners.CommandParser() + p = parser.CommandParser() with pytest.raises(cmdexc.NoSuchCommandError): - parser.parse_all(command) + p.parse_all(command, aliases={"foo": "bar"}) @pytest.mark.parametrize('command, name, args', [ ("set-cmd-text -s :open", "set-cmd-text", ["-s", ":open"]), ("set-cmd-text :open {url:pretty}", "set-cmd-text", - [":open {url:pretty}"]), + [":open {url:pretty}"]), ("set-cmd-text -s :open -t", "set-cmd-text", ["-s", ":open -t"]), ("set-cmd-text :open -t -r {url:pretty}", "set-cmd-text", - [":open -t -r {url:pretty}"]), + [":open -t -r {url:pretty}"]), ("set-cmd-text -s :open -b", "set-cmd-text", ["-s", ":open -b"]), ("set-cmd-text :open -b -r {url:pretty}", "set-cmd-text", - [":open -b -r {url:pretty}"]), + [":open -b -r {url:pretty}"]), ("set-cmd-text -s :open -w", "set-cmd-text", - ["-s", ":open -w"]), + ["-s", ":open -w"]), ("set-cmd-text :open -w {url:pretty}", "set-cmd-text", - [":open -w {url:pretty}"]), + [":open -w {url:pretty}"]), ("set-cmd-text /", "set-cmd-text", ["/"]), ("set-cmd-text ?", "set-cmd-text", ["?"]), ("set-cmd-text :", "set-cmd-text", [":"]), ]) def test_parse_result(self, command, name, args): - parser = runners.CommandParser() - result = parser.parse_all(command, aliases=False)[0] + p = parser.CommandParser() + result = p.parse_all(command)[0] assert result.cmd.name == name assert result.args == args @@ -110,8 +110,8 @@ class TestCompletions: The same with it being disabled is tested by test_parse_all. """ - parser = runners.CommandParser(partial_match=True) - result = parser.parse('on') + p = parser.CommandParser(partial_match=True) + result = p.parse('on') assert result.cmd.name == 'one' def test_dont_use_best_match(self, config_stub): @@ -120,10 +120,10 @@ class TestCompletions: Should raise NoSuchCommandError """ config_stub.val.completion.use_best_match = False - parser = runners.CommandParser(partial_match=True) + p = parser.CommandParser(partial_match=True) with pytest.raises(cmdexc.NoSuchCommandError): - parser.parse('tw') + p.parse('tw') def test_use_best_match(self, config_stub): """Test multiple completion options with use_best_match set to true. @@ -131,7 +131,7 @@ class TestCompletions: The resulting command should be the best match """ config_stub.val.completion.use_best_match = True - parser = runners.CommandParser(partial_match=True) + p = parser.CommandParser(partial_match=True) - result = parser.parse('tw') + result = p.parse('tw', best_match=True) assert result.cmd.name == 'two' From 0b979666b6584db2ec28c0977097af60ab3a63af Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Wed, 6 Jan 2021 09:47:17 -0500 Subject: [PATCH 006/161] Remove unused imports in commands.parser --- qutebrowser/commands/parser.py | 1 - 1 file changed, 1 deletion(-) diff --git a/qutebrowser/commands/parser.py b/qutebrowser/commands/parser.py index 562b48922..1f0fb01b2 100644 --- a/qutebrowser/commands/parser.py +++ b/qutebrowser/commands/parser.py @@ -20,7 +20,6 @@ """Module for parsing commands entered into the browser.""" import attr -from PyQt5.QtCore import pyqtSlot, QUrl, QObject from qutebrowser.commands import cmdexc from qutebrowser.misc import split, objects From a7178298efe371be292d85ab0a2f1cf7943365e0 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Thu, 7 Jan 2021 08:44:15 -0500 Subject: [PATCH 007/161] Restore coverage of config.py to 100%. Test an empty/unknown command, and remove the check for an empty parse_all result (as parse_all will either throw or return a result. --- qutebrowser/config/config.py | 2 -- tests/unit/config/test_config.py | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index fee3fec47..1c1de0f82 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -171,8 +171,6 @@ class KeyConfig: except cmdexc.NoSuchCommandError: return None - if not results: - return None result = results[0] if result.cmd.name != "set-cmd-text": return cmdline diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py index b0c32c6fb..3e81833e3 100644 --- a/tests/unit/config/test_config.py +++ b/tests/unit/config/test_config.py @@ -218,6 +218,8 @@ class TestKeyConfig: "open {url:pretty}": ["go"], } ), + # Empty/unknown commands + ({"a": "", "b": "notreal"}, {}), ]) def test_get_reverse_bindings_for(self, key_config_stub, config_stub, no_bindings, bindings, expected): From 39e51e9b5082652f5ad0ada46bb3b76824a75f8e Mon Sep 17 00:00:00 2001 From: Lembrun Date: Tue, 2 Mar 2021 22:54:51 +0100 Subject: [PATCH 008/161] Changing tmpdir fixtures to the pathlib equivalent --- tests/unit/config/test_configcommands.py | 34 ++++++------- tests/unit/config/test_configfiles.py | 62 ++++++++++++------------ 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/tests/unit/config/test_configcommands.py b/tests/unit/config/test_configcommands.py index a15a6a334..f744f69ff 100644 --- a/tests/unit/config/test_configcommands.py +++ b/tests/unit/config/test_configcommands.py @@ -480,7 +480,7 @@ class TestSource: @pytest.mark.parametrize('location', ['default', 'absolute', 'relative']) @pytest.mark.parametrize('clear', [True, False]) - def test_config_source(self, tmpdir, commands, config_stub, config_tmpdir, + def test_config_source(self, tmp_path, commands, config_stub, config_tmpdir, location, clear): assert config_stub.val.content.javascript.enabled config_stub.val.search.ignore_case = 'always' @@ -489,7 +489,7 @@ class TestSource: pyfile = config_tmpdir / 'config.py' arg = None elif location == 'absolute': - pyfile = tmpdir / 'sourced.py' + pyfile = tmp_path / 'sourced.py' arg = str(pyfile) elif location == 'relative': pyfile = config_tmpdir / 'sourced.py' @@ -607,8 +607,8 @@ class TestWritePy: """Tests for :config-write-py.""" - def test_custom(self, commands, config_stub, key_config_stub, tmpdir): - confpy = tmpdir / 'config.py' + def test_custom(self, commands, config_stub, key_config_stub, tmp_path): + confpy = tmp_path / 'config.py' config_stub.val.content.javascript.enabled = True key_config_stub.bind(keyseq(',x'), 'message-info foo', mode='normal') @@ -618,8 +618,8 @@ class TestWritePy: assert "c.content.javascript.enabled = True" in lines assert "config.bind(',x', 'message-info foo')" in lines - def test_defaults(self, commands, tmpdir): - confpy = tmpdir / 'config.py' + def test_defaults(self, commands, tmp_path): + confpy = tmp_path / 'config.py' commands.config_write_py(str(confpy), defaults=True) lines = confpy.read_text('utf-8').splitlines() @@ -639,10 +639,10 @@ class TestWritePy: assert '# Autogenerated config.py' in lines @pytest.mark.posix - def test_expanduser(self, commands, monkeypatch, tmpdir): + def test_expanduser(self, commands, monkeypatch, tmp_path): """Make sure that using a path with ~/... works correctly.""" - home = tmpdir / 'home' - home.ensure(dir=True) + home = tmp_path / 'home' + home.mkdir(exist_ok=True) monkeypatch.setenv('HOME', str(home)) commands.config_write_py('~/config.py') @@ -651,9 +651,9 @@ class TestWritePy: lines = confpy.read_text('utf-8').splitlines() assert '# Autogenerated config.py' in lines - def test_existing_file(self, commands, tmpdir): - confpy = tmpdir / 'config.py' - confpy.ensure() + def test_existing_file(self, commands, tmp_path): + confpy = tmp_path / 'config.py' + confpy.touch(exist_ok=True) with pytest.raises(cmdutils.CommandError) as excinfo: commands.config_write_py(str(confpy)) @@ -661,19 +661,19 @@ class TestWritePy: expected = " already exists - use --force to overwrite!" assert str(excinfo.value).endswith(expected) - def test_existing_file_force(self, commands, tmpdir): - confpy = tmpdir / 'config.py' - confpy.ensure() + def test_existing_file_force(self, commands, tmp_path): + confpy = tmp_path / 'config.py' + confpy.touch(exist_ok=True) commands.config_write_py(str(confpy), force=True) lines = confpy.read_text('utf-8').splitlines() assert '# Autogenerated config.py' in lines - def test_oserror(self, commands, tmpdir): + def test_oserror(self, commands, tmp_path): """Test writing to a directory which does not exist.""" with pytest.raises(cmdutils.CommandError): - commands.config_write_py(str(tmpdir / 'foo' / 'config.py')) + commands.config_write_py(str(tmp_path / 'foo' / 'config.py')) def test_config_py_arg(self, commands, config_py_arg): config_py_arg.ensure() diff --git a/tests/unit/config/test_configfiles.py b/tests/unit/config/test_configfiles.py index 255ea8acc..b011d79d2 100644 --- a/tests/unit/config/test_configfiles.py +++ b/tests/unit/config/test_configfiles.py @@ -744,13 +744,13 @@ class ConfPy: """Helper class to get a confpy fixture.""" - def __init__(self, tmpdir, filename: str = "config.py"): - self._file = tmpdir / filename + def __init__(self, tmp_path, filename: str = "config.py"): + self._file = tmp_path / filename self.filename = str(self._file) def write(self, *lines): text = '\n'.join(lines) - self._file.write_text(text, 'utf-8', ensure=True) + self._file.write_text(text, 'utf-8') def read(self, error=False, warn_autoconfig=False): """Read the config.py via configfiles and check for errors.""" @@ -777,8 +777,8 @@ class ConfPy: @pytest.fixture -def confpy(tmpdir, config_tmpdir, data_tmpdir, config_stub, key_config_stub): - return ConfPy(tmpdir) +def confpy(tmp_path, config_tmpdir, data_tmpdir, config_stub, key_config_stub): + return ConfPy(tmp_path) class TestConfigPyModules: @@ -786,8 +786,8 @@ class TestConfigPyModules: pytestmark = pytest.mark.usefixtures('config_stub', 'key_config_stub') @pytest.fixture - def qbmodulepy(self, tmpdir): - return ConfPy(tmpdir, filename="qbmodule.py") + def qbmodulepy(self, tmp_path): + return ConfPy(tmp_path, filename="qbmodule.py") @pytest.fixture(autouse=True) def restore_sys_path(self): @@ -795,7 +795,7 @@ class TestConfigPyModules: yield sys.path = old_path - def test_bind_in_module(self, confpy, qbmodulepy, tmpdir): + def test_bind_in_module(self, confpy, qbmodulepy, tmp_path): qbmodulepy.write( 'def run(config):', ' config.bind(",a", "message-info foo", mode="normal")') @@ -804,9 +804,9 @@ class TestConfigPyModules: expected = {'normal': {',a': 'message-info foo'}} assert config.instance.get_obj('bindings.commands') == expected assert "qbmodule" not in sys.modules.keys() - assert tmpdir not in sys.path + assert tmp_path not in sys.path - def test_restore_sys_on_err(self, confpy, qbmodulepy, tmpdir): + def test_restore_sys_on_err(self, confpy, qbmodulepy, tmp_path): confpy.write_qbmodule() qbmodulepy.write('def run(config):', ' 1/0') @@ -815,9 +815,9 @@ class TestConfigPyModules: assert error.text == "Unhandled exception" assert isinstance(error.exception, ZeroDivisionError) assert "qbmodule" not in sys.modules.keys() - assert tmpdir not in sys.path + assert tmp_path not in sys.path - def test_fail_on_nonexistent_module(self, confpy, qbmodulepy, tmpdir): + def test_fail_on_nonexistent_module(self, confpy, qbmodulepy, tmp_path): qbmodulepy.write('def run(config):', ' pass') confpy.write('import foobar', @@ -832,13 +832,13 @@ class TestConfigPyModules: assert tblines[0] == "Traceback (most recent call last):" assert tblines[-1].endswith("Error: No module named 'foobar'") - def test_no_double_if_path_exists(self, confpy, qbmodulepy, tmpdir): - sys.path.insert(0, tmpdir) + def test_no_double_if_path_exists(self, confpy, qbmodulepy, tmp_path): + sys.path.insert(0, tmp_path) confpy.write('import sys', 'if sys.path[0] in sys.path[1:]:', ' raise Exception("Path not expected")') confpy.read() - assert sys.path.count(tmpdir) == 1 + assert sys.path.count(tmp_path) == 1 class TestConfigPy: @@ -1004,9 +1004,9 @@ class TestConfigPy: confpy.read() assert config.instance.get_obj(option)[-1] == value - def test_oserror(self, tmpdir, data_tmpdir, config_tmpdir): + def test_oserror(self, tmp_path, data_tmpdir, config_tmpdir): with pytest.raises(configexc.ConfigFileErrors) as excinfo: - configfiles.read_config_py(str(tmpdir / 'foo')) + configfiles.read_config_py(str(tmp_path / 'foo')) assert len(excinfo.value.errors) == 1 error = excinfo.value.errors[0] @@ -1154,12 +1154,12 @@ class TestConfigPy: assert error.traceback is not None @pytest.mark.parametrize('location', ['abs', 'rel']) - def test_source(self, tmpdir, confpy, location): + def test_source(self, tmp_path, confpy, location): if location == 'abs': - subfile = tmpdir / 'subfile.py' + subfile = tmp_path / 'subfile.py' arg = str(subfile) else: - subfile = tmpdir / 'config' / 'subfile.py' + subfile = tmp_path / 'config' / 'subfile.py' arg = 'subfile.py' subfile.write_text("c.content.javascript.enabled = False", @@ -1169,11 +1169,11 @@ class TestConfigPy: assert not config.instance.get_obj('content.javascript.enabled') - def test_source_configpy_arg(self, tmpdir, data_tmpdir, monkeypatch): + def test_source_configpy_arg(self, tmp_path, data_tmpdir, monkeypatch): alt_filename = 'alt-config.py' - alt_confpy_dir = tmpdir / 'alt-confpy-dir' - alt_confpy_dir.ensure(dir=True) + alt_confpy_dir = tmp_path / 'alt-confpy-dir' + alt_confpy_dir.mkdir(exist_ok=True) monkeypatch.setattr(standarddir, 'config_py', lambda: str(alt_confpy_dir / alt_filename)) @@ -1187,8 +1187,8 @@ class TestConfigPy: assert not config.instance.get_obj('content.javascript.enabled') - def test_source_errors(self, tmpdir, confpy): - subfile = tmpdir / 'config' / 'subfile.py' + def test_source_errors(self, tmp_path, confpy): + subfile = tmp_path / 'config' / 'subfile.py' subfile.write_text("c.foo = 42", encoding='utf-8') confpy.write("config.source('subfile.py')") error = confpy.read(error=True) @@ -1196,8 +1196,8 @@ class TestConfigPy: assert error.text == "While setting 'foo'" assert isinstance(error.exception, configexc.NoOptionError) - def test_source_multiple_errors(self, tmpdir, confpy): - subfile = tmpdir / 'config' / 'subfile.py' + def test_source_multiple_errors(self, tmp_path, confpy): + subfile = tmp_path / 'config' / 'subfile.py' subfile.write_text("c.foo = 42", encoding='utf-8') confpy.write("config.source('subfile.py')", "c.bar = 23") @@ -1218,8 +1218,8 @@ class TestConfigPy: assert isinstance(error.exception, FileNotFoundError) @pytest.mark.parametrize('reverse', [True, False]) - def test_source_warn_autoconfig(self, tmpdir, confpy, reverse): - subfile = tmpdir / 'config' / 'subfile.py' + def test_source_warn_autoconfig(self, tmp_path, confpy, reverse): + subfile = tmp_path / 'config' / 'subfile.py' subfile.write_text("c.content.javascript.enabled = False", encoding='utf-8') lines = [ @@ -1383,8 +1383,8 @@ class TestConfigPyWriter: expected = "config.set('opt', 'ask', 'https://www.example.com/')" assert expected in text - def test_write(self, tmpdir): - pyfile = tmpdir / 'config.py' + def test_write(self, tmp_path): + pyfile = tmp_path / 'config.py' writer = configfiles.ConfigPyWriter(options=[], bindings={}, commented=False) writer.write(str(pyfile)) From b57dfaf663f66de890e984dd814bf86a9c7a08a5 Mon Sep 17 00:00:00 2001 From: Lembrun Date: Wed, 3 Mar 2021 12:12:34 +0100 Subject: [PATCH 009/161] Replaced py.path objects by their pathlib equivalents --- tests/unit/commands/test_userscripts.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/tests/unit/commands/test_userscripts.py b/tests/unit/commands/test_userscripts.py index 48bc31c32..436e9e2a7 100644 --- a/tests/unit/commands/test_userscripts.py +++ b/tests/unit/commands/test_userscripts.py @@ -18,6 +18,7 @@ # along with qutebrowser. If not, see . import os +import pathlib import json import time import logging @@ -34,8 +35,8 @@ from qutebrowser.utils import utils class TestQtFIFOReader: @pytest.fixture - def reader(self, tmpdir, qapp): - fifo_path = str(tmpdir / 'fifo') + def reader(self, tmp_path, qapp): + fifo_path = str(tmp_path / 'fifo') os.mkfifo(fifo_path) # pylint: disable=no-member,useless-suppression reader = userscripts._QtFIFOReader(fifo_path) yield reader @@ -142,8 +143,8 @@ def test_source(qtbot, py_proc, runner): assert parsed['text'] == 'This is text' assert parsed['html'] == 'This is HTML' - assert not os.path.exists(parsed['text_file']) - assert not os.path.exists(parsed['html_file']) + assert not pathlib.Path(parsed['text_file']).exists() + assert not pathlib.Path(parsed['html_file']).exists() def test_command_with_error(qtbot, py_proc, runner, caplog): @@ -165,13 +166,13 @@ def test_command_with_error(qtbot, py_proc, runner, caplog): runner.store_html('') data = json.loads(blocker.args[0]) - assert not os.path.exists(data) + assert not pathlib.Path(data).exists() -def test_killed_command(qtbot, tmpdir, py_proc, runner, caplog): - data_file = tmpdir / 'data' +def test_killed_command(qtbot, tmp_path, py_proc, runner, caplog): + data_file = tmp_path / 'data' watcher = QFileSystemWatcher() - watcher.addPath(str(tmpdir)) + watcher.addPath(str(tmp_path)) cmd, args = py_proc(r""" import os @@ -203,13 +204,14 @@ def test_killed_command(qtbot, tmpdir, py_proc, runner, caplog): # Make sure the PID was written to the file, not just the file created time.sleep(0.5) - data = json.load(data_file) + with data_file.open() as f: + data = json.load(f) with caplog.at_level(logging.ERROR): with qtbot.wait_signal(runner.finished): os.kill(int(data['pid']), signal.SIGTERM) - assert not os.path.exists(data['text_file']) + assert not pathlib.Path(data['text_file']).exists() def test_temporary_files_failed_cleanup(caplog, qtbot, py_proc, runner): From 38311a69a898dd44ea76fd80e271f10a6b235114 Mon Sep 17 00:00:00 2001 From: Lembrun Date: Wed, 3 Mar 2021 12:59:17 +0100 Subject: [PATCH 010/161] Replaced os.path by the pathlib equivalent --- tests/unit/completion/test_models.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/unit/completion/test_models.py b/tests/unit/completion/test_models.py index 8a6b24557..15ebe7110 100644 --- a/tests/unit/completion/test_models.py +++ b/tests/unit/completion/test_models.py @@ -21,6 +21,7 @@ import collections import os +import pathlib import random import string import time @@ -426,11 +427,11 @@ def test_filesystem_completion(qtmodeltester, config_stub, info, homedir = str(local_files_path) monkeypatch.setenv('HOME', homedir) # POSIX monkeypatch.setenv('USERPROFILE', homedir) # Windows - assert os.path.expanduser('~') == homedir + assert str(pathlib.Path('~').expanduser()) == homedir base = '~' - expected_1 = os.path.join('~', 'file1.txt') - expected_2 = os.path.join('~', 'file2.txt') + expected_1 = str(pathlib.Path('~').joinpath('file1.txt')) + expected_2 = str(pathlib.Path('~').joinpath('file2.txt')) config_stub.val.completion.open_categories = ['filesystem'] model = urlmodel.url(info=info) From 260f91de5677215b23aa9a85eb1e036202b2205e Mon Sep 17 00:00:00 2001 From: Lembrun Date: Wed, 3 Mar 2021 15:35:40 +0100 Subject: [PATCH 011/161] Replaced os.path by the pathlib equivalent in unit/javascript folder --- tests/unit/javascript/conftest.py | 10 +++++----- tests/unit/javascript/stylesheet/test_stylesheet_js.py | 3 ++- tests/unit/javascript/test_greasemonkey.py | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/tests/unit/javascript/conftest.py b/tests/unit/javascript/conftest.py index 47884687d..2cddfce24 100644 --- a/tests/unit/javascript/conftest.py +++ b/tests/unit/javascript/conftest.py @@ -20,7 +20,7 @@ """pytest conftest file for javascript tests.""" import os -import os.path +import pathlib import pytest import jinja2 @@ -43,7 +43,7 @@ class JSTester: def __init__(self, tab, qtbot, config_stub): self.tab = tab self.qtbot = qtbot - loader = jinja2.FileSystemLoader(os.path.dirname(__file__)) + loader = jinja2.FileSystemLoader(pathlib.Path(__file__).parent) self._jinja_env = jinja2.Environment(loader=loader, autoescape=True) # Make sure error logging via JS fails tests config_stub.val.content.javascript.log = { @@ -86,7 +86,7 @@ class JSTester: force: Whether to force loading even if the file is invalid. """ self.load_url(QUrl.fromLocalFile( - os.path.join(os.path.dirname(__file__), path)), force) + str(pathlib.Path(__file__).parent.joinpath(path))), force) def load_url(self, url: QUrl, force: bool = False): """Load a given QUrl. @@ -108,8 +108,8 @@ class JSTester: path: The path to the JS file, relative to the qutebrowser package. expected: The value expected return from the javascript execution """ - base_path = os.path.dirname(os.path.abspath(qutebrowser.__file__)) - with open(os.path.join(base_path, path), 'r', encoding='utf-8') as f: + base_path = pathlib.Path(qutebrowser.__file__).resolve().parent + with open(pathlib.Path(base_path).joinpath(path), 'r', encoding='utf-8') as f: source = f.read() self.run(source, expected) diff --git a/tests/unit/javascript/stylesheet/test_stylesheet_js.py b/tests/unit/javascript/stylesheet/test_stylesheet_js.py index 13ec85cd5..17e46aee2 100644 --- a/tests/unit/javascript/stylesheet/test_stylesheet_js.py +++ b/tests/unit/javascript/stylesheet/test_stylesheet_js.py @@ -20,6 +20,7 @@ """Tests for stylesheet.js.""" import os +import pathlib import pytest QtWebEngineWidgets = pytest.importorskip("PyQt5.QtWebEngineWidgets") @@ -49,7 +50,7 @@ class StylesheetTester: def init_stylesheet(self, css_file="green.css"): """Initialize the stylesheet with a provided css file.""" - css_path = os.path.join(os.path.dirname(__file__), css_file) + css_path = str(pathlib.Path(__file__).parent.joinpath(css_file)) self.config_stub.val.content.user_stylesheets = css_path def set_css(self, css): diff --git a/tests/unit/javascript/test_greasemonkey.py b/tests/unit/javascript/test_greasemonkey.py index c28b9c8f7..a523a6bce 100644 --- a/tests/unit/javascript/test_greasemonkey.py +++ b/tests/unit/javascript/test_greasemonkey.py @@ -200,7 +200,7 @@ class TestForceDocumentEnd: assert script.needs_document_end_workaround() == force -def test_required_scripts_are_included(download_stub, tmpdir): +def test_required_scripts_are_included(download_stub, tmp_path): test_require_script = textwrap.dedent(""" // ==UserScript== // @name qutebrowser test userscript @@ -214,7 +214,7 @@ def test_required_scripts_are_included(download_stub, tmpdir): console.log("Script is running."); """) _save_script(test_require_script, 'requiring.user.js') - (tmpdir / 'test.js').write_text('REQUIRED SCRIPT', encoding='UTF-8') + (tmp_path / 'test.js').write_text('REQUIRED SCRIPT', encoding='UTF-8') gm_manager = greasemonkey.GreasemonkeyManager() assert len(gm_manager._in_progress_dls) == 1 From 479c6512b5b2eb0f7f9b9b041d2e3fe3a4239ae0 Mon Sep 17 00:00:00 2001 From: Lembrun Date: Wed, 3 Mar 2021 15:59:25 +0100 Subject: [PATCH 012/161] Replaced os.path by pathlib equivalent in tests/conftest.py --- tests/conftest.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index ea7381a2f..1f064649e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -22,6 +22,7 @@ """The qutebrowser test suite conftest file.""" import os +import pathlib import sys import warnings import pathlib @@ -190,8 +191,8 @@ def pytest_collection_modifyitems(config, items): def pytest_ignore_collect(path): """Ignore BDD tests if we're unable to run them.""" skip_bdd = hasattr(sys, 'frozen') - rel_path = path.relto(os.path.dirname(__file__)) - return rel_path == os.path.join('end2end', 'features') and skip_bdd + rel_path = path.relto(pathlib.Path(__file__).parent) + return rel_path == pathlib.Path('end2end').joinpath('end2end') and skip_bdd @pytest.fixture(scope='session') From cf30285b40fbac965e458efb51f376ad2812a8b4 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 3 Mar 2021 18:20:34 +0100 Subject: [PATCH 013/161] Adjust imports --- qutebrowser/commands/parser.py | 2 +- qutebrowser/commands/runners.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/qutebrowser/commands/parser.py b/qutebrowser/commands/parser.py index 0927d1940..e8efbfb42 100644 --- a/qutebrowser/commands/parser.py +++ b/qutebrowser/commands/parser.py @@ -19,7 +19,7 @@ """Module for parsing commands entered into the browser.""" -import attr +import dataclasses from qutebrowser.commands import cmdexc, command from qutebrowser.misc import split, objects diff --git a/qutebrowser/commands/runners.py b/qutebrowser/commands/runners.py index 105887b0b..80822d625 100644 --- a/qutebrowser/commands/runners.py +++ b/qutebrowser/commands/runners.py @@ -22,7 +22,6 @@ import traceback import re import contextlib -import dataclasses from typing import (TYPE_CHECKING, Callable, Dict, Iterator, Mapping, MutableMapping, List, Optional) From f72caf745185e661b08890692c3b6a03c932612a Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 3 Mar 2021 18:24:53 +0100 Subject: [PATCH 014/161] Document and rename use_best_match --- qutebrowser/commands/parser.py | 12 +++++++----- qutebrowser/commands/runners.py | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/qutebrowser/commands/parser.py b/qutebrowser/commands/parser.py index e8efbfb42..85e974965 100644 --- a/qutebrowser/commands/parser.py +++ b/qutebrowser/commands/parser.py @@ -110,7 +110,7 @@ class CommandParser: """Wrapper over _parse_all_gen.""" return list(self._parse_all_gen(*args, **kwargs)) - def parse(self, text, *, fallback=False, keep=False, best_match=False): + def parse(self, text, *, fallback=False, keep=False, use_best_match=False): """Split the commandline text into command and arguments. Args: @@ -118,6 +118,7 @@ class CommandParser: fallback: Whether to do a fallback splitting when the command was unknown. keep: Whether to keep special chars and whitespace + use_best_match: Whether to use the best match even if incomplete. Return: A ParseResult tuple. @@ -128,7 +129,7 @@ class CommandParser: raise cmdexc.NoSuchCommandError("No command given") if self._partial_match: - cmdstr = self._completion_match(cmdstr, best_match) + cmdstr = self._completion_match(cmdstr, use_best_match) try: cmd = objects.commands[cmdstr] @@ -149,11 +150,12 @@ class CommandParser: return ParseResult(cmd=cmd, args=args, cmdline=cmdline) - def _completion_match(self, cmdstr, best): + def _completion_match(self, cmdstr, use_best_match): """Replace cmdstr with a matching completion if there's only one match. Args: - cmdstr: The string representing the entered command so far + cmdstr: The string representing the entered command so far. + use_best_match: Whether to use the best match even if incomplete. Return: cmdstr modified to the matching completion or unmodified @@ -162,7 +164,7 @@ class CommandParser: if cmdstr in cmd] if len(matches) == 1: cmdstr = matches[0] - elif len(matches) > 1 and best: + elif len(matches) > 1 and use_best_match: cmdstr = matches[0] return cmdstr diff --git a/qutebrowser/commands/runners.py b/qutebrowser/commands/runners.py index 80822d625..6d4ccdfc2 100644 --- a/qutebrowser/commands/runners.py +++ b/qutebrowser/commands/runners.py @@ -173,7 +173,7 @@ class CommandRunner(AbstractCommandRunner): parsed = None with self._handle_error(safely): parsed = self._parser.parse_all( - text, best_match=config.val.completion.use_best_match) + text, use_best_match=config.val.completion.use_best_match) if parsed is None: return From ea70b091753c7b836a314d7b8a1e3ac2390c8f16 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 3 Mar 2021 18:25:46 +0100 Subject: [PATCH 015/161] Fix imports --- qutebrowser/commands/parser.py | 1 + 1 file changed, 1 insertion(+) diff --git a/qutebrowser/commands/parser.py b/qutebrowser/commands/parser.py index 85e974965..bcc075608 100644 --- a/qutebrowser/commands/parser.py +++ b/qutebrowser/commands/parser.py @@ -20,6 +20,7 @@ """Module for parsing commands entered into the browser.""" import dataclasses +from typing import Optional, List from qutebrowser.commands import cmdexc, command from qutebrowser.misc import split, objects From 570e5fac671f89e1107ec500f3e0cf740bcd5226 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 3 Mar 2021 18:42:13 +0100 Subject: [PATCH 016/161] WIP: Add type annotations for parser --- qutebrowser/commands/parser.py | 38 ++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/qutebrowser/commands/parser.py b/qutebrowser/commands/parser.py index bcc075608..ceebad57e 100644 --- a/qutebrowser/commands/parser.py +++ b/qutebrowser/commands/parser.py @@ -20,7 +20,7 @@ """Module for parsing commands entered into the browser.""" import dataclasses -from typing import Optional, List +from typing import Optional, List, Mapping, Iterator, List, Union from qutebrowser.commands import cmdexc, command from qutebrowser.misc import split, objects @@ -44,10 +44,10 @@ class CommandParser: _partial_match: Whether to allow partial command matches. """ - def __init__(self, partial_match=False): + def __init__(self, partial_match: bool = False) -> None: self._partial_match = partial_match - def _get_alias(self, text, aliases, default=None): + def _get_alias(self, text: str, aliases: Mapping[str, str], *, default: str) -> str: """Get an alias from the config. Args: @@ -72,7 +72,12 @@ class CommandParser: new_cmd += ' ' return new_cmd - def _parse_all_gen(self, text, *args, aliases=None, **kwargs): + def _parse_all_gen( + self, + text: str, + aliases: Mapping[str, str] = None, + **kwargs: bool, + ) -> Iterator[ParseResult]: """Split a command on ;; and parse all parts. If the first command in the commandline is a non-split one, it only @@ -81,7 +86,7 @@ class CommandParser: Args: text: Text to parse. aliases: A map of aliases to commands. - *args/**kwargs: Passed to parse(). + **kwargs: Passed to parse(). Yields: ParseResult tuples. @@ -91,13 +96,13 @@ class CommandParser: raise cmdexc.NoSuchCommandError("No command given") if aliases: - text = self._get_alias(text, aliases, text) + text = self._get_alias(text, aliases, default=text) if ';;' in text: # Get the first command and check if it doesn't want to have ;; # split. first = text.split(';;')[0] - result = self.parse(first, *args, **kwargs) + result = self.parse(first, **kwargs) if result.cmd.no_cmd_split: sub_texts = [text] else: @@ -105,13 +110,20 @@ class CommandParser: else: sub_texts = [text] for sub in sub_texts: - yield self.parse(sub, *args, **kwargs) + yield self.parse(first, **kwargs) - def parse_all(self, *args, **kwargs): + def parse_all(self, text: str, **kwargs: bool) -> List[ParseResult]: """Wrapper over _parse_all_gen.""" - return list(self._parse_all_gen(*args, **kwargs)) + return list(self._parse_all_gen(text, **kwargs)) - def parse(self, text, *, fallback=False, keep=False, use_best_match=False): + def parse( + self, + text: str, + *, + fallback: bool = False, + keep: bool = False, + use_best_match: bool = False, + ) -> ParseResult: """Split the commandline text into command and arguments. Args: @@ -151,7 +163,7 @@ class CommandParser: return ParseResult(cmd=cmd, args=args, cmdline=cmdline) - def _completion_match(self, cmdstr, use_best_match): + def _completion_match(self, cmdstr: str, use_best_match: bool) -> str: """Replace cmdstr with a matching completion if there's only one match. Args: @@ -169,7 +181,7 @@ class CommandParser: cmdstr = matches[0] return cmdstr - def _split_args(self, cmd, argstr, keep): + def _split_args(self, cmd: command.Command, argstr: str, keep: bool) -> List[str]: """Split the arguments from an arg string. Args: From 423e7e25bdd7de78c7a75d70bfc92171fcf8ccaf Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 5 Mar 2021 19:20:27 +0100 Subject: [PATCH 017/161] Remove blank line in cheatsheet --- doc/img/cheatsheet-big.png | Bin 779344 -> 781120 bytes doc/img/cheatsheet-small.png | Bin 30208 -> 30252 bytes misc/cheatsheet.svg | 14 ++++++-------- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/doc/img/cheatsheet-big.png b/doc/img/cheatsheet-big.png index ecd52c14e465836bd186eda931ca146fca2c9be5..75e2abb890f4b503e10851fe5f41bda43264ac66 100644 GIT binary patch delta 169531 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 z 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 delta 167979 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 diff --git a/doc/img/cheatsheet-small.png b/doc/img/cheatsheet-small.png index 0dc01e8b44ec696148b7628678b84e6e03d0cd0f..e97d63367a963bfde573d718261d078b8303c797 100644 GIT binary patch delta 29275 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 - set setting (sl: temp)sk - bind keySs - show settings Date: Sun, 7 Mar 2021 17:52:42 +0100 Subject: [PATCH 018/161] Added utils/resources.py and changed calls to util.read_file* --- qutebrowser/app.py | 7 +- qutebrowser/browser/network/pac.py | 4 +- qutebrowser/browser/pdfjs.py | 4 +- qutebrowser/browser/qutescheme.py | 14 +- qutebrowser/browser/webengine/webenginetab.py | 12 +- qutebrowser/browser/webkit/webkittab.py | 4 +- qutebrowser/config/configdata.py | 4 +- qutebrowser/utils/jinja.py | 8 +- qutebrowser/utils/resources.py | 148 ++++++++++++++++++ qutebrowser/utils/utils.py | 99 ------------ qutebrowser/utils/version.py | 4 +- tests/unit/browser/test_pdfjs.py | 2 +- tests/unit/browser/test_qutescheme.py | 13 +- tests/unit/utils/test_jinja.py | 6 +- tests/unit/utils/test_utils.py | 20 +-- tests/unit/utils/test_version.py | 6 +- 16 files changed, 203 insertions(+), 152 deletions(-) create mode 100644 qutebrowser/utils/resources.py diff --git a/qutebrowser/app.py b/qutebrowser/app.py index 5a9c956b0..444d3e69e 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -66,7 +66,8 @@ from qutebrowser.misc import (ipc, savemanager, sessions, crashsignal, earlyinit, sql, cmdhistory, backendproblem, objects, quitter) from qutebrowser.utils import (log, version, message, utils, urlutils, objreg, - usertypes, standarddir, error, qtutils, debug) + resources, usertypes, standarddir, + error, qtutils, debug) # pylint: disable=unused-import # We import those to run the cmdutils.register decorators. from qutebrowser.mainwindow.statusbar import command @@ -86,7 +87,7 @@ def run(args): log.init.debug("Initializing directories...") standarddir.init(args) - utils.preload_resources() + resources.preload_resources() log.init.debug("Initializing config...") configinit.early_init(args) @@ -395,7 +396,7 @@ def _open_special_pages(args): return try: - changelog = utils.read_file('html/doc/changelog.html') + changelog = resources.read_file('html/doc/changelog.html') except OSError as e: log.init.warning(f"Not showing changelog due to {e}") return diff --git a/qutebrowser/browser/network/pac.py b/qutebrowser/browser/network/pac.py index 4a4768dde..5ade5d4ac 100644 --- a/qutebrowser/browser/network/pac.py +++ b/qutebrowser/browser/network/pac.py @@ -29,7 +29,7 @@ from PyQt5.QtNetwork import (QNetworkProxy, QNetworkRequest, QHostInfo, QHostAddress) from PyQt5.QtQml import QJSEngine, QJSValue -from qutebrowser.utils import log, utils, qtutils +from qutebrowser.utils import log, utils, qtutils, resources class ParseProxyError(Exception): @@ -190,7 +190,7 @@ class PACResolver: self._engine.globalObject().setProperty( "PAC", self._engine.newQObject(self._ctx)) self._evaluate(_PACContext.JS_DEFINITIONS, "pac_js_definitions") - self._evaluate(utils.read_file("javascript/pac_utils.js"), "pac_utils") + self._evaluate(resources.read_file("javascript/pac_utils.js"), "pac_utils") proxy_config = self._engine.newObject() proxy_config.setProperty("bindings", self._engine.newObject()) self._engine.globalObject().setProperty("ProxyConfig", proxy_config) diff --git a/qutebrowser/browser/pdfjs.py b/qutebrowser/browser/pdfjs.py index 97074767b..c180c55f8 100644 --- a/qutebrowser/browser/pdfjs.py +++ b/qutebrowser/browser/pdfjs.py @@ -24,7 +24,7 @@ import os from PyQt5.QtCore import QUrl, QUrlQuery -from qutebrowser.utils import utils, javascript, jinja, standarddir, log +from qutebrowser.utils import resources, javascript, jinja, standarddir, log from qutebrowser.config import config @@ -149,7 +149,7 @@ def get_pdfjs_res_and_path(path): if content is None: res_path = '3rdparty/pdfjs/{}'.format(path) try: - content = utils.read_file_binary(res_path) + content = resources.read_file_binary(res_path) except FileNotFoundError: raise PDFJSNotFound(path) from None except OSError as e: diff --git a/qutebrowser/browser/qutescheme.py b/qutebrowser/browser/qutescheme.py index 169c92325..cb04586ff 100644 --- a/qutebrowser/browser/qutescheme.py +++ b/qutebrowser/browser/qutescheme.py @@ -40,7 +40,7 @@ import qutebrowser from qutebrowser.browser import pdfjs, downloads, history from qutebrowser.config import config, configdata, configexc from qutebrowser.utils import (version, utils, jinja, log, message, docutils, - objreg, standarddir) + resources, objreg, standarddir) from qutebrowser.qt import sip @@ -271,7 +271,7 @@ def qute_javascript(url: QUrl) -> _HandlerRet: path = url.path() if path: path = "javascript" + os.sep.join(path.split('/')) - return 'text/html', utils.read_file(path) + return 'text/html', resources.read_file(path) else: raise UrlInvalidError("No file specified") @@ -345,14 +345,14 @@ def qute_log(url: QUrl) -> _HandlerRet: @add_handler('gpl') def qute_gpl(_url: QUrl) -> _HandlerRet: """Handler for qute://gpl. Return HTML content as string.""" - return 'text/html', utils.read_file('html/license.html') + return 'text/html', resources.read_file('html/license.html') def _asciidoc_fallback_path(html_path: str) -> Optional[str]: """Fall back to plaintext asciidoc if the HTML is unavailable.""" path = html_path.replace('.html', '.asciidoc') try: - return utils.read_file(path) + return resources.read_file(path) except OSError: return None @@ -372,14 +372,14 @@ def qute_help(url: QUrl) -> _HandlerRet: path = 'html/doc/{}'.format(urlpath) if not urlpath.endswith('.html'): try: - bdata = utils.read_file_binary(path) + bdata = resources.read_file_binary(path) except OSError as e: raise SchemeOSError(e) mimetype = utils.guess_mimetype(urlpath) return mimetype, bdata try: - data = utils.read_file(path) + data = resources.read_file(path) except OSError: asciidoc = _asciidoc_fallback_path(path) @@ -575,7 +575,7 @@ def qute_resource(url: QUrl) -> _HandlerRet: path = url.path().lstrip('/') mimetype = utils.guess_mimetype(path, fallback=True) try: - data = utils.read_file_binary(path) + data = resources.read_file_binary(path) except FileNotFoundError as e: raise NotFoundError(str(e)) return mimetype, data diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 9f129b609..a2f6682de 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -37,7 +37,7 @@ from qutebrowser.browser.webengine import (webview, webengineelem, tabhistory, webenginesettings, certificateerror) from qutebrowser.misc import miscwidgets, objects from qutebrowser.utils import (usertypes, qtutils, log, javascript, utils, - message, jinja, debug, version) + resources, message, jinja, debug, version) from qutebrowser.qt import sip @@ -1036,9 +1036,9 @@ class _WebEngineScripts(QObject): """Initialize global qutebrowser JavaScript.""" js_code = javascript.wrap_global( 'scripts', - utils.read_file('javascript/scroll.js'), - utils.read_file('javascript/webelem.js'), - utils.read_file('javascript/caret.js'), + resources.read_file('javascript/scroll.js'), + resources.read_file('javascript/webelem.js'), + resources.read_file('javascript/caret.js'), ) # FIXME:qtwebengine what about subframes=True? self._inject_js('js', js_code, subframes=True) @@ -1059,7 +1059,7 @@ class _WebEngineScripts(QObject): css = shared.get_user_stylesheet() js_code = javascript.wrap_global( 'stylesheet', - utils.read_file('javascript/stylesheet.js'), + resources.read_file('javascript/stylesheet.js'), javascript.assemble('stylesheet', 'set_css', css), ) self._inject_js('stylesheet', js_code, subframes=True) @@ -1174,7 +1174,7 @@ class _WebEngineScripts(QObject): for quirk in quirks: if not quirk.predicate: continue - src = utils.read_file(f'javascript/quirks/{quirk.filename}.user.js') + src = resources.read_file(f'javascript/quirks/{quirk.filename}.user.js') self._inject_js( f'quirk_{quirk.filename}', src, diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 066cce348..9f15e9fb4 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -34,7 +34,7 @@ from PyQt5.QtPrintSupport import QPrinter from qutebrowser.browser import browsertab, shared from qutebrowser.browser.webkit import (webview, tabhistory, webkitelem, webkitsettings) -from qutebrowser.utils import qtutils, usertypes, utils, log, debug +from qutebrowser.utils import qtutils, usertypes, utils, log, debug, resources from qutebrowser.keyinput import modeman from qutebrowser.qt import sip @@ -227,7 +227,7 @@ class WebKitCaret(browsertab.AbstractCaret): # true in caret mode. if self._selection_state is browsertab.SelectionState.none: self._widget.page().currentFrame().evaluateJavaScript( - utils.read_file('javascript/position_caret.js')) + resources.read_file('javascript/position_caret.js')) @pyqtSlot(usertypes.KeyMode) def _on_mode_left(self, _mode): diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 6cead0732..ec4efc375 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -30,7 +30,7 @@ import functools import dataclasses from qutebrowser.config import configtypes -from qutebrowser.utils import usertypes, qtutils, utils +from qutebrowser.utils import usertypes, qtutils, utils, resources from qutebrowser.misc import debugcachestats DATA = cast(Mapping[str, 'Option'], None) @@ -272,4 +272,4 @@ def is_valid_prefix(prefix: str) -> bool: def init() -> None: """Initialize configdata from the YAML file.""" global DATA, MIGRATIONS - DATA, MIGRATIONS = _read_yaml(utils.read_file('config/configdata.yml')) + DATA, MIGRATIONS = _read_yaml(resources.read_file('config/configdata.yml')) diff --git a/qutebrowser/utils/jinja.py b/qutebrowser/utils/jinja.py index e5cd853aa..61d8ccdad 100644 --- a/qutebrowser/utils/jinja.py +++ b/qutebrowser/utils/jinja.py @@ -31,7 +31,7 @@ import jinja2 import jinja2.nodes from PyQt5.QtCore import QUrl -from qutebrowser.utils import utils, urlutils, log, qtutils +from qutebrowser.utils import utils, urlutils, log, qtutils, resources from qutebrowser.misc import debugcachestats @@ -56,7 +56,7 @@ html_fallback = """ class Loader(jinja2.BaseLoader): - """Jinja loader which uses utils.read_file to load templates. + """Jinja loader which uses resources.read_file to load templates. Attributes: _subdir: The subdirectory to find templates in. @@ -72,7 +72,7 @@ class Loader(jinja2.BaseLoader): ) -> Tuple[str, str, Callable[[], bool]]: path = os.path.join(self._subdir, template) try: - source = utils.read_file(path) + source = resources.read_file(path) except OSError as e: source = html_fallback.replace("%ERROR%", html.escape(str(e))) source = source.replace("%FILE%", html.escape(template)) @@ -119,7 +119,7 @@ class Environment(jinja2.Environment): def _data_url(self, path: str) -> str: """Get a data: url for the broken qutebrowser logo.""" - data = utils.read_file_binary(path) + data = resources.read_file_binary(path) mimetype = utils.guess_mimetype(path) return urlutils.data_url(mimetype, data).toString() diff --git a/qutebrowser/utils/resources.py b/qutebrowser/utils/resources.py new file mode 100644 index 000000000..a1c5d7f85 --- /dev/null +++ b/qutebrowser/utils/resources.py @@ -0,0 +1,148 @@ +# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et: + +# Copyright 2014-2021 Florian Bruhin (The Compiler) +# +# This file is part of qutebrowser. +# +# qutebrowser is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# qutebrowser is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with qutebrowser. If not, see . + +"""Resources related utilities""" + +import os +import os.path +import io +import re +import sys +import enum +import json +import datetime +import traceback +import functools +import contextlib +import posixpath +import shlex +import mimetypes +import pathlib +import ctypes +import ctypes.util +from typing import (Any, Callable, IO, Iterator, Optional, + Sequence, Tuple, Type, Union, + Iterable, TypeVar, TYPE_CHECKING) + + +# We cannot use the stdlib version on 3.7-3.8 because we need the files() API. +if sys.version_info >= (3, 9): + import importlib.resources as importlib_resources +else: # pragma: no cover + import importlib_resources + +import qutebrowser +_resource_cache = {} + +def _resource_path(filename: str) -> pathlib.Path: + """Get a pathlib.Path object for a resource.""" + assert not posixpath.isabs(filename), filename + assert os.path.pardir not in filename.split(posixpath.sep), filename + + if hasattr(sys, 'frozen'): + # For PyInstaller, where we can't store resource files in a qutebrowser/ folder + # because the executable is already named "qutebrowser" (at least on macOS). + return pathlib.Path(sys.executable).parent / filename + + return importlib_resources.files(qutebrowser) / filename + +@contextlib.contextmanager +def _resource_keyerror_workaround() -> Iterator[None]: + """Re-raise KeyErrors as FileNotFoundErrors. + + WORKAROUND for zipfile.Path resources raising KeyError when a file was notfound: + https://bugs.python.org/issue43063 + + Only needed for Python 3.8 and 3.9. + """ + try: + yield + except KeyError as e: + raise FileNotFoundError(str(e)) + + +def _glob_resources( + resource_path: pathlib.Path, + subdir: str, + ext: str, +) -> Iterable[str]: + """Find resources with the given extension. + + Yields a resource name like "html/log.html" (as string). + """ + assert '*' not in ext, ext + assert ext.startswith('.'), ext + path = resource_path / subdir + + if isinstance(resource_path, pathlib.Path): + for full_path in path.glob(f'*{ext}'): # . is contained in ext + yield full_path.relative_to(resource_path).as_posix() + else: # zipfile.Path or importlib_resources compat object + # Unfortunately, we can't tell mypy about resource_path being of type + # Union[pathlib.Path, zipfile.Path] because we set "python_version = 3.6" in + # .mypy.ini, but the zipfiel stubs (correctly) only declare zipfile.Path with + # Python 3.8... + assert path.is_dir(), path # type: ignore[unreachable] + for subpath in path.iterdir(): + if subpath.name.endswith(ext): + yield posixpath.join(subdir, subpath.name) + + +def preload_resources() -> None: + """Load resource files into the cache.""" + resource_path = _resource_path('') + for subdir, ext in [ + ('html', '.html'), + ('javascript', '.js'), + ('javascript/quirks', '.js'), + ]: + for name in _glob_resources(resource_path, subdir, ext): + _resource_cache[name] = read_file(name) + + +def read_file(filename: str) -> str: + """Get the contents of a file contained with qutebrowser. + + Args: + filename: The filename to open as string. + + Return: + The file contents as string. + """ + if filename in _resource_cache: + return _resource_cache[filename] + + path = _resource_path(filename) + with _resource_keyerror_workaround(): + return path.read_text(encoding='utf-8') + + +def read_file_binary(filename: str) -> bytes: + """Get the contents of a binary file contained with qutebrowser. + + Args: + filename: The filename to open as string. + + Return: + The file contents as a bytes object. + """ + path = _resource_path(filename) + with _resource_keyerror_workaround(): + return path.read_bytes() + diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py index 698a608ef..93bf17ff5 100644 --- a/qutebrowser/utils/utils.py +++ b/qutebrowser/utils/utils.py @@ -195,105 +195,6 @@ def compact_text(text: str, elidelength: int = None) -> str: out = elide(out, elidelength) return out - -def _resource_path(filename: str) -> pathlib.Path: - """Get a pathlib.Path object for a resource.""" - assert not posixpath.isabs(filename), filename - assert os.path.pardir not in filename.split(posixpath.sep), filename - - if hasattr(sys, 'frozen'): - # For PyInstaller, where we can't store resource files in a qutebrowser/ folder - # because the executable is already named "qutebrowser" (at least on macOS). - return pathlib.Path(sys.executable).parent / filename - - return importlib_resources.files(qutebrowser) / filename - - -@contextlib.contextmanager -def _resource_keyerror_workaround() -> Iterator[None]: - """Re-raise KeyErrors as FileNotFoundErrors. - - WORKAROUND for zipfile.Path resources raising KeyError when a file was notfound: - https://bugs.python.org/issue43063 - - Only needed for Python 3.8 and 3.9. - """ - try: - yield - except KeyError as e: - raise FileNotFoundError(str(e)) - - -def _glob_resources( - resource_path: pathlib.Path, - subdir: str, - ext: str, -) -> Iterable[str]: - """Find resources with the given extension. - - Yields a resource name like "html/log.html" (as string). - """ - assert '*' not in ext, ext - assert ext.startswith('.'), ext - path = resource_path / subdir - - if isinstance(resource_path, pathlib.Path): - for full_path in path.glob(f'*{ext}'): # . is contained in ext - yield full_path.relative_to(resource_path).as_posix() - else: # zipfile.Path or importlib_resources compat object - # Unfortunately, we can't tell mypy about resource_path being of type - # Union[pathlib.Path, zipfile.Path] because we set "python_version = 3.6" in - # .mypy.ini, but the zipfiel stubs (correctly) only declare zipfile.Path with - # Python 3.8... - assert path.is_dir(), path # type: ignore[unreachable] - for subpath in path.iterdir(): - if subpath.name.endswith(ext): - yield posixpath.join(subdir, subpath.name) - - -def preload_resources() -> None: - """Load resource files into the cache.""" - resource_path = _resource_path('') - for subdir, ext in [ - ('html', '.html'), - ('javascript', '.js'), - ('javascript/quirks', '.js'), - ]: - for name in _glob_resources(resource_path, subdir, ext): - _resource_cache[name] = read_file(name) - - -def read_file(filename: str) -> str: - """Get the contents of a file contained with qutebrowser. - - Args: - filename: The filename to open as string. - - Return: - The file contents as string. - """ - if filename in _resource_cache: - return _resource_cache[filename] - - path = _resource_path(filename) - with _resource_keyerror_workaround(): - return path.read_text(encoding='utf-8') - - -def read_file_binary(filename: str) -> bytes: - """Get the contents of a binary file contained with qutebrowser. - - Args: - filename: The filename to open as string. - - Return: - The file contents as a bytes object. - """ - path = _resource_path(filename) - with _resource_keyerror_workaround(): - return path.read_bytes() - - def parse_version(version: str) -> VersionNumber: """Parse a version string.""" ver, _suffix = QVersionNumber.fromString(version) diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py index 0e3927948..4e8f0d782 100644 --- a/qutebrowser/utils/version.py +++ b/qutebrowser/utils/version.py @@ -53,7 +53,7 @@ except ImportError: # pragma: no cover import qutebrowser -from qutebrowser.utils import log, utils, standarddir, usertypes, message +from qutebrowser.utils import log, utils, standarddir, usertypes, message, resources from qutebrowser.misc import objects, earlyinit, sql, httpclient, pastebin, elf from qutebrowser.browser import pdfjs from qutebrowser.config import config, websettings @@ -218,7 +218,7 @@ def _git_str() -> Optional[str]: return commit # If that fails, check the git-commit-id file. try: - return utils.read_file('git-commit-id') + return resources.read_file('git-commit-id') except (OSError, ImportError): return None diff --git a/tests/unit/browser/test_pdfjs.py b/tests/unit/browser/test_pdfjs.py index 788209d6f..86b875be5 100644 --- a/tests/unit/browser/test_pdfjs.py +++ b/tests/unit/browser/test_pdfjs.py @@ -77,7 +77,7 @@ class TestResources: @pytest.fixture def read_file_mock(self, mocker): - return mocker.patch.object(pdfjs.utils, 'read_file_binary', autospec=True) + return mocker.patch.object(pdfjs.resources, 'read_file_binary', autospec=True) def test_get_pdfjs_res_system(self, read_system_mock): read_system_mock.return_value = (b'content', 'path') diff --git a/tests/unit/browser/test_qutescheme.py b/tests/unit/browser/test_qutescheme.py index 213df4e0c..2ae939596 100644 --- a/tests/unit/browser/test_qutescheme.py +++ b/tests/unit/browser/test_qutescheme.py @@ -28,7 +28,7 @@ from PyQt5.QtCore import QUrl, QUrlQuery import pytest from qutebrowser.browser import qutescheme, pdfjs, downloads -from qutebrowser.utils import utils +from qutebrowser.utils import resources class TestJavascriptHandler: @@ -43,15 +43,15 @@ class TestJavascriptHandler: @pytest.fixture(autouse=True) def patch_read_file(self, monkeypatch): - """Patch utils.read_file to return few fake JS files.""" + """Patch resources.read_file to return few fake JS files.""" def _read_file(path): - """Faked utils.read_file.""" + """Faked resources.read_file.""" for filename, content in self.js_files: if path == os.path.join('javascript', filename): return content raise OSError("File not found {}!".format(path)) - monkeypatch.setattr(utils, 'read_file', _read_file) + monkeypatch.setattr(resources, 'read_file', _read_file) @pytest.mark.parametrize("filename, content", js_files) def test_qutejavascript(self, filename, content): @@ -165,8 +165,9 @@ class TestHelpHandler: assert path == name return data - monkeypatch.setattr(qutescheme.utils, 'read_file', _read_file) - monkeypatch.setattr(qutescheme.utils, 'read_file_binary', _read_file_binary) + monkeypatch.setattr(qutescheme.resources, 'read_file', _read_file) + monkeypatch.setattr(qutescheme.resources, + 'read_file_binary', _read_file_binary) return _patch def test_unknown_file_type(self, data_patcher): diff --git a/tests/unit/utils/test_jinja.py b/tests/unit/utils/test_jinja.py index 5555560bf..0ef03725c 100644 --- a/tests/unit/utils/test_jinja.py +++ b/tests/unit/utils/test_jinja.py @@ -33,7 +33,7 @@ from qutebrowser.config import configexc @pytest.fixture(autouse=True) def patch_read_file(monkeypatch): - """pytest fixture to patch utils.read_file.""" + """pytest fixture to patch resources.read_file.""" def _read_file(path): """A read_file which returns a simple template if the path is right.""" if path == os.path.join('html', 'test.html'): @@ -55,8 +55,8 @@ def patch_read_file(monkeypatch): else: raise OSError("Invalid path {}!".format(path)) - monkeypatch.setattr(jinja.utils, 'read_file', _read_file) - monkeypatch.setattr(jinja.utils, 'read_file_binary', _read_file_binary) + monkeypatch.setattr(jinja.resources, 'read_file', _read_file) + monkeypatch.setattr(jinja.resources, 'read_file_binary', _read_file_binary) def test_simple_template(): diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py index 4cf60943c..5fb61bb2f 100644 --- a/tests/unit/utils/test_utils.py +++ b/tests/unit/utils/test_utils.py @@ -39,7 +39,7 @@ import yaml import qutebrowser import qutebrowser.utils # for test_qualname -from qutebrowser.utils import utils, version, usertypes +from qutebrowser.utils import utils, version, usertypes, resources class TestVersionNumber: @@ -185,29 +185,29 @@ class TestReadFile: raise utils.Unreachable(request.param) def test_glob_resources(self, resource_root): - files = sorted(utils._glob_resources(resource_root, 'html', '.html')) + files = sorted(resources._glob_resources(resource_root, 'html', '.html')) assert files == ['html/test1.html', 'html/test2.html'] def test_glob_resources_subdir(self, resource_root): - files = sorted(utils._glob_resources(resource_root, 'html/subdir', '.html')) + files = sorted(resources._glob_resources(resource_root, 'html/subdir', '.html')) assert files == ['html/subdir/subdir-file.html'] def test_readfile(self): """Read a test file.""" - content = utils.read_file(os.path.join('utils', 'testfile')) + content = resources.read_file(os.path.join('utils', 'testfile')) assert content.splitlines()[0] == "Hello World!" @pytest.mark.parametrize('filename', ['javascript/scroll.js', 'html/error.html']) def test_read_cached_file(self, mocker, filename): - utils.preload_resources() - m = mocker.patch('qutebrowser.utils.utils.importlib_resources.files') - utils.read_file(filename) + resources.preload_resources() + m = mocker.patch('qutebrowser.utils.resources.importlib_resources.files') + resources.read_file(filename) m.assert_not_called() def test_readfile_binary(self): """Read a test file in binary mode.""" - content = utils.read_file_binary(os.path.join('utils', 'testfile')) + content = resources.read_file_binary(os.path.join('utils', 'testfile')) assert content.splitlines()[0] == b"Hello World!" @pytest.mark.parametrize('name', ['read_file', 'read_file_binary']) @@ -233,10 +233,10 @@ class TestReadFile: return self if fake_exception is not None: - monkeypatch.setattr(utils.importlib_resources, 'files', + monkeypatch.setattr(resources.importlib_resources, 'files', lambda _pkg: BrokenFileFake(fake_exception)) - meth = getattr(utils, name) + meth = getattr(resources, name) with pytest.raises(FileNotFoundError): meth('doesnotexist') diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py index f846c91ac..f5b593231 100644 --- a/tests/unit/utils/test_version.py +++ b/tests/unit/utils/test_version.py @@ -357,14 +357,14 @@ class TestGitStr: @pytest.fixture def commit_file_mock(self, mocker): - """Fixture providing a mock for utils.read_file for git-commit-id. + """Fixture providing a mock for resources.read_file for git-commit-id. On fixture teardown, it makes sure it got called with git-commit-id as argument. """ mocker.patch('qutebrowser.utils.version.subprocess', side_effect=AssertionError) - m = mocker.patch('qutebrowser.utils.version.utils.read_file') + m = mocker.patch('qutebrowser.utils.version.resources.read_file') yield m m.assert_called_with('git-commit-id') @@ -413,7 +413,7 @@ class TestGitStr: """Test with things raising OSError.""" m = mocker.patch('qutebrowser.utils.version.os') m.path.join.side_effect = OSError - mocker.patch('qutebrowser.utils.version.utils.read_file', + mocker.patch('qutebrowser.utils.version.resources.read_file', side_effect=OSError) with caplog.at_level(logging.ERROR, 'misc'): assert version._git_str() is None From 8130c0316a737ddea1624351fa60b1812d0d2015 Mon Sep 17 00:00:00 2001 From: Lembrun Date: Sun, 7 Mar 2021 18:50:08 +0100 Subject: [PATCH 019/161] Fixed linting --- qutebrowser/browser/webkit/webkittab.py | 2 +- qutebrowser/utils/utils.py | 17 +++++------------ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index a1d3e5574..df3491ec2 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -33,7 +33,7 @@ from PyQt5.QtPrintSupport import QPrinter from qutebrowser.browser import browsertab, shared from qutebrowser.browser.webkit import (webview, tabhistory, webkitelem, - webkitsettings) + webkitsettings, webkitinspector) from qutebrowser.utils import qtutils, usertypes, utils, log, debug, resources from qutebrowser.keyinput import modeman from qutebrowser.qt import sip diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py index 93bf17ff5..a2c935ff0 100644 --- a/qutebrowser/utils/utils.py +++ b/qutebrowser/utils/utils.py @@ -30,14 +30,13 @@ import datetime import traceback import functools import contextlib -import posixpath import shlex import mimetypes -import pathlib import ctypes import ctypes.util -from typing import (Any, Callable, IO, Iterator, Optional, Sequence, Tuple, Type, Union, - Iterable, TypeVar, TYPE_CHECKING) +from typing import (Any, Callable, IO, Iterator, + Optional, Sequence, Tuple, Type, Union, + TypeVar, TYPE_CHECKING) try: # Protocol was added in Python 3.8 from typing import Protocol @@ -50,11 +49,7 @@ except ImportError: # pragma: no cover from PyQt5.QtCore import QUrl, QVersionNumber, QRect from PyQt5.QtGui import QClipboard, QDesktopServices from PyQt5.QtWidgets import QApplication -# We cannot use the stdlib version on 3.7-3.8 because we need the files() API. -if sys.version_info >= (3, 9): - import importlib.resources as importlib_resources -else: # pragma: no cover - import importlib_resources + import yaml try: from yaml import (CSafeLoader as YamlLoader, @@ -65,13 +60,10 @@ except ImportError: # pragma: no cover SafeDumper as YamlDumper) YAML_C_EXT = False -import qutebrowser from qutebrowser.utils import log - fake_clipboard = None log_clipboard = False -_resource_cache = {} is_mac = sys.platform.startswith('darwin') is_linux = sys.platform.startswith('linux') @@ -195,6 +187,7 @@ def compact_text(text: str, elidelength: int = None) -> str: out = elide(out, elidelength) return out + def parse_version(version: str) -> VersionNumber: """Parse a version string.""" ver, _suffix = QVersionNumber.fromString(version) From f2447217385dcb526aa9b7faf109d330117f096f Mon Sep 17 00:00:00 2001 From: qutebrowser bot Date: Mon, 8 Mar 2021 04:40:33 +0000 Subject: [PATCH 020/161] Update dependencies --- misc/requirements/requirements-flake8.txt | 2 +- misc/requirements/requirements-mypy.txt | 12 ++++++------ misc/requirements/requirements-pyinstaller.txt | 2 +- misc/requirements/requirements-pyroma.txt | 4 ++-- misc/requirements/requirements-sphinx.txt | 4 ++-- misc/requirements/requirements-tests.txt | 6 +++--- misc/requirements/requirements-tox.txt | 4 ++-- requirements.txt | 8 ++++---- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/misc/requirements/requirements-flake8.txt b/misc/requirements/requirements-flake8.txt index 493fa3cac..c83b57860 100644 --- a/misc/requirements/requirements-flake8.txt +++ b/misc/requirements/requirements-flake8.txt @@ -2,7 +2,7 @@ attrs==20.3.0 flake8==3.8.4 -flake8-bugbear==20.11.1 +flake8-bugbear==21.3.1 flake8-builtins==1.5.3 flake8-comprehensions==3.3.1 flake8-copyright==0.2.2 diff --git a/misc/requirements/requirements-mypy.txt b/misc/requirements/requirements-mypy.txt index 070339ed6..dfa80656b 100644 --- a/misc/requirements/requirements-mypy.txt +++ b/misc/requirements/requirements-mypy.txt @@ -1,10 +1,10 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py chardet==4.0.0 -diff-cover==4.2.1 -importlib-metadata==3.7.0 -importlib-resources==5.1.1 -inflect==5.2.0 +diff-cover==4.2.3 +importlib-metadata==3.7.2 +importlib-resources==5.1.2 +inflect==3.0.2 Jinja2==2.11.3 jinja2-pluralize==0.3.0 lxml==4.6.2 @@ -12,8 +12,8 @@ MarkupSafe==1.1.1 mypy==0.812 mypy-extensions==0.4.3 pluggy==0.13.1 -Pygments==2.8.0 +Pygments==2.8.1 PyQt5-stubs==5.15.2.0 typed-ast==1.4.2 typing-extensions==3.7.4.3 -zipp==3.4.0 +zipp==3.4.1 diff --git a/misc/requirements/requirements-pyinstaller.txt b/misc/requirements/requirements-pyinstaller.txt index 05a59200f..5b7c0137a 100644 --- a/misc/requirements/requirements-pyinstaller.txt +++ b/misc/requirements/requirements-pyinstaller.txt @@ -2,4 +2,4 @@ altgraph==0.17 pyinstaller==4.2 -pyinstaller-hooks-contrib==2020.11 +pyinstaller-hooks-contrib==2021.1 diff --git a/misc/requirements/requirements-pyroma.txt b/misc/requirements/requirements-pyroma.txt index 22a195e66..b64b99e24 100644 --- a/misc/requirements/requirements-pyroma.txt +++ b/misc/requirements/requirements-pyroma.txt @@ -1,5 +1,5 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py docutils==0.16 -Pygments==2.5.2 -pyroma==2.6.1 +Pygments==2.8.1 +pyroma==3.1 diff --git a/misc/requirements/requirements-sphinx.txt b/misc/requirements/requirements-sphinx.txt index 495b8dcf5..352be342a 100644 --- a/misc/requirements/requirements-sphinx.txt +++ b/misc/requirements/requirements-sphinx.txt @@ -10,12 +10,12 @@ imagesize==1.2.0 Jinja2==2.11.3 MarkupSafe==1.1.1 packaging==20.9 -Pygments==2.8.0 +Pygments==2.8.1 pyparsing==2.4.7 pytz==2021.1 requests==2.25.1 snowballstemmer==2.1.0 -Sphinx==3.5.1 +Sphinx==3.5.2 sphinxcontrib-applehelp==1.0.2 sphinxcontrib-devhelp==1.0.2 sphinxcontrib-htmlhelp==1.0.3 diff --git a/misc/requirements/requirements-tests.txt b/misc/requirements/requirements-tests.txt index bf214be0d..2bfaf91e0 100644 --- a/misc/requirements/requirements-tests.txt +++ b/misc/requirements/requirements-tests.txt @@ -15,7 +15,7 @@ filelock==3.0.12 Flask==1.1.2 glob2==0.7 hunter==3.3.1 -hypothesis==6.3.4 +hypothesis==6.6.0 icdiff==1.9.1 idna==2.10 iniconfig==1.1.1 @@ -33,7 +33,7 @@ pluggy==0.13.1 pprintpp==0.4.0 py==1.10.0 py-cpuinfo==7.0.0 -Pygments==2.8.0 +Pygments==2.8.1 pyparsing==2.4.7 pytest==6.2.2 pytest-bdd==4.0.2 @@ -48,7 +48,7 @@ pytest-repeat==0.9.1 pytest-rerunfailures==9.1.1 pytest-xdist==2.2.1 pytest-xvfb==2.0.0 -PyVirtualDisplay==2.0 +PyVirtualDisplay==2.1 requests==2.25.1 requests-file==1.5.1 six==1.15.0 diff --git a/misc/requirements/requirements-tox.txt b/misc/requirements/requirements-tox.txt index 1e6382e1e..d44522118 100644 --- a/misc/requirements/requirements-tox.txt +++ b/misc/requirements/requirements-tox.txt @@ -8,9 +8,9 @@ pip==21.0.1 pluggy==0.13.1 py==1.10.0 pyparsing==2.4.7 -setuptools==54.0.0 +setuptools==54.1.1 six==1.15.0 toml==0.10.2 -tox==3.22.0 +tox==3.23.0 virtualenv==20.4.2 wheel==0.36.2 diff --git a/requirements.txt b/requirements.txt index c6eb86d6f..5572e206c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,11 +3,11 @@ adblock==0.4.2 ; python_version!="3.10" colorama==0.4.4 dataclasses==0.6 ; python_version<"3.7" -importlib-metadata==3.7.0 ; python_version<"3.8" -importlib-resources==5.1.1 ; python_version<"3.9" +importlib-metadata==3.7.2 ; python_version<"3.8" +importlib-resources==5.1.2 ; python_version<"3.9" Jinja2==2.11.3 MarkupSafe==1.1.1 -Pygments==2.8.0 +Pygments==2.8.1 PyYAML==5.4.1 typing-extensions==3.7.4.3 -zipp==3.4.0 +zipp==3.4.1 From 45387d18a514103c686be559087420199cb49995 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 8 Mar 2021 11:26:39 +0100 Subject: [PATCH 021/161] Fix some tests with non-english locales See #6234 --- tests/end2end/features/misc.feature | 2 +- tests/end2end/features/qutescheme.feature | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/end2end/features/misc.feature b/tests/end2end/features/misc.feature index 351135fab..5d81a890a 100644 --- a/tests/end2end/features/misc.feature +++ b/tests/end2end/features/misc.feature @@ -140,7 +140,7 @@ Feature: Various utility commands. Scenario: :jseval --file using a file that doesn't exist as js-code When I run :jseval --file /nonexistentfile - Then the error "[Errno 2] No such file or directory: '/nonexistentfile'" should be shown + Then the error "[Errno 2] *: '/nonexistentfile'" should be shown And "No output or error" should not be logged # :debug-webaction diff --git a/tests/end2end/features/qutescheme.feature b/tests/end2end/features/qutescheme.feature index 286f8f80a..1424bbf09 100644 --- a/tests/end2end/features/qutescheme.feature +++ b/tests/end2end/features/qutescheme.feature @@ -215,7 +215,7 @@ Feature: Special qute:// pages Scenario: Running :pyeval --file using a non existing file When I run :debug-pyeval --file nonexistentfile - Then the error "[Errno 2] No such file or directory: 'nonexistentfile'" should be shown + Then the error "[Errno 2] *: 'nonexistentfile'" should be shown Scenario: Running :pyeval with --quiet When I run :debug-pyeval --quiet 1+1 From 76b03db20eac1d9b52156191656d4c2adb290911 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 8 Mar 2021 14:04:56 +0100 Subject: [PATCH 022/161] Revert "ci: Add workaround for Archlinux/Docker issue" This reverts commit 478e4de7bd1f26bebdcdc166d5369b2b5142c3e2. Fixed according to https://github.com/actions/virtual-environments/issues/2658 --- scripts/dev/ci/docker/Dockerfile.j2 | 7 ------- 1 file changed, 7 deletions(-) diff --git a/scripts/dev/ci/docker/Dockerfile.j2 b/scripts/dev/ci/docker/Dockerfile.j2 index 03e5684ad..d3fc82793 100644 --- a/scripts/dev/ci/docker/Dockerfile.j2 +++ b/scripts/dev/ci/docker/Dockerfile.j2 @@ -1,12 +1,5 @@ FROM archlinux:latest -# WORKAROUND for glibc 2.33 and old Docker -# See https://github.com/actions/virtual-environments/issues/2658 -# Thanks to https://github.com/lxqt/lxqt-panel/pull/1562 -RUN patched_glibc=glibc-linux4-2.33-4-x86_64.pkg.tar.zst && \ - curl -LO "https://repo.archlinuxcn.org/x86_64/$patched_glibc" && \ - bsdtar -C / -xvf "$patched_glibc" - {% if unstable %} RUN sed -i '/^# after the header/a[kde-unstable]\nInclude = /etc/pacman.d/mirrorlist\n\n[testing]\nInclude = /etc/pacman.d/mirrorlist' /etc/pacman.conf {% endif %} From 55fdae8eed0f93152b5676cca77b6243fd95d9b0 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Mon, 8 Mar 2021 17:40:57 +0100 Subject: [PATCH 023/161] userscripts/readability: add unique body class Until per-domains stylesheets are implemented, there is no way to apply style to the readability page only. With this patch, you can just use the global setting `content.user_stylesheets` by writing a more specific CSS selector. For example: body.qute-readability { font-family: Libertinus; font-size: 1.2em; text-align: justify; } will change the font and text alignment of the readability page, without altering the style of other websites. --- misc/userscripts/readability | 3 +++ misc/userscripts/readability-js | 3 +++ 2 files changed, 6 insertions(+) diff --git a/misc/userscripts/readability b/misc/userscripts/readability index f9cbbf829..a6a6f2d52 100755 --- a/misc/userscripts/readability +++ b/misc/userscripts/readability @@ -57,6 +57,9 @@ with codecs.open(os.environ['QUTE_HTML'], 'r', 'utf-8') as source: title = doc.title() content = doc.summary().replace('', HEADER % title) + # add a class to make styling the page easier + content = content.replace('', '') + with codecs.open(tmpfile, 'w', 'utf-8') as target: target.write(content.lstrip()) diff --git a/misc/userscripts/readability-js b/misc/userscripts/readability-js index 2f24e065d..532df51c6 100755 --- a/misc/userscripts/readability-js +++ b/misc/userscripts/readability-js @@ -131,6 +131,9 @@ getDOM(target, domOpts).then(dom => { let article = reader.parse(); let content = util.format(HEADER, article.title) + article.content; + // add a class to make styling the page easier + content = content.replace('', '') + fs.writeFile(tmpFile, content, (err) => { if (err) { qute.messageError([`"${err}"`]) From 163517800365ebc48c4947b3ad4ddd538ca8f31f Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 8 Mar 2021 18:06:20 +0100 Subject: [PATCH 024/161] Update changelog --- doc/changelog.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index 3840f369d..c78fe556a 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -60,6 +60,9 @@ Changed - The `fileselect.*.command` settings now support file selectors writing the selected paths to stdout, which is used if no `{}` placeholder is contained in the configured command. +- The `readability` and `readability-js` userscripts now add a + `qute-readability` CSS class to the page, so that it can be styled easily via + a user stylesheet. Fixed ~~~~~ From 2b859a71810ac6352efea43de259eb3343e38e5f Mon Sep 17 00:00:00 2001 From: Laurent Arnoud Date: Thu, 4 Mar 2021 21:08:32 +0100 Subject: [PATCH 025/161] Force rebuild on history import Before the v2.0.x release, deleting the table had the same effect, but that's not the case anymore --- scripts/hist_importer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/hist_importer.py b/scripts/hist_importer.py index 6f2b9fa87..df12bcf2e 100755 --- a/scripts/hist_importer.py +++ b/scripts/hist_importer.py @@ -135,7 +135,8 @@ def insert_qb(history, dest): 'INSERT INTO History (url,title,atime,redirect) VALUES (?,?,?,?)', history ) - cursor.execute('DROP TABLE CompletionHistory') + cursor.execute('UPDATE CompletionMetaInfo SET value = 1 ' + 'WHERE key = "force_rebuild"') conn.commit() conn.close() From 0fb5352cdf0f220d2cce34f84bf96cfbbf541a30 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 8 Mar 2021 20:51:32 +0100 Subject: [PATCH 026/161] Simplify _inject_greasemonkey_scripts The arguments aren't needed anymore since 05111e84236621d3923ed4efd36a7c6578407c20 and we can use f-strings nowadays. --- qutebrowser/browser/webengine/webenginetab.py | 47 ++++++------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 4092fbe40..439d99570 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -1080,18 +1080,11 @@ class _WebEngineScripts(QObject): removed = page_scripts.remove(script) assert removed, script.name() - def _inject_greasemonkey_scripts(self, scripts=None, injection_point=None, - remove_first=True): + def _inject_greasemonkey_scripts(self, scripts): """Register user JavaScript files with the current tab. Args: - scripts: A list of GreasemonkeyScripts, or None to add all - known by the Greasemonkey subsystem. - injection_point: The QWebEngineScript::InjectionPoint stage - to inject the script into, None to use - auto-detection. - remove_first: Whether to remove all previously injected - scripts before adding these ones. + scripts: A list of GreasemonkeyScripts. """ if sip.isdeleted(self._widget): return @@ -1102,11 +1095,7 @@ class _WebEngineScripts(QObject): # While, taking care not to remove any other scripts that might # have been added elsewhere, like the one for stylesheets. page_scripts = self._widget.page().scripts() - if remove_first: - self._remove_all_greasemonkey_scripts() - - if not scripts: - return + self._remove_all_greasemonkey_scripts() for script in scripts: new_script = QWebEngineScript() @@ -1114,37 +1103,29 @@ class _WebEngineScripts(QObject): world = int(script.jsworld) if not 0 <= world <= qtutils.MAX_WORLD_ID: log.greasemonkey.error( - "script {} has invalid value for '@qute-js-world'" - ": {}, should be between 0 and {}" - .format( - script.name, - script.jsworld, - qtutils.MAX_WORLD_ID)) + f"script {script.name} has invalid value for '@qute-js-world'" + f": {script.jsworld}, should be between 0 and " + f"{qtutils.MAX_WORLD_ID}") continue except ValueError: try: - world = _JS_WORLD_MAP[usertypes.JsWorld[ - script.jsworld.lower()]] + world = _JS_WORLD_MAP[usertypes.JsWorld[script.jsworld.lower()]] except KeyError: log.greasemonkey.error( - "script {} has invalid value for '@qute-js-world'" - ": {}".format(script.name, script.jsworld)) + f"script {script.name} has invalid value for '@qute-js-world'" + f": {script.jsworld}") continue new_script.setWorldId(world) new_script.setSourceCode(script.code()) - new_script.setName("GM-{}".format(script.name)) + new_script.setName(f"GM-{script.name}") new_script.setRunsOnSubFrames(script.runs_on_sub_frames) - # Override the @run-at value parsed by QWebEngineScript if desired. - if injection_point: - new_script.setInjectionPoint(injection_point) - elif script.needs_document_end_workaround(): - log.greasemonkey.debug("Forcing @run-at document-end for {}" - .format(script.name)) + if script.needs_document_end_workaround(): + log.greasemonkey.debug( + f"Forcing @run-at document-end for {script.name}") new_script.setInjectionPoint(QWebEngineScript.DocumentReady) - log.greasemonkey.debug('adding script: {}' - .format(new_script.name())) + log.greasemonkey.debug(f'adding script: {new_script.name()}') page_scripts.insert(new_script) def _inject_site_specific_quirks(self): From 2abc3c585cdc63723a0423d3871a792439ef2d79 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Mon, 8 Mar 2021 22:05:26 +0100 Subject: [PATCH 027/161] userscripts/readability-js: fixup of 55fdae8 The mozilla/readability library doesn't output a body by default. So, let's add one in the header and plug the result in. --- misc/userscripts/readability-js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/misc/userscripts/readability-js b/misc/userscripts/readability-js index 532df51c6..d286e570e 100755 --- a/misc/userscripts/readability-js +++ b/misc/userscripts/readability-js @@ -106,7 +106,12 @@ const HEADER = ` SAwLTIgMC44OTUtMiAyczAuODk1IDIgMiAyaDIwYzEuMTEgMCAyLTAuODk1IDItMnMtMC44OTUtMi0yLTJ6bTAgOGgtMjBjLTEuMTEgMC0yIDAuODk1LTIg MnMwLjg5NSAyIDIgMmgyMGMxLjExIDAgMi0wLjg5NSAyLTJzLTAuODk1LTItMi0yem0tMTIgOGgtOGMtMS4xMSAwLTIgMC44OTUtMiAyczAuODk1IDIgMiA yaDhjMS4xMSAwIDItMC44OTUgMi0ycy0wLjg5NS0yLTItMnoiIGZpbGw9IiNmZmYiLz4KPC9nPgo8L3N2Zz4K"/> -`; + + + %s + + +`; const scriptsDir = path.join(process.env.QUTE_DATA_DIR, 'userscripts'); const tmpFile = path.join(scriptsDir, '/readability.html'); @@ -129,10 +134,7 @@ else { getDOM(target, domOpts).then(dom => { let reader = new Readability(dom.window.document); let article = reader.parse(); - let content = util.format(HEADER, article.title) + article.content; - - // add a class to make styling the page easier - content = content.replace('', '') + let content = util.format(HEADER, article.title, article.content); fs.writeFile(tmpFile, content, (err) => { if (err) { From e6f470105f2a4a355aeb299a8ebafeba50308091 Mon Sep 17 00:00:00 2001 From: rien333 Date: Mon, 8 Mar 2021 23:16:22 +0100 Subject: [PATCH 028/161] Use HTML5 meta tag --- misc/userscripts/readability-js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/userscripts/readability-js b/misc/userscripts/readability-js index 532df51c6..340e3bbb9 100755 --- a/misc/userscripts/readability-js +++ b/misc/userscripts/readability-js @@ -39,8 +39,8 @@ const HEADER = ` - - + + %s