1 from util import print_error
9 def init_plugins(self):
10 import imp, pkgutil, __builtin__, os
13 if __builtin__.use_local_modules:
14 fp, pathname, description = imp.find_module('plugins')
15 plugin_names = [name for a, name, b in pkgutil.iter_modules([pathname])]
16 plugin_names = filter( lambda name: os.path.exists(os.path.join(pathname,name+'.py')), plugin_names)
17 imp.load_module('electrum_plugins', fp, pathname, description)
18 plugin_modules = map(lambda name: imp.load_source('electrum_plugins.'+name, os.path.join(pathname,name+'.py')), plugin_names)
20 import electrum_plugins
21 plugin_names = [name for a, name, b in pkgutil.iter_modules(electrum_plugins.__path__)]
22 plugin_modules = [ __import__('electrum_plugins.'+name, fromlist=['electrum_plugins']) for name in plugin_names]
24 for name, p in zip(plugin_names, plugin_modules):
26 plugins.append( p.Plugin(self, name) )
28 print_msg(_("Error: cannot initialize plugin"),p)
29 traceback.print_exc(file=sys.stdout)
33 def run_hook(name, *args):
39 if not p.is_enabled():
42 f = getattr(p, name, None)
49 print_error("Plugin error")
50 traceback.print_exc(file=sys.stdout)
58 def __init__(self, gui, name):
61 self.config = gui.config
66 def description(self):
69 def requires_settings(self):
80 return self.is_enabled()
84 self.set_enabled(True)
88 self.set_enabled(False)
96 return self.is_available() and self.config.get('use_'+self.name) is True
98 def is_available(self):
101 def set_enabled(self, enabled):
102 self.config.set_key('use_'+self.name, enabled, True)
104 def settings_dialog(self):