def __load_mergers(self):
mergers = {}
for f in os.scandir(os.path.join(
os.path.dirname(os.path.realpath(__file__)),
"mergers")):
if f.is_file() and f.name.endswith(".py"):
name = f.name[:-3]
mod = __import__("mergers.%s" % name, fromlist=["Merger"])
try:
m = getattr(mod, "Merger")
if issubclass(m, BaseMerger):
merger = m()
logging.debug("Found merger for %s", \
merger.get_supported_software().keys())
for software in merger.get_supported_software():
if software in mergers:
mergers[software].append(merger)
else:
mergers[software] = [ merger ]
except AttributeError:
logging.warning("Merger %s found but doesn't implement a Merger class inheriting from BaseMerger", name)
return mergers
评论列表
文章目录