PyAPI: use bl_rna_get_subclass for node API

Returns a default value instead of an error when the type isn't defined.
This commit is contained in:
Campbell Barton 2017-09-08 00:03:01 +10:00
parent e44bf43f6c
commit daf7aed849

View File

@ -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__