diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-07-25 10:36:49 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-07-25 10:36:49 +0300 |
commit | 9bdd12d884c5130397e67f72caad2770d9524c9a (patch) | |
tree | f26951742aadf0c14810ed581bad9393cc2d23ec /release/scripts/modules | |
parent | d99532e1d8fd49019003046dcf471c85a52e0398 (diff) | |
parent | d1dc5e0a53c5a3484b7d20eb3a9847b53a227791 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'release/scripts/modules')
-rw-r--r-- | release/scripts/modules/bl_i18n_utils/utils_spell_check.py | 2 | ||||
-rw-r--r-- | release/scripts/modules/bpy/utils/__init__.py | 42 | ||||
-rw-r--r-- | release/scripts/modules/keyingsets_utils.py | 2 |
3 files changed, 44 insertions, 2 deletions
diff --git a/release/scripts/modules/bl_i18n_utils/utils_spell_check.py b/release/scripts/modules/bl_i18n_utils/utils_spell_check.py index 285e2ebe477..b33588c903b 100644 --- a/release/scripts/modules/bl_i18n_utils/utils_spell_check.py +++ b/release/scripts/modules/bl_i18n_utils/utils_spell_check.py @@ -128,7 +128,7 @@ class SpellChecker: "multisampling", "multiscatter", "multitexture", - "multithreaded", + "multithreaded", "multiuser", "multiview", "namespace", diff --git a/release/scripts/modules/bpy/utils/__init__.py b/release/scripts/modules/bpy/utils/__init__.py index 1d555ae7123..703a61f72f5 100644 --- a/release/scripts/modules/bpy/utils/__init__.py +++ b/release/scripts/modules/bpy/utils/__init__.py @@ -37,6 +37,7 @@ __all__ = ( "register_module", "register_manual_map", "unregister_manual_map", + "register_submodule_factory", "make_rna_paths", "manual_map", "previews", @@ -684,6 +685,47 @@ def unregister_module(module, verbose=False): print("done.\n") +def register_submodule_factory(module_name, submodule_names): + """ + Utility function to create register and unregister functions + which simply load submodules, + calling their register & unregister functions. + + .. note:: + + Modules are registered in the order given, + unregistered in reverse order. + + :arg module_name: The module name, typically ``__name__``. + :type module_name: string + :arg submodule_names: List of submodule names to load and unload. + :type submodule_names: list of strings + :return: register and unregister functions. + :rtype: tuple pair of functions + """ + + module = None + submodules = [] + + def register(): + nonlocal module + module = __import__(name=module_name, fromlist=submodule_names) + submodules[:] = [getattr(module, name) for name in submodule_names] + for mod in submodules: + mod.register() + + def unregister(): + from sys import modules + for mod in reversed(submodules): + mod.unregister() + name = mod.__name__ + delattr(module, name.partition(".")[2]) + del modules[name] + submodules.clear() + + return register, unregister + + # ----------------------------------------------------------------------------- # Manual lookups, each function has to return a basepath and a sequence # of... diff --git a/release/scripts/modules/keyingsets_utils.py b/release/scripts/modules/keyingsets_utils.py index 8cef64c3590..7ce5f3e029b 100644 --- a/release/scripts/modules/keyingsets_utils.py +++ b/release/scripts/modules/keyingsets_utils.py @@ -232,7 +232,7 @@ bbone_property_ids = ( "bbone_scalein", "bbone_scaleout", - # NOTE: These are in the nested bone struct + # NOTE: These are in the nested bone struct # Do it this way to force them to be included # in whatever actions are being keyed here "bone.bbone_in", |