mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-27 14:22:37 +01:00
Raise PublishValidationError
This commit is contained in:
parent
434ed6c620
commit
47ef404f04
5 changed files with 85 additions and 12 deletions
|
|
@ -2,7 +2,17 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
import openpype.hosts.maya.api.action
|
||||
from openpype.pipeline.publish import ValidateMeshOrder
|
||||
from openpype.pipeline.publish import (
|
||||
ValidateMeshOrder,
|
||||
PublishValidationError
|
||||
)
|
||||
|
||||
|
||||
def _as_report_list(values, prefix="- ", suffix="\n"):
|
||||
"""Return list as bullet point list for a report"""
|
||||
if not values:
|
||||
return ""
|
||||
return prefix + (suffix + prefix).join(values)
|
||||
|
||||
|
||||
class ValidateMeshNonManifold(pyblish.api.Validator):
|
||||
|
|
@ -16,7 +26,7 @@ class ValidateMeshNonManifold(pyblish.api.Validator):
|
|||
order = ValidateMeshOrder
|
||||
hosts = ['maya']
|
||||
families = ['model']
|
||||
label = 'Mesh Non-Manifold Vertices/Edges'
|
||||
label = 'Mesh Non-Manifold Edges/Vertices'
|
||||
actions = [openpype.hosts.maya.api.action.SelectInvalidAction]
|
||||
|
||||
@staticmethod
|
||||
|
|
@ -38,5 +48,9 @@ class ValidateMeshNonManifold(pyblish.api.Validator):
|
|||
invalid = self.get_invalid(instance)
|
||||
|
||||
if invalid:
|
||||
raise ValueError("Meshes found with non-manifold "
|
||||
"edges/vertices: {0}".format(invalid))
|
||||
raise PublishValidationError(
|
||||
"Meshes found with non-manifold edges/vertices:\n\n{0}".format(
|
||||
_as_report_list(sorted(invalid))
|
||||
),
|
||||
title="Non-Manifold Edges/Vertices"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -4,10 +4,18 @@ import pyblish.api
|
|||
import openpype.hosts.maya.api.action
|
||||
from openpype.pipeline.publish import (
|
||||
ValidateContentsOrder,
|
||||
OptionalPyblishPluginMixin
|
||||
OptionalPyblishPluginMixin,
|
||||
PublishValidationError
|
||||
)
|
||||
|
||||
|
||||
def _as_report_list(values, prefix="- ", suffix="\n"):
|
||||
"""Return list as bullet point list for a report"""
|
||||
if not values:
|
||||
return ""
|
||||
return prefix + (suffix + prefix).join(values)
|
||||
|
||||
|
||||
class ValidateNoAnimation(pyblish.api.Validator,
|
||||
OptionalPyblishPluginMixin):
|
||||
"""Ensure no keyframes on nodes in the Instance.
|
||||
|
|
@ -31,7 +39,12 @@ class ValidateNoAnimation(pyblish.api.Validator,
|
|||
|
||||
invalid = self.get_invalid(instance)
|
||||
if invalid:
|
||||
raise RuntimeError("Keyframes found: {0}".format(invalid))
|
||||
raise PublishValidationError(
|
||||
"Keyframes found on:\n\n{0}".format(
|
||||
_as_report_list(sorted(invalid))
|
||||
),
|
||||
title="Keyframes on model"
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def get_invalid(instance):
|
||||
|
|
|
|||
|
|
@ -2,7 +2,17 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
import openpype.hosts.maya.api.action
|
||||
from openpype.pipeline.publish import ValidateContentsOrder
|
||||
from openpype.pipeline.publish import (
|
||||
ValidateContentsOrder,
|
||||
PublishValidationError
|
||||
)
|
||||
|
||||
|
||||
def _as_report_list(values, prefix="- ", suffix="\n"):
|
||||
"""Return list as bullet point list for a report"""
|
||||
if not values:
|
||||
return ""
|
||||
return prefix + (suffix + prefix).join(values)
|
||||
|
||||
|
||||
class ValidateNoDefaultCameras(pyblish.api.InstancePlugin):
|
||||
|
|
@ -28,4 +38,10 @@ class ValidateNoDefaultCameras(pyblish.api.InstancePlugin):
|
|||
def process(self, instance):
|
||||
"""Process all the cameras in the instance"""
|
||||
invalid = self.get_invalid(instance)
|
||||
assert not invalid, "Default cameras found: {0}".format(invalid)
|
||||
if invalid:
|
||||
raise PublishValidationError(
|
||||
"Default cameras found:\n\n{0}".format(
|
||||
_as_report_list(sorted(invalid))
|
||||
),
|
||||
title="Default cameras"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -4,10 +4,18 @@ import pyblish.api
|
|||
import openpype.hosts.maya.api.action
|
||||
from openpype.pipeline.publish import (
|
||||
ValidateContentsOrder,
|
||||
OptionalPyblishPluginMixin
|
||||
OptionalPyblishPluginMixin,
|
||||
PublishValidationError
|
||||
)
|
||||
|
||||
|
||||
def _as_report_list(values, prefix="- ", suffix="\n"):
|
||||
"""Return list as bullet point list for a report"""
|
||||
if not values:
|
||||
return ""
|
||||
return prefix + (suffix + prefix).join(values)
|
||||
|
||||
|
||||
class ValidateNoUnknownNodes(pyblish.api.InstancePlugin,
|
||||
OptionalPyblishPluginMixin):
|
||||
"""Checks to see if there are any unknown nodes in the instance.
|
||||
|
|
@ -38,4 +46,9 @@ class ValidateNoUnknownNodes(pyblish.api.InstancePlugin,
|
|||
|
||||
invalid = self.get_invalid(instance)
|
||||
if invalid:
|
||||
raise ValueError("Unknown nodes found: {0}".format(invalid))
|
||||
raise PublishValidationError(
|
||||
"Unknown nodes found:\n\n{0}".format(
|
||||
_as_report_list(sorted(invalid))
|
||||
),
|
||||
title="Unknown nodes"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,13 @@
|
|||
import pyblish.api
|
||||
from maya import cmds
|
||||
from openpype.pipeline.publish import PublishValidationError
|
||||
|
||||
|
||||
def _as_report_list(values, prefix="- ", suffix="\n"):
|
||||
"""Return list as bullet point list for a report"""
|
||||
if not values:
|
||||
return ""
|
||||
return prefix + (suffix + prefix).join(values)
|
||||
|
||||
|
||||
class ValidateNoVRayMesh(pyblish.api.InstancePlugin):
|
||||
|
|
@ -11,6 +19,9 @@ class ValidateNoVRayMesh(pyblish.api.InstancePlugin):
|
|||
|
||||
def process(self, instance):
|
||||
|
||||
if not cmds.pluginInfo("vrayformaya", query=True, loaded=True):
|
||||
return
|
||||
|
||||
shapes = cmds.ls(instance,
|
||||
shapes=True,
|
||||
type="mesh")
|
||||
|
|
@ -20,5 +31,11 @@ class ValidateNoVRayMesh(pyblish.api.InstancePlugin):
|
|||
source=True) or []
|
||||
vray_meshes = cmds.ls(inputs, type='VRayMesh')
|
||||
if vray_meshes:
|
||||
raise RuntimeError("Meshes that are VRayMeshes shouldn't "
|
||||
"be pointcached: {0}".format(vray_meshes))
|
||||
raise PublishValidationError(
|
||||
"Meshes that are V-Ray Proxies should not be in an Alembic "
|
||||
"pointcache.\n"
|
||||
"Found V-Ray proxies:\n\n{}".format(
|
||||
_as_report_list(sorted(vray_meshes))
|
||||
),
|
||||
title="V-Ray Proxies in pointcache"
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue