From b07e983b613b9dd61262d4ff45908c33b0b9e8a1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 5 Sep 2017 00:22:31 +1000 Subject: [PATCH] PyAPI: Add bpy.utils.register_classes_factory Avoids having boiler plate register/unregister functions. --- release/scripts/modules/bpy/utils/__init__.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/release/scripts/modules/bpy/utils/__init__.py b/release/scripts/modules/bpy/utils/__init__.py index 966a1fe877c..185a0e73279 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_classes_factory", "register_submodule_factory", "make_rna_paths", "manual_map", @@ -702,6 +703,24 @@ def unregister_module(module, verbose=False): print("done.\n") +def register_classes_factory(classes): + """ + Utility function to create register and unregister functions + which simply registers and unregisters a sequence of classes. + """ + def register(): + from bpy.utils import register_class + for cls in classes: + register_class(cls) + + def unregister(): + from bpy.utils import unregister_class + for cls in reversed(classes): + unregister_class(cls) + + return register, unregister + + def register_submodule_factory(module_name, submodule_names): """ Utility function to create register and unregister functions