Bases: InstancePlugin
Validate existence of renderPass layers.
Source code in client/ayon_tvpaint/plugins/publish/validate_layers_visibility.py
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 | class ValidateLayersVisiblity(pyblish.api.InstancePlugin):
"""Validate existence of renderPass layers."""
label = "Validate Layers Visibility"
order = pyblish.api.ValidatorOrder
families = ["review", "render"]
settings_category = "tvpaint"
def process(self, instance):
layers = instance.data.get("layers")
# Instance have empty layers
# - it is not job of this validator to check that
if not layers:
return
layer_names = set()
for layer in layers:
layer_names.add(layer["name"])
if layer["visible"]:
return
instance_label = (
instance.data.get("label") or instance.data["name"]
)
raise PublishXmlValidationError(
self,
"All layers of instance \"{}\" are not visible.".format(
instance_label
),
formatting_data={
"instance_name": instance_label,
"layer_names": "<br/>".join([
"- {}".format(layer_name)
for layer_name in layer_names
])
}
)
|