Hi!
I am starting to work with pyblish. I have two Validators, ValidateNamingConvention and ValidateUniqueNames.
I have an Action, SelectInvalidNodes that selects the problematic nodes in maya, as shown in the documentation with a little twist.
class SelectInvalidNodes(pyblish.api.Action):
label = "Select invalid nodes"
on = "failed"
icon = "hand-o-up"
def process(self, context, plugin):
import pymel.core as pm
self.log.info("Finding bad nodes..")
nodes = []
for result in context.data["results"]:
if result["error"]:
instance = result["instance"]
nodes.extend(instance.data['invalidNodes'])
pm.select(nodes)
In the validators, I set the invalid nodes as instance.data['invalidNodes'] = invalid
.
The problem is, it is not plugin dependent, so when I select the Action on one of the failed Validators, the invalid nodes from the plugin that was run last get selected (not the one I clicked), because it overwrites the instance.data['invalidNodes']
.
I can overcome this error, if I set them in the data, by some unique, plugin dependent name, but it doesn’t seem right.
What is the best way to do it?