From db34b11c26bcc8cdfffec48e0e14ad70df85fb1f Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 4 Oct 2017 18:02:30 +0200 Subject: [PATCH] Improve ValidateRenderSettings; fix class name, fix checking prefix within the layer, remove redundant AttributeError --- .../maya/publish/validate_rendersettings.py | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/colorbleed/plugins/maya/publish/validate_rendersettings.py b/colorbleed/plugins/maya/publish/validate_rendersettings.py index d69bebc686..56fa9197fa 100644 --- a/colorbleed/plugins/maya/publish/validate_rendersettings.py +++ b/colorbleed/plugins/maya/publish/validate_rendersettings.py @@ -2,15 +2,16 @@ import maya.cmds as cmds import pyblish.api import colorbleed.api +import colorbleed.maya.lib as lib -class ValidateResources(pyblish.api.InstancePlugin): +class ValidateRenderSettings(pyblish.api.InstancePlugin): """Validates the global render settings * File Name Prefix must be as followed: - * vray: renders/// - * arnold: renders/// - * default: renders/// + * vray: // + * arnold: // + * default: // * Frame Padding must be: * default: 4 @@ -21,27 +22,31 @@ class ValidateResources(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["colorbleed.renderlayer"] - def process(self, instance): - - renderer = cmds.getAttr("defaultRenderGlobals.currentRenderer") - - default_padding = 4 - default_prefix = { + DEFAULT_PADDING = 4 + DEFAULT_PREFIX = { "vray": "/_/", "arnold": "/_/" - } + } - if renderer == "vray": - prefix = cmds.getAttr("vraySettings.fileNamePrefix") - padding = cmds.getAttr("vraySettings.fileNamePadding") - else: - prefix = cmds.getAttr("defaultRenderGlobals.fileNamePrefix") - padding = cmds.getAttr("defaultRenderGlobals.fileNamePadding") + def process(self, instance): - filename_prefix = default_prefix[renderer] - assert padding == default_padding, ( - "Expecting padding of 4 ( 0000 )" - ) + renderer = instance.data['renderer'] + layer_node = instance.data['setMembers'] + + # Collect the filename prefix in the renderlayer + with lib.renderlayer(layer_node): + if renderer == "vray": + prefix = cmds.getAttr("vraySettings.fileNamePrefix") + padding = cmds.getAttr("vraySettings.fileNamePadding") + else: + prefix = cmds.getAttr("defaultRenderGlobals.fileNamePrefix") + padding = cmds.getAttr("defaultRenderGlobals.fileNamePadding") + + filename_prefix = self.DEFAULT_PREFIX[renderer] assert prefix == filename_prefix, ( "Wrong file name prefix, expecting %s" % filename_prefix ) + assert padding == self.DEFAULT_PADDING, ( + "Expecting padding of {} ( {} )".format(self.DEFAULT_PADDING, + "0"*self.DEFAULT_PADDING) + )