diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-09-07 17:03:01 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-09-07 17:03:01 +0300 |
commit | daf7aed849fdfbb86c4f6b27e3f7b13c7001abe5 (patch) | |
tree | 1a3553ce28ce00e49cd0876bb6830baa0ab317fa /release | |
parent | e44bf43f6cadd89bb37c472f27839a8cea034b3d (diff) |
PyAPI: use bl_rna_get_subclass for node API
Returns a default value instead of an error when the type isn't defined.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/modules/nodeitems_utils.py | 14 |
1 files changed, 10 insertions, 4 deletions
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__ |