Load all plugins if None is passed to PluginLoader.

This commit is contained in:
Max Goodman
2012-08-07 16:56:07 -07:00
parent bd16af84a4
commit f19bb7c4f4

View File

@@ -70,19 +70,26 @@ class Plugin(object):
class PluginLoader(object):
def __init__(self, plugin_names):
def __init__(self, plugin_names=None):
self.plugins = {}
for name in plugin_names:
try:
entry_point = self.available_plugins(name).next()
except StopIteration:
print >> sys.stderr, ("Unable to locate plugin "
"%s. Skipping." % name)
continue
if plugin_names is None:
entry_points = self.available_plugins()
else:
entry_points = []
for name in plugin_names:
try:
entry_point = self.available_plugins(name).next()
except StopIteration:
print >> sys.stderr, ("Unable to locate plugin "
"%s. Skipping." % name)
continue
else:
entry_points.append(entry_point)
for entry_point in entry_points:
plugin_cls = entry_point.load()
self.plugins[name] = plugin_cls(entry_point)
self.plugins[entry_point.name] = plugin_cls(entry_point)
def __len__(self):
return len(self.plugins)