def load_classes(self, package, suffix):
classes = {}
folder = list(import_module(package).__path__)[0]
for loader, mod_name, is_pkg in pkgutil.walk_packages([folder]):
if not mod_name.endswith(suffix):
continue
try:
module = loader.find_module(mod_name).load_module(mod_name)
except:
log.exception('Loading', mod_name)
continue
cls_name = to_camel(mod_name)
mod_cls = getattr(module, cls_name, '')
if not isclass(mod_cls):
log.warning('Could not find', cls_name, 'in', mod_name)
continue
try:
plugin_path = object.__getattribute__(self, 'plugin_path') + '.'
except AttributeError:
plugin_path = ''
mod_cls.attr_name = self.make_name(mod_cls)
mod_cls.plugin_path = plugin_path + mod_cls.attr_name
classes[mod_cls.attr_name] = mod_cls
return classes
评论列表
文章目录