- for filename in files:
- if filename.startswith("__") or not filename.endswith(".py"):
- continue
- new_package = ".".join(root.split(os.sep)).split("....")[1]
- module_name = "%s.%s" % (new_package, filename[:-3])
+ matches = (filename for filename in files if filename.endswith(".py") and
+ not filename.startswith("__"))
+ new_package = os.path.relpath(root, yardstick_root).replace(os.sep, ".")
+ module_names = set(
+ ("{}.{}".format(new_package, filename.rsplit(".py", 1)[0]) for filename in matches))
+ # find modules which haven't already been imported
+ missing_modules = module_names.difference(sys.modules)
+ logger.debug("importing %s", missing_modules)
+ # we have already checked for already imported modules, so we don't need to check again
+ for module_name in missing_modules: