refactor out chosing loadable modules in to _list_valid_modules()

This commit is contained in:
jesopo 2019-10-14 11:37:04 +01:00
parent af1fd37003
commit 4940aff877

View file

@ -319,22 +319,12 @@ class ModuleManager(object):
fail = [] fail = []
success = [] success = []
module_definitions = self.list_modules() loadable, nonloadable = self._list_valid_modules(bot, whitelist, blacklist)
loadable_definitions = [] for definition in nonloadable:
for definition in module_definitions: self.log.warn("Not loading module '%s'", [definition.name])
try:
self._check_hashflags(bot, definition)
except ModuleNotLoadableWarning:
self.log.warn("Could not load '%s'" % definition.name)
continue
loadable_definitions.append(definition)
loadable_definitions = self._dependency_sort(loadable_definitions) for definition in loadable:
for definition in loadable_definitions:
if definition.name in whitelist or (
not whitelist and not definition.name in blacklist):
try: try:
self.load_module(bot, definition) self.load_module(bot, definition)
except ModuleWarning: except ModuleWarning:
@ -387,3 +377,25 @@ class ModuleManager(object):
self.log.debug("References left for '%s': %s", self.log.debug("References left for '%s': %s",
[loaded_module.name, [loaded_module.name,
", ".join([str(referrer) for referrer in referrers])]) ", ".join([str(referrer) for referrer in referrers])])
def _list_valid_modules(self, bot: "IRCBot.Bot",
whitelist: typing.List[str], blacklist: typing.List[str]):
module_definitions = self.list_modules()
loadable_definitions = []
nonloadable_definitions = []
for definition in module_definitions:
if definition.name in whitelist or (
not whitelist and not definition.name in blacklist):
try:
self._check_hashflags(bot, definition)
except ModuleNotLoadableWarning:
nonloadable_definitions.append(definition)
continue
loadable_definitions.append(definition)
else:
nonloadable_definitions.append(definition)
return (self._dependency_sort(loadable_definitions),
nonloadable_definitions)