def test_is_base_method_is_working_properly(self): """testing if Representation.is_base() method is working properly """ rep = Representation(self.version1) self.assertTrue(rep.is_base()) rep = Representation(self.version4) self.assertFalse(rep.is_base())
def _validate_version(self, version): """validates the given version value :param version: A stalker.model.version.Version instance :return: """ if not version: raise RuntimeError( 'Please supply a valid Stalker Version object!' ) from stalker import Version if not isinstance(version, Version): raise TypeError( 'version should be a stalker.models.version.Version instance' ) r = Representation(version=version) self.base_take_name = r.get_base_take_name(version) if not r.is_base(): raise RuntimeError( 'This is not a Base take for this representation series, ' 'please open the base (%s) take!!!' % self.base_take_name ) return version
def check_representations(): """checks if the referenced versions are all matching the representation type of the current version """ ref_reprs = [] wrong_reprs = [] v = staging.get('version') if v: r = Representation(version=v) current_repr = r.repr # For **Base** representation # allow any type of representation to be present in the scene if r.is_base(): return for ref in pm.listReferences(): ref_repr = ref.repr if ref_repr is None: # skip this one this is not related to a Stalker Version continue ref_reprs.append([ref, ref_repr]) if ref_repr != current_repr: wrong_reprs.append(ref) else: return if len(wrong_reprs): ref_repr_labels = [] for ref_repr in ref_reprs: ref = ref_repr[0] repr_name = ref_repr[1] color = 'red' if current_repr != repr_name else 'green' ref_repr_labels.append( '<span style="color: %(color)s">%(repr_name)s</span> -> ' '%(ref)s' % { 'color': color, 'repr_name': repr_name, 'ref': ref.refNode.name() } ) raise PublishError( 'You are saving as the <b>%s</b> representation<br>' 'for the current scene, but the following references<br>' 'are not <b>%s</b> representations of their versions:<br><br>' '%s' % ( current_repr, current_repr, '<br>'.join(ref_repr_labels[:MAX_NODE_DISPLAY]) ) )
def check_representations(): """checks if the referenced versions are all matching the representation type of the current version """ ref_reprs = [] wrong_reprs = [] v = staging.get('version') if v: r = Representation(version=v) current_repr = r.repr # For **Base** representation # allow any type of representation to be present in the scene if r.is_base(): return for ref in pm.listReferences(): ref_repr = ref.repr if ref_repr is None: # skip this one this is not related to a Stalker Version continue ref_reprs.append([ref, ref_repr]) if ref_repr != current_repr: wrong_reprs.append(ref) else: return if len(wrong_reprs): ref_repr_labels = [] for ref_repr in ref_reprs: ref = ref_repr[0] repr_name = ref_repr[1] color = 'red' if current_repr != repr_name else 'green' ref_repr_labels.append( '<span style="color: %(color)s">%(repr_name)s</span> -> ' '%(ref)s' % { 'color': color, 'repr_name': repr_name, 'ref': ref.refNode.name() }) raise PublishError( 'You are saving as the <b>%s</b> representation<br>' 'for the current scene, but the following references<br>' 'are not <b>%s</b> representations of their versions:<br><br>' '%s' % (current_repr, current_repr, '<br>'.join( ref_repr_labels[:MAX_NODE_DISPLAY])))
def is_base(self): """returns True or False depending to if this is the base representation for this reference """ from anima.env.mayaEnv import Maya m = Maya() v = m.get_version_from_full_path(self.path) if v is None: return True rep = Representation(version=v) return rep.is_base()