Merge branch 'plugin-debug' into 'master'

Plugin debug

See merge request poezio/poezio!70
This commit is contained in:
Maxime Buquet 2020-03-26 00:33:55 +01:00
commit 2101439e86
2 changed files with 19 additions and 5 deletions

View file

@ -117,6 +117,8 @@ def parse_runtime_tablist(tablist):
class Plugin(BasePlugin):
"""reorder plugin"""
def init(self):
self.api.add_command(
'reorder',
@ -129,20 +131,24 @@ class Plugin(BasePlugin):
help='Save the current tab layout')
@command_args_parser.ignored
def command_save_order(self):
def command_save_order(self) -> None:
"""
/save_order
"""
conf = parse_runtime_tablist(self.core.tabs)
for key, value in conf:
self.config.set(key, value)
self.api.information('Tab order saved', 'Info')
@command_args_parser.ignored
def command_reorder(self):
def command_reorder(self) -> None:
"""
/reorder
"""
tabs_spec = parse_config(self.config)
if not tabs_spec:
return self.api.information('Invalid reorder config', 'Error')
self.api.information('Invalid reorder config', 'Error')
return None
old_tabs = self.core.tabs.get_tabs()
roster = old_tabs.pop(0)
@ -173,3 +179,5 @@ class Plugin(BasePlugin):
self.core.tabs.replace_tabs(new_tabs)
self.core.refresh_window()
return None

View file

@ -69,7 +69,10 @@ class PluginManager:
module = None
loader = self.finder.find_module(name, self.load_path)
if loader:
log.debug('Found candidate loader for plugin %s: %r', name, loader)
module = loader.load_module()
if module is None:
log.debug('Failed to load plugin %s from loader', name)
else:
try:
module = import_module('poezio_plugins.%s' % name)
@ -77,16 +80,19 @@ class PluginManager:
pass
for entry in pkg_resources.iter_entry_points('poezio_plugins'):
if entry.name == name:
log.debug('Found candidate entry for plugin %s: %r', name, entry)
try:
module = entry.load()
except ImportError:
pass
except ImportError as exn:
log.debug('Failed to import plugin: %s\n%r', name,
exn, exc_info=True)
finally:
break
if not module:
self.core.information('Could not find plugin: %s' % name,
'Error')
return
log.debug('Plugin %s loaded from "%s"', name, module.__file__)
except Exception as e:
log.debug("Could not load plugin %s", name, exc_info=True)
self.core.information("Could not load plugin %s: %s" % (name, e),