From 3b6e223a0319897b58ac61b8a47b12c40084ca14 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 3 Jun 2020 14:41:31 +1000 Subject: [PATCH] Fix app-template warning disabling a template without a Python module --- .../scripts/modules/bl_app_template_utils.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/release/scripts/modules/bl_app_template_utils.py b/release/scripts/modules/bl_app_template_utils.py index 6ee1e2ab8df..7db084a9a29 100644 --- a/release/scripts/modules/bl_app_template_utils.py +++ b/release/scripts/modules/bl_app_template_utils.py @@ -68,14 +68,15 @@ def _enable(template_id, *, handle_error=None, ignore_not_found=False): # 1) try import try: mod = import_from_id(template_id, ignore_not_found=ignore_not_found) - if mod is None: - return None - mod.__template_enabled__ = False - _modules[template_id] = mod except Exception as ex: handle_error(ex) return None + _modules[template_id] = mod + if mod is None: + return None + mod.__template_enabled__ = False + # 2) try run the modules register function try: mod.register() @@ -111,9 +112,12 @@ def _disable(template_id, *, handle_error=None): import traceback traceback.print_exc() - mod = _modules.get(template_id) + mod = _modules.get(template_id, False) - if mod and getattr(mod, "__template_enabled__", False) is not False: + if mod is None: + # Loaded but has no module, remove since there is no use in keeping it. + del _modules[template_id] + elif getattr(mod, "__template_enabled__", False) is not False: mod.__template_enabled__ = False try: @@ -124,7 +128,7 @@ def _disable(template_id, *, handle_error=None): handle_error(ex) else: print("\tapp_template_utils.disable: %s not %s." % - (template_id, "disabled" if mod is None else "loaded")) + (template_id, "disabled" if mod is False else "loaded")) if _bpy.app.debug_python: print("\tapp_template_utils.disable", template_id)