From 38c4ef3623fd271aaa6708852af577d819cd1803 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 10 Dec 2018 11:51:26 +0100 Subject: [PATCH] Fix lint --- qutebrowser/extensions/loader.py | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/qutebrowser/extensions/loader.py b/qutebrowser/extensions/loader.py index 2679e89dc..b2481b969 100644 --- a/qutebrowser/extensions/loader.py +++ b/qutebrowser/extensions/loader.py @@ -32,7 +32,9 @@ from qutebrowser.utils import log @attr.s -class ComponentInfo: +class ExtensionInfo: + + """Information about a qutebrowser extension.""" name = attr.ib() # type: str @@ -43,43 +45,48 @@ def load_components() -> None: _load_component(info) -def walk_components() -> typing.Iterator[ComponentInfo]: - """Yield ComponentInfo objects for all modules.""" +def walk_components() -> typing.Iterator[ExtensionInfo]: + """Yield ExtensionInfo objects for all modules.""" if hasattr(sys, 'frozen'): yield from _walk_pyinstaller() else: yield from _walk_normal() -def _walk_error(name: str): +def _on_walk_error(name: str) -> None: raise ImportError("Failed to import {}".format(name)) -def _walk_normal() -> typing.Iterator[ComponentInfo]: +def _walk_normal() -> typing.Iterator[ExtensionInfo]: """Walk extensions when not using PyInstaller.""" for _finder, name, ispkg in pkgutil.walk_packages( - path=components.__path__, + # Only packages have a __path__ attribute, + # but we're sure this is one. + path=components.__path__, # type: ignore prefix=components.__name__ + '.', - onerror=_walk_error): + onerror=_on_walk_error): if ispkg: continue - yield ComponentInfo(name=name) + yield ExtensionInfo(name=name) -def _walk_pyinstaller() -> typing.Iterator[ComponentInfo]: +def _walk_pyinstaller() -> typing.Iterator[ExtensionInfo]: """Walk extensions when using PyInstaller. See https://github.com/pyinstaller/pyinstaller/issues/1905 + + Inspired by: + https://github.com/webcomics/dosage/blob/master/dosagelib/loader.py """ - toc = set() + toc = set() # type: typing.Set[str] for importer in pkgutil.iter_importers('qutebrowser'): if hasattr(importer, 'toc'): toc |= importer.toc for name in toc: if name.startswith(components.__name__ + '.'): - yield ComponentInfo(name=name) + yield ExtensionInfo(name=name) -def _load_component(info: ComponentInfo) -> types.ModuleType: +def _load_component(info: ExtensionInfo) -> types.ModuleType: log.extensions.debug("Importing {}".format(info.name)) return importlib.import_module(info.name)