[Bf-blender-cvs] [daf7aed849f] master: PyAPI: use bl_rna_get_subclass for node API

Campbell Barton noreply at git.blender.org
Thu Sep 7 15:59:25 CEST 2017


Commit: daf7aed849fdfbb86c4f6b27e3f7b13c7001abe5
Author: Campbell Barton
Date:   Fri Sep 8 00:03:01 2017 +1000
Branches: master
https://developer.blender.org/rBdaf7aed849fdfbb86c4f6b27e3f7b13c7001abe5

PyAPI: use bl_rna_get_subclass for node API

Returns a default value instead of an error when the type isn't defined.

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

M	release/scripts/modules/nodeitems_utils.py

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

diff --git a/release/scripts/modules/nodeitems_utils.py b/release/scripts/modules/nodeitems_utils.py
index 4be6e340760..7dc456f6c98 100644
--- a/release/scripts/modules/nodeitems_utils.py
+++ b/release/scripts/modules/nodeitems_utils.py
@@ -59,8 +59,11 @@ class NodeItem:
             return self._label
         else:
             # if no custom label is defined, fall back to the node type UI name
-            cls = next(cls for cls in bpy.types.Node.__subclasses__() if cls.bl_rna.identifier == self.nodetype)
-            return cls.bl_rna.name
+            cls = bpy.types.Node.bl_rna_get_subclass(self.nodetype)
+            if cls is not None:
+                return cls.bl_rna.name
+            else:
+                return "Unknown"
 
     @property
     def translation_context(self):
@@ -68,8 +71,11 @@ class NodeItem:
             return bpy.app.translations.contexts.default
         else:
             # if no custom label is defined, fall back to the node type UI name
-            cls = next(cls for cls in bpy.types.Node.__subclasses__() if cls.bl_rna.identifier == self.nodetype)
-            return cls.bl_rna.translation_context
+            cls = bpy.types.Node.bl_rna_get_subclass(self.nodetype)
+            if cls is not None:
+                return cls.bl_rna.translation_context
+            else:
+                return bpy.app.translations.contexts.default
 
     # NB: is a staticmethod because called with an explicit self argument
     # NodeItemCustom sets this as a variable attribute in __init__



More information about the Bf-blender-cvs mailing list