Add has_subclasses checks for iplugins (prevent for loading parent class)

This commit is contained in:
Gregory Soutade
2015-04-06 17:54:44 +02:00
parent df78a3f4cb
commit ee184f86b5
4 changed files with 12 additions and 5 deletions

View File

@@ -79,13 +79,19 @@ def preloadPlugins(plugins, iwla):
classes = [c for _,c in inspect.getmembers(mod)\
if inspect.isclass(c) and \
issubclass(c, IPlugin) and \
c.__name__ != 'IPlugin'
c.__name__ != 'IPlugin' and \
not c.__subclasses__()
]
if not classes:
logger.warning('No plugin defined in %s' % (plugin_path))
continue
if len(classes) > 1:
logger.warning('More than one class found in %s, loading may fail. Selecting %s' % (plugin_path, classes[0]))
print classes
continue
plugin = classes[0](iwla)
plugin_name = plugin.__class__.__name__