This commit is contained in:
Florian Bruhin 2018-12-10 12:42:00 +01:00
parent 380905854c
commit b1894f1428
3 changed files with 11 additions and 8 deletions

View File

@ -1,3 +1,5 @@
# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
# Copyright 2018 Florian Bruhin (The Compiler) <mail@qutebrowser.org> # Copyright 2018 Florian Bruhin (The Compiler) <mail@qutebrowser.org>
# #
# This file is part of qutebrowser. # This file is part of qutebrowser.
@ -18,7 +20,6 @@
"""Hooks for extensions.""" """Hooks for extensions."""
import importlib import importlib
import types
import typing import typing
@ -33,3 +34,4 @@ class init: # noqa: N801,N806 pylint: disable=invalid-name
module = importlib.import_module(func.__module__) module = importlib.import_module(func.__module__)
info = loader.add_module_info(module) info = loader.add_module_info(module)
info.init_hook = func info.init_hook = func
return func

View File

@ -20,7 +20,7 @@
"""Commands related to caret browsing.""" """Commands related to caret browsing."""
from qutebrowser.api import cmdutils, apitypes, hook from qutebrowser.api import cmdutils, apitypes
@cmdutils.register(modes=[cmdutils.KeyMode.caret]) @cmdutils.register(modes=[cmdutils.KeyMode.caret])

View File

@ -60,9 +60,10 @@ class ExtensionInfo:
def add_module_info(module: types.ModuleType) -> ModuleInfo: def add_module_info(module: types.ModuleType) -> ModuleInfo:
"""Add ModuleInfo to a module (if not added yet).""" """Add ModuleInfo to a module (if not added yet)."""
# pylint: disable=protected-access
if not hasattr(module, '__qute_module_info'): if not hasattr(module, '__qute_module_info'):
module.__qute_module_info = ModuleInfo() module.__qute_module_info = ModuleInfo() # type: ignore
return module.__qute_module_info return module.__qute_module_info # type: ignore
def load_components() -> None: def load_components() -> None:
@ -118,11 +119,11 @@ def _load_component(info: ExtensionInfo) -> types.ModuleType:
log.extensions.debug("Importing {}".format(info.name)) log.extensions.debug("Importing {}".format(info.name))
mod = importlib.import_module(info.name) mod = importlib.import_module(info.name)
info = add_module_info(mod) mod_info = add_module_info(mod)
if info.init_hook is not None: if mod_info.init_hook is not None:
log.extensions.debug("Running init hook {!r}" log.extensions.debug("Running init hook {!r}"
.format(info.init_hook.__name__)) .format(mod_info.init_hook.__name__))
context = InitContext(data_dir=standarddir.data()) context = InitContext(data_dir=standarddir.data())
info.init_hook(context) mod_info.init_hook(context)
return mod return mod