mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
validate list of node types
This commit is contained in:
parent
df235d3ad1
commit
5f79df6dd6
3 changed files with 49 additions and 0 deletions
|
|
@ -1,6 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Maya validator for render settings."""
|
||||
import re
|
||||
from collections import OrderedDict
|
||||
|
||||
from maya import cmds, mel
|
||||
|
||||
|
|
@ -213,6 +214,44 @@ class ValidateRenderSettings(pyblish.api.InstancePlugin):
|
|||
cls.log.error("Expecting padding of {} ( {} )".format(
|
||||
cls.DEFAULT_PADDING, "0" * cls.DEFAULT_PADDING))
|
||||
|
||||
# load validation definitions from settings
|
||||
validation_settings = (
|
||||
instance.context.data["project_settings"]["maya"]["publish"]["ValidateRenderSettings"].get(
|
||||
"{}_render_attributes".format(renderer))
|
||||
)
|
||||
from pprint import pprint
|
||||
pprint(validation_settings)
|
||||
# go through definitions and test if such node.attribute exists.
|
||||
# if so, compare its value from the one required.
|
||||
for attr, value in OrderedDict(validation_settings).items():
|
||||
# first get node of that type
|
||||
cls.log.debug("{}: {}".format(attr, value))
|
||||
node_type = attr.split(".")[0]
|
||||
attribute_name = ".".join(attr.split(".")[1:])
|
||||
nodes = cmds.ls(type=node_type)
|
||||
|
||||
if not isinstance(nodes, list):
|
||||
cls.log.warning("No nodes of '{}' found.".format(node_type))
|
||||
continue
|
||||
|
||||
for node in nodes:
|
||||
try:
|
||||
render_value = cmds.getAttr(
|
||||
"{}.{}".format(node, attribute_name))
|
||||
except RuntimeError as e:
|
||||
invalid = True
|
||||
cls.log.error(
|
||||
"Cannot get value of {}.{}".format(
|
||||
node, attribute_name))
|
||||
else:
|
||||
if value != render_value:
|
||||
invalid = True
|
||||
cls.log.error(
|
||||
("Invalid value {} set on {}.{}. "
|
||||
"Expecting {}").format(
|
||||
render_value, node, attribute_name, value)
|
||||
)
|
||||
|
||||
return invalid
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -135,6 +135,12 @@
|
|||
"enabled": false,
|
||||
"attributes": {}
|
||||
},
|
||||
"ValidateRenderSettings": {
|
||||
"arnold_render_attributes": [],
|
||||
"vray_render_attributes": [],
|
||||
"redshift_render_attributes": [],
|
||||
"renderman_render_attributes": []
|
||||
},
|
||||
"ValidateModelName": {
|
||||
"enabled": false,
|
||||
"material_file": {
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@
|
|||
"children": [
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"store_as_list": true,
|
||||
"key": "arnold_render_attributes",
|
||||
"label": "Arnold Render Attributes",
|
||||
"use_label_wrap": true,
|
||||
|
|
@ -90,6 +91,7 @@
|
|||
},
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"store_as_list": true,
|
||||
"key": "vray_render_attributes",
|
||||
"label": "Vray Render Attributes",
|
||||
"use_label_wrap": true,
|
||||
|
|
@ -99,6 +101,7 @@
|
|||
},
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"store_as_list": true,
|
||||
"key": "redshift_render_attributes",
|
||||
"label": "Redshift Render Attributes",
|
||||
"use_label_wrap": true,
|
||||
|
|
@ -108,6 +111,7 @@
|
|||
},
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"store_as_list": true,
|
||||
"key": "renderman_render_attributes",
|
||||
"label": "Renderman Render Attributes",
|
||||
"use_label_wrap": true,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue