diff --git a/frappe/__init__.py b/frappe/__init__.py index fd914a25ff..992a7c41f4 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -1416,38 +1416,42 @@ def setup_module_map(include_all_apps: bool = True) -> None: :return: Nothing """ if include_all_apps: - local.app_modules = cache.get_value("app_modules") + app_modules = cache.get_value("app_modules") else: - local.app_modules = client_cache.get_value("installed_app_modules") + app_modules = client_cache.get_value("installed_app_modules") + + if not app_modules: + app_modules = {} - if not local.app_modules: - local.app_modules = {} if include_all_apps: apps = get_all_apps(with_internal_apps=True) else: apps = get_installed_apps(_ensure_on_bench=True) for app in apps: - local.app_modules.setdefault(app, []) + app_modules.setdefault(app, []) for module in get_module_list(app): module = scrub(module) - local.app_modules[app].append(module) + app_modules[app].append(module) if include_all_apps: - cache.set_value("app_modules", local.app_modules) + cache.set_value("app_modules", app_modules) else: - client_cache.set_value("installed_app_modules", local.app_modules) + client_cache.set_value("installed_app_modules", app_modules) # Init module_app (reverse mapping) - local.module_app = {} - for app, modules in local.app_modules.items(): + module_app = {} + for app, modules in app_modules.items(): for module in modules: - if module in local.module_app: + if module in module_app: warnings.warn( - f"WARNING: module `{module}` found in apps `{local.module_app[module]}` and `{app}`", + f"WARNING: module `{module}` found in apps `{module_app[module]}` and `{app}`", stacklevel=1, ) - local.module_app[module] = app + module_app[module] = app + + local.app_modules = app_modules + local.module_app = module_app def get_file_items(path, raise_not_found=False, ignore_empty_lines=True):