From 962b5c1458ec027cc4736cd3f88d79bf41ce4ea2 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 23 Mar 2023 01:19:09 +0100 Subject: [PATCH] Set up validation messages for new publisher --- .../plugins/publish/validate_mesh_non_zero_edge.py | 11 ++++++++--- .../plugins/publish/validate_node_ids_unique.py | 14 +++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/openpype/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py b/openpype/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py index 0adeffd6e8..5ec6e5779b 100644 --- a/openpype/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py +++ b/openpype/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py @@ -5,7 +5,8 @@ import openpype.hosts.maya.api.action from openpype.hosts.maya.api import lib from openpype.pipeline.publish import ( ValidateMeshOrder, - OptionalPyblishPluginMixin + OptionalPyblishPluginMixin, + PublishValidationError ) @@ -74,5 +75,9 @@ class ValidateMeshNonZeroEdgeLength(pyblish.api.InstancePlugin, invalid = self.get_invalid(instance) if invalid: - raise RuntimeError("Meshes found with zero " - "edge length: {0}".format(invalid)) + label = "Meshes found with zero edge length" + raise PublishValidationError( + message="{}: {}".format(label, invalid), + title=label, + description="{}:\n- ".format(label) + "\n- ".join(invalid) + ) diff --git a/openpype/hosts/maya/plugins/publish/validate_node_ids_unique.py b/openpype/hosts/maya/plugins/publish/validate_node_ids_unique.py index f7a5e6e292..61386fc939 100644 --- a/openpype/hosts/maya/plugins/publish/validate_node_ids_unique.py +++ b/openpype/hosts/maya/plugins/publish/validate_node_ids_unique.py @@ -1,7 +1,10 @@ from collections import defaultdict import pyblish.api -from openpype.pipeline.publish import ValidatePipelineOrder +from openpype.pipeline.publish import ( + ValidatePipelineOrder, + PublishValidationError +) import openpype.hosts.maya.api.action from openpype.hosts.maya.api import lib @@ -29,8 +32,13 @@ class ValidateNodeIdsUnique(pyblish.api.InstancePlugin): # Ensure all nodes have a cbId invalid = self.get_invalid(instance) if invalid: - raise RuntimeError("Nodes found with non-unique " - "asset IDs: {0}".format(invalid)) + label = "Nodes found with non-unique asset IDs" + raise PublishValidationError( + message="{}: {}".format(label, invalid), + title="Non-unique asset ids on nodes", + description="{}\n- {}".format(label, + "\n- ".join(sorted(invalid))) + ) @classmethod def get_invalid(cls, instance):