Merge branch 'plugin-debug' into 'master'
Plugin debug See merge request poezio/poezio!70
This commit is contained in:
commit
2101439e86
2 changed files with 19 additions and 5 deletions
|
@ -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
|
||||
|
|
|
@ -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),
|
||||
|
|
Loading…
Reference in a new issue