import importlib.util import os version = "0.0.1_alpha" def get_subscription(): apps_folder = "apps" apps = get_global_vars_from_apps(apps_folder) return { "version": version, "apps": apps, } def get_global_vars_from_apps(apps_folder): global_vars = {} for filename in os.listdir(apps_folder): if filename.endswith(".py"): module_name = filename[:-3] file_path = os.path.join(apps_folder, filename) spec = importlib.util.spec_from_file_location(module_name, file_path) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) module_globals = { key: value for key, value in vars(module).items() if not key.startswith("__") } print( "Scanned packageName: %s" % module_globals[module_name]["packageName"] ) global_vars[module_name] = module_globals return global_vars if __name__ == "__main__": apps_folder = "apps" apps = get_global_vars_from_apps(apps_folder) print(apps) for app, info in apps: print("%s: %s" % (app, info))