diff --git a/qutebrowser/browser/webengine/spell.py b/qutebrowser/browser/webengine/spell.py index cb7da541c..ee2fb7813 100644 --- a/qutebrowser/browser/webengine/spell.py +++ b/qutebrowser/browser/webengine/spell.py @@ -23,19 +23,18 @@ import glob import os import re -from qutebrowser.utils import log from PyQt5.QtCore import QLibraryInfo +from qutebrowser.utils import log def version(filename): """Extract the version number from the dictionary file name.""" - version_re = re.compile(r""" - .+-(?P[0-9]+-[0-9]+?)\.bdic - """, re.VERBOSE) + version_re = re.compile(r".+-(?P[0-9]+-[0-9]+?)\.bdic") match = version_re.match(filename) - assert match is not None, \ - 'the given dictionary file name is malformed: {}'.format(filename) - return [int(n) for n in match.group('version').split('-')] + if match is None: + raise ValueError('the given dictionary file name is malformed: {}' + .format(filename)) + return tuple(int(n) for n in match.group('version').split('-')) def dictionary_dir(): diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index 7f1d50e78..5ea065cb6 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -137,7 +137,7 @@ class DictionaryLanguageSetter(DefaultProfileSetter): local_filename = spell.local_filename(code) if not local_filename: message.warning( - "Language {} is not installed - see scripts/dict.py " + "Language {} is not installed - see scripts/dictcli.py " "in qutebrowser's sources".format(code)) return local_filename diff --git a/scripts/dictcli.py b/scripts/dictcli.py index d4f04f0ca..2742de8ad 100755 --- a/scripts/dictcli.py +++ b/scripts/dictcli.py @@ -97,6 +97,7 @@ def get_argparser(): parser = argparse.ArgumentParser(prog='dictcli', description=desc) subparsers = parser.add_subparsers(help='Command', dest='cmd') + subparsers.required = True subparsers.add_parser('list', help='Display the list of available languages.') subparsers.add_parser('update', @@ -228,8 +229,7 @@ def install(languages): print('Installing {}: {}'.format(lang.code, lang.name)) install_lang(lang) except PermissionError as e: - print(e) - sys.exit(1) + sys.exit(str(e)) def update(languages): @@ -258,18 +258,14 @@ def main(): argv = sys.argv[1:] args = parser.parse_args(argv) languages = available_languages() - if args.cmd is None: - parser.print_usage() - exit(1) - elif args.cmd == 'list': + if args.cmd == 'list': print_list(languages) elif args.cmd == 'update': update(languages) elif args.cmd == 'remove-old': remove_old(languages) elif not args.language: - print('You must provide a list of languages to install.') - exit(1) + sys.exit('You must provide a list of languages to install.') else: try: install(filter_languages(languages, args.language)) diff --git a/tests/unit/browser/webengine/test_spell.py b/tests/unit/browser/webengine/test_spell.py index e7944e995..3b3a45d7d 100644 --- a/tests/unit/browser/webengine/test_spell.py +++ b/tests/unit/browser/webengine/test_spell.py @@ -22,8 +22,8 @@ from qutebrowser.browser.webengine import spell def test_version(): - assert spell.version('en-US-8-0.bdic') == [8, 0] - assert spell.version('pl-PL-3-0.bdic') == [3, 0] + assert spell.version('en-US-8-0.bdic') == (8, 0) + assert spell.version('pl-PL-3-0.bdic') == (3, 0) def test_local_filename_dictionary_does_not_exist(tmpdir, monkeypatch):