Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2016-01-07 15:33:51 +0300
committerCampbell Barton <ideasman42@gmail.com>2016-01-07 15:33:51 +0300
commit3ad1e4fab9816355cfcae1931528e85778281d7b (patch)
tree2daa2fc0b484b7f93c4ed96a7e50ca5137e8aae5 /release/scripts/modules/addon_utils.py
parent3e530f9439192d0d36746a1f7d20a249653f2c3e (diff)
addon_utils: improve docstrings
Also make error handler take the exception as its argument.
Diffstat (limited to 'release/scripts/modules/addon_utils.py')
-rw-r--r--release/scripts/modules/addon_utils.py34
1 files changed, 22 insertions, 12 deletions
diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py
index 560ddb9c954..95c0e5f187d 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"))