plugin.py 558 B

1234567891011121314151617
  1. from engine.log import debug
  2. from engine.plugins.base import BasePlugin
  3. import inspect
  4. class LoadablePlugin:
  5. def __init__(self, package):
  6. self.name = package.__name__
  7. self._class = None
  8. for name, _class in inspect.getmembers(package):
  9. if inspect.isclass(_class) and issubclass(_class, BasePlugin) and _class is not BasePlugin:
  10. debug('Loaded {}=>{}'.format(self.name, _class.__name__))
  11. self._class = _class
  12. continue
  13. def get_class(self):
  14. return self._class