[Bf-blender-cvs] [3ad1e4f] master: addon_utils: improve docstrings

Campbell Barton noreply at git.blender.org
Thu Jan 7 13:43:04 CET 2016


Commit: 3ad1e4fab9816355cfcae1931528e85778281d7b
Author: Campbell Barton
Date:   Thu Jan 7 23:33:51 2016 +1100
Branches: master
https://developer.blender.org/rB3ad1e4fab9816355cfcae1931528e85778281d7b

addon_utils: improve docstrings

Also make error handler take the exception as its argument.

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

M	release/scripts/modules/addon_utils.py
M	release/scripts/startup/bl_operators/wm.py

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

diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py
index 560ddb9..95c0e5f 100644
--- a/release/scripts/modules/addon_utils.py
+++ b/release/scripts/modules/addon_utils.py
@@ -259,8 +259,14 @@ def enable(module_name, *, default_set=False, persistent=False, handle_error=Non
     """
     Enables an addon by name.
 
-    :arg module_name: The name of the addon and module.
+    :arg module_name: the name of the addon and module.
     :type module_name: string
+    :arg default_set: Set the user-preference.
+    :type default_set: bool
+    :arg persistent: Ensure the addon is enabled for the entire session (after loading new files).
+    :type persistent: bool
+    :arg handle_error: Called in the case of an error, taking an exception argument.
+    :type handle_error: function
     :return: the loaded module or None on failure.
     :rtype: module
     """
@@ -270,7 +276,7 @@ def enable(module_name, *, default_set=False, persistent=False, handle_error=Non
     from bpy_restrict_state import RestrictBlend
 
     if handle_error is None:
-        def handle_error():
+        def handle_error(ex):
             import traceback
             traceback.print_exc()
 
@@ -286,10 +292,10 @@ def enable(module_name, *, default_set=False, persistent=False, handle_error=Non
             # in most cases the caller should 'check()' first.
             try:
                 mod.unregister()
-            except:
+            except Exception as ex:
                 print("Exception in module unregister(): %r" %
                       getattr(mod, "__file__", module_name))
-                handle_error()
+                handle_error(ex)
                 return None
 
         mod.__addon_enabled__ = False
@@ -301,8 +307,8 @@ def enable(module_name, *, default_set=False, persistent=False, handle_error=Non
 
             try:
                 importlib.reload(mod)
-            except:
-                handle_error()
+            except Exception as ex:
+                handle_error(ex)
                 del sys.modules[module_name]
                 return None
             mod.__addon_enabled__ = False
@@ -329,7 +335,7 @@ def enable(module_name, *, default_set=False, persistent=False, handle_error=Non
             if type(ex) is ImportError and ex.name == module_name:
                 print("addon not found: %r" % module_name)
             else:
-                handle_error()
+                handle_error(ex)
 
             if default_set:
                 _addon_remove(module_name)
@@ -341,10 +347,10 @@ def enable(module_name, *, default_set=False, persistent=False, handle_error=Non
         # 3) try run the modules register function
         try:
             mod.register()
-        except:
+        except Exception as ex:
             print("Exception in module register(): %r" %
                   getattr(mod, "__file__", module_name))
-            handle_error()
+            handle_error(ex)
             del sys.modules[module_name]
             if default_set:
                 _addon_remove(module_name)
@@ -366,11 +372,15 @@ def disable(module_name, *, default_set=False, handle_error=None):
 
     :arg module_name: The name of the addon and module.
     :type module_name: string
+    :arg default_set: Set the user-preference.
+    :type default_set: bool
+    :arg handle_error: Called in the case of an error, taking an exception argument.
+    :type handle_error: function
     """
     import sys
 
     if handle_error is None:
-        def handle_error():
+        def handle_error(ex):
             import traceback
             traceback.print_exc()
 
@@ -385,10 +395,10 @@ def disable(module_name, *, default_set=False, handle_error=None):
 
         try:
             mod.unregister()
-        except:
+        except Exception as ex:
             print("Exception in module unregister(): %r" %
                   getattr(mod, "__file__", module_name))
-            handle_error()
+            handle_error(ex)
     else:
         print("addon_utils.disable: %s not %s." %
               (module_name, "disabled" if mod is None else "loaded"))
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index b9dc691..363b14c 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -1782,7 +1782,7 @@ class WM_OT_addon_enable(Operator):
 
         err_str = ""
 
-        def err_cb():
+        def err_cb(ex):
             import traceback
             nonlocal err_str
             err_str = traceback.format_exc()
@@ -1826,7 +1826,7 @@ class WM_OT_addon_disable(Operator):
 
         err_str = ""
 
-        def err_cb():
+        def err_cb(ex):
             import traceback
             nonlocal err_str
             err_str = traceback.format_exc()




More information about the Bf-blender-cvs mailing list