i noticed some un intuive behaviour when using a validator after registering 2 plugins.
1 plugin with families set to [‘character’, ‘mesh’]
1 plugin with family set to “joints”
I assume when I set family property, then the families property automatically becomes [family]
but this is not the case currently
import pyblish.api class ValidateScene(pyblish.api.ContextPlugin): """character and environment should not be in the same scene""" label = "no scene clash" order = pyblish.api.ValidatorOrder hosts = ["maya"] # families =  def process(self, context): chr_found = False env_found = False for instance in context: print '---' families = instance.data.get('families', ) family = instance.data.get('family') print families print family if family and family not in families: families.append(family) if 'character' in families: chr_found = True elif 'environment' in families: env_found = True assert not (chr_found and env_found), "scene shouldn't contain a character and an environment"
--- ['character', 'mesh'] character ---  joints
as you can see in the second plugin where we only set family and not families we have an empty array.
this makes sense since we didn’t save the metadata in the _data dict of our instance.
but from a user experience POV this feels odd.