MCPcopy Create free account
hub / github.com/ImageEngine/cortex / _applyClassVector

Method _applyClassVector

python/IECore/BasicPreset.py:467–519  ·  view source on GitHub ↗
( self, parameterised, parameter, data, parameterList=[], invertList=False )

Source from the content-addressed store, hash-verified

465 self._applyHierarchy( parameterised, c.parameters(), data["_classValue_"], parameterList, invertList )
466
467 def _applyClassVector( self, parameterised, parameter, data, parameterList=[], invertList=False ) :
468
469 if not isinstance( parameter, IECore.ClassVectorParameter ) :
470 IECore.msg(
471 IECore.Msg.Level.Warning,
472 "IECore.BasicPreset",
473 "Unable to restore to '%s' (%s) as it isnt a ClassVectorParameter"
474 % ( parameter.name, parameter )
475 )
476 return
477
478 overwrite = self.parameters()["overwriteMatchingComponents"].getTypedValue()
479
480 names = data["_classNames_"]
481 versions = data["_classVersions_"]
482 paramNames = data["_classOrder_"]
483
484 for i in range( len( data["_classNames_"] ) ) :
485
486 # We still have the class information, even if
487 # there were no parameter values saved.
488 if paramNames[i] not in data["_values_"] :
489 continue
490
491 if overwrite:
492
493 c = None
494
495 if paramNames[i] in parameter:
496 c = parameter.getClass( paramNames[i], True )
497
498 if not c or c[1:] != ( paramNames[i], names[i], versions[i] ) :
499 parameter.setClass( paramNames[i], names[i], versions[i] )
500
501 c = parameter.getClass( paramNames[i], True )
502
503 else:
504
505 c = self._addClassToVector(
506 parameter,
507 paramNames[i],
508 names[i],
509 versions[i],
510 )
511
512
513 self._applyHierarchy(
514 parameterised,
515 c[0].parameters(),
516 data["_values_"][ paramNames[i] ],
517 parameterList,
518 invertList
519 )
520
521 def _addClassToVector( self, parameter, parameterName, className, classVersion ) :
522

Callers 1

_applyHierarchyMethod · 0.95

Calls 7

_addClassToVectorMethod · 0.95
_applyHierarchyMethod · 0.95
msgMethod · 0.80
lenFunction · 0.50
parametersMethod · 0.45
getClassMethod · 0.45
setClassMethod · 0.45

Tested by

no test coverage detected