From c2c963c703900e5587828cb756e83a28da940ed9 Mon Sep 17 00:00:00 2001 From: Toke Stuart Jepsen Date: Mon, 20 Mar 2023 17:49:26 +0000 Subject: [PATCH] Improve same named nodes error message. --- .../publish/validate_arnold_scene_source.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/openpype/hosts/maya/plugins/publish/validate_arnold_scene_source.py b/openpype/hosts/maya/plugins/publish/validate_arnold_scene_source.py index d09a8610c4..a0e2e84a00 100644 --- a/openpype/hosts/maya/plugins/publish/validate_arnold_scene_source.py +++ b/openpype/hosts/maya/plugins/publish/validate_arnold_scene_source.py @@ -24,7 +24,7 @@ class ValidateArnoldSceneSource(pyblish.api.InstancePlugin): ungrouped_nodes = [] nodes_by_name = {} parents = [] - same_named_nodes = [] + same_named_nodes = {} for node in nodes: node_split = node.split("|") if len(node_split) == 2: @@ -39,16 +39,21 @@ class ValidateArnoldSceneSource(pyblish.api.InstancePlugin): # Check for same same nodes, which can happen in different # hierarchies. if node_name in nodes_by_name: - same_named_nodes.append((node, nodes_by_name[node_name])) + try: + same_named_nodes[node_name].append(node) + except KeyError: + same_named_nodes[node_name] = [ + nodes_by_name[node_name], node + ] nodes_by_name[node_name] = node if same_named_nodes: - raise PublishValidationError( - "Found nodes with the same name:\n{}".format( - "\n".join(["{}".format(n) for n in same_named_nodes]) - ) - ) + message = "Found nodes with the same name:" + for name, nodes in same_named_nodes.items(): + message += "\n\n\"{}\":\n{}".format(name, "\n".join(nodes)) + + raise PublishValidationError(message) return ungrouped_nodes, nodes_by_name, parents