[Bf-blender-cvs] [02b20948479] master: PyAPI: check modules are registered before unregister

Campbell Barton noreply at git.blender.org
Wed Mar 29 04:34:36 CEST 2017


Commit: 02b20948479a4ffcc94fc26479ea873b6c50ec36
Author: Campbell Barton
Date:   Wed Mar 29 12:35:00 2017 +1100
Branches: master
https://developer.blender.org/rB02b20948479a4ffcc94fc26479ea873b6c50ec36

PyAPI: check modules are registered before unregister

Needed since templates may unregister classes.

Also replace old modules on reloading.

===================================================================

M	release/scripts/startup/bl_operators/__init__.py
M	release/scripts/startup/bl_ui/__init__.py

===================================================================

diff --git a/release/scripts/startup/bl_operators/__init__.py b/release/scripts/startup/bl_operators/__init__.py
index c28c1461003..1e0dbe6925e 100644
--- a/release/scripts/startup/bl_operators/__init__.py
+++ b/release/scripts/startup/bl_operators/__init__.py
@@ -21,8 +21,7 @@
 # support reloading sub-modules
 if "bpy" in locals():
     from importlib import reload
-    for val in _modules_loaded:
-        reload(val)
+    _modules_loaded[:] = [reload(val) for val in _modules_loaded]
     del reload
 
 _modules = [
@@ -73,4 +72,5 @@ def unregister():
     from bpy.utils import unregister_class
     for mod in reversed(_modules_loaded):
         for cls in reversed(mod.classes):
-            unregister_class(cls)
+            if cls.is_registered:
+                unregister_class(cls)
diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py
index 3e81724c1f9..5b609605cee 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -23,8 +23,7 @@
 # support reloading sub-modules
 if "bpy" in locals():
     from importlib import reload
-    for val in _modules_loaded:
-        reload(val)
+    _modules_loaded[:] = [reload(val) for val in _modules_loaded]
     del reload
 
 _modules = [
@@ -149,7 +148,8 @@ def unregister():
     from bpy.utils import unregister_class
     for mod in reversed(_modules_loaded):
         for cls in reversed(mod.classes):
-            unregister_class(cls)
+            if cls.is_registered:
+                unregister_class(cls)
 
 # Define a default UIList, when a list does not need any custom drawing...
 # Keep in sync with its #defined name in UI_interface.h




More information about the Bf-blender-cvs mailing list