Use getattr to get Module classes out of modules in ModuleManager.py; this

makes more sense and removes some errors from type linting
This commit is contained in:
jesopo 2018-12-02 10:14:18 +00:00
parent 50ced296d1
commit 9466f57efc

View file

@ -89,10 +89,11 @@ class ModuleManager(object):
module = imp.load_source(self._import_name(name), path) module = imp.load_source(self._import_name(name), path)
if not hasattr(module, "Module"): module_object_pointer = getattr(module, "Module", None)
if not module_object_pointer:
raise ModuleLoadException("module '%s' doesn't have a " raise ModuleLoadException("module '%s' doesn't have a "
"'Module' class." % name) "'Module' class." % name)
if not inspect.isclass(module.Module): if not inspect.isclass(module_object_pointer):
raise ModuleLoadException("module '%s' has a 'Module' attribute " raise ModuleLoadException("module '%s' has a 'Module' attribute "
"but it is not a class." % name) "but it is not a class." % name)
@ -100,8 +101,8 @@ class ModuleManager(object):
context_events = self.events.new_context(context) context_events = self.events.new_context(context)
context_exports = self.exports.new_context(context) context_exports = self.exports.new_context(context)
context_timers = self.timers.new_context(context) context_timers = self.timers.new_context(context)
module_object = module.Module(bot, context_events, context_exports, module_object = module_object_pointer(bot, context_events,
context_timers, self.log) context_exports, context_timers, self.log)
if not hasattr(module_object, "_name"): if not hasattr(module_object, "_name"):
module_object._name = name.title() module_object._name = name.title()