From 48ca91a3645789784a36ca69b2db711695d67bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 17 May 2016 17:30:57 +0200 Subject: [PATCH] Skip nodes of unsupported node_type (instead of raising exception) --- blender_cloud/gui.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/blender_cloud/gui.py b/blender_cloud/gui.py index 106cf05..05b7157 100644 --- a/blender_cloud/gui.py +++ b/blender_cloud/gui.py @@ -69,9 +69,11 @@ class MenuItem: SUPPORTED_NODE_TYPES = {'UP', 'group_texture', 'texture'} def __init__(self, node, file_desc, thumb_path: str, label_text): + self.log = logging.getLogger('%s.MenuItem' % __name__) if node['node_type'] not in self.SUPPORTED_NODE_TYPES: + self.log.info('Invalid node type in node: %s', node) raise TypeError('Node of type %r not supported; supported are %r.' % ( - node.group_texture, self.SUPPORTED_NODE_TYPES)) + node['node_type'], self.SUPPORTED_NODE_TYPES)) self.node = node # pillarsdk.Node, contains 'node_type' key to indicate type self.file_desc = file_desc # pillarsdk.File object, or None if a 'folder' node. @@ -485,6 +487,9 @@ class BlenderCloudBrowser(bpy.types.Operator): self.log.debug('Iterating over child nodes of %r', self.node_uuid) for child in children: # print(' - %(_id)s = %(name)s' % child) + if child['node_type'] not in MenuItem.SUPPORTED_NODE_TYPES: + self.log.debug('Skipping node of type %r', child['node_type']) + continue self.add_menu_item(child, None, 'FOLDER', child['name']) # There are only sub-nodes at the project level, no texture nodes,