Cleanup: quiet float argument to in type warning
[blender-addons.git] / magic_uv / utils / bl_class_registry.py
blob2929acd92bbd1e0e0759f7605855dc5271aa7c90
1 # SPDX-License-Identifier: GPL-2.0-or-later
3 __author__ = "Nutti <nutti.metro@gmail.com>"
4 __status__ = "production"
5 __version__ = "6.6"
6 __date__ = "22 Apr 2022"
8 import bpy
10 from .. import common
13 class BlClassRegistry:
14 class_list = []
16 def __init__(self, *_, **kwargs):
17 self.legacy = kwargs.get('legacy', False)
19 def __call__(self, cls):
20 if hasattr(cls, "bl_idname"):
21 BlClassRegistry.add_class(cls.bl_idname, cls, self.legacy)
22 elif hasattr(cls, "bl_context"):
23 bl_idname = "{}{}{}{}".format(cls.bl_space_type,
24 cls.bl_region_type,
25 cls.bl_context, cls.bl_label)
26 BlClassRegistry.add_class(bl_idname, cls, self.legacy)
27 else:
28 bl_idname = "{}{}{}".format(cls.bl_space_type,
29 cls.bl_region_type,
30 cls.bl_label)
31 BlClassRegistry.add_class(bl_idname, cls, self.legacy)
32 return cls
34 @classmethod
35 def add_class(cls, bl_idname, op_class, legacy):
36 for class_ in cls.class_list:
37 if (class_["bl_idname"] == bl_idname) and \
38 (class_["legacy"] == legacy):
39 raise RuntimeError("{} is already registered"
40 .format(bl_idname))
42 new_op = {
43 "bl_idname": bl_idname,
44 "class": op_class,
45 "legacy": legacy,
47 cls.class_list.append(new_op)
48 common.debug_print("{} is registered.".format(bl_idname))
50 @classmethod
51 def register(cls):
52 for class_ in cls.class_list:
53 bpy.utils.register_class(class_["class"])
54 common.debug_print("{} is registered to Blender."
55 .format(class_["bl_idname"]))
57 @classmethod
58 def unregister(cls):
59 for class_ in cls.class_list:
60 bpy.utils.unregister_class(class_["class"])
61 common.debug_print("{} is unregistered from Blender."
62 .format(class_["bl_idname"]))
64 @classmethod
65 def cleanup(cls):
66 cls.class_list = []
67 common.debug_print("Cleanup registry.")