def __init__(self, name="SystemCommand"): Gaffer.ExecutableNode.__init__(self, name) self["command"] = Gaffer.StringPlug() self["substitutions"] = Gaffer.CompoundDataPlug() self["environmentVariables"] = Gaffer.CompoundDataPlug()
def _setupPlugs(parent_plug): if "deadline" in parent_plug: return parent_plug["deadline"] = Gaffer.Plug() parent_plug["deadline"]["comment"] = Gaffer.StringPlug() parent_plug["deadline"]["department"] = Gaffer.StringPlug() parent_plug["deadline"]["pool"] = Gaffer.StringPlug() parent_plug["deadline"]["secondaryPool"] = Gaffer.StringPlug() parent_plug["deadline"]["group"] = Gaffer.StringPlug() parent_plug["deadline"]["priority"] = Gaffer.IntPlug(defaultValue=50, minValue=0, maxValue=100) parent_plug["deadline"]["taskTimeout"] = Gaffer.IntPlug(defaultValue=0, minValue=0) parent_plug["deadline"]["enableAutoTimeout"] = Gaffer.BoolPlug(defaultValue=False) parent_plug["deadline"]["concurrentTasks"] = Gaffer.IntPlug(defaultValue=1, minValue=1, maxValue=16) parent_plug["deadline"]["machineLimit"] = Gaffer.IntPlug(defaultValue=0, minValue=0) parent_plug["deadline"]["machineList"] = Gaffer.StringPlug() parent_plug["deadline"]["isBlackList"] = Gaffer.BoolPlug(defaultValue=False) parent_plug["deadline"]["limits"] = Gaffer.StringPlug() parent_plug["deadline"]["onJobComplete"] = Gaffer.StringPlug() parent_plug["deadline"]["onJobComplete"].setValue("Nothing") parent_plug["deadline"]["submitSuspended"] = Gaffer.BoolPlug(defaultValue=False) parent_plug["deadline"]["dependencyMode"] = Gaffer.StringPlug() parent_plug["deadline"]["dependencyMode"].setValue("Auto") parent_plug["deadline"]["auxFiles"] = Gaffer.StringVectorDataPlug(defaultValue=IECore.StringVectorData()) parent_plug["deadline"]["deadlineSettings"] = Gaffer.CompoundDataPlug() parent_plug["deadline"]["environmentVariables"] = Gaffer.CompoundDataPlug()
def __init__( self, name = "SystemCommand" ) : GafferDispatch.TaskNode.__init__( self, name ) self["command"] = Gaffer.StringPlug() self["shell"] = Gaffer.BoolPlug( defaultValue = True ) self["substitutions"] = Gaffer.CompoundDataPlug() self["environmentVariables"] = Gaffer.CompoundDataPlug()
def testTransformPlugData(self): p = Gaffer.CompoundDataPlug() m1 = p.addMember("a", Gaffer.TransformPlug()) m1["value"]["translate"].setValue(IECore.V3f(1, 2, 3)) self.failUnless(isinstance(m1, Gaffer.ValuePlug)) d, n = p.memberDataAndName(m1) self.assertEqual( d, IECore.M44fData( IECore.M44f([ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 2, 3, 1, ]))) self.assertEqual(n, "a")
def testSetPlug(self): n = Gaffer.Node() n["user"]["p1"] = Gaffer.CompoundDataPlug() n["user"]["p2"] = Gaffer.CompoundDataPlug() m1 = n["user"]["p1"].addMember("test", 10) m2 = n["user"]["p2"].addMember("test", 10) w = GafferUI.CompoundDataPlugValueWidget(n["user"]["p1"]) w1 = w.childPlugValueWidget(m1, lazy=False) self.assertTrue(w1.getPlug().isSame(m1)) w.setPlug(n["user"]["p2"]) w2 = w.childPlugValueWidget(m2, lazy=False) self.assertTrue(w2.getPlug().isSame(m2))
def testCreateWithValuePlug(self): p = Gaffer.CompoundDataPlug() v = Gaffer.IntPlug(minValue=-10, maxValue=10) m1 = Gaffer.NameValuePlug("a", v, flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic) p.addChild(m1) self.assertTrue(v.parent().isSame(m1)) self.assertEqual(m1["value"].getName(), "value") self.assertEqual(m1.getFlags(), Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic) self.assertEqual(p.memberDataAndName(m1), (IECore.IntData(0), "a")) v2 = Gaffer.IntPlug(defaultValue=5, minValue=-10, maxValue=10) m2 = Gaffer.NameValuePlug("b", v2, True, name="blah") p.addChild(m2) self.assertTrue(v2.parent().isSame(m2)) self.assertEqual(m2["value"].getName(), "value") self.assertEqual(m2.getFlags(), Gaffer.Plug.Flags.Default) self.assertEqual(p.memberDataAndName(m2), (IECore.IntData(5), "b"))
def __init__(self, name="PythonCommand"): GafferDispatch.ExecutableNode.__init__(self, name) self["command"] = Gaffer.StringPlug() self["variables"] = Gaffer.CompoundDataPlug() self["sequence"] = Gaffer.BoolPlug()
def __init__( self, name = "SectionedTestNode" ) : Gaffer.Node.__init__( self, name ) self["p"] = Gaffer.CompoundDataPlug() self["p"].addMember( "test1", IECore.IntData( 10 ), "test1", Gaffer.Plug.Flags.Default ) self["p"].addOptionalMember( "test2", IECore.IntData( 20 ), "test2", Gaffer.Plug.Flags.Default )
def testTransformPlugData(self): p = Gaffer.CompoundDataPlug() m1 = Gaffer.NameValuePlug("a", Gaffer.TransformPlug()) p.addChild(m1) m1["value"]["translate"].setValue(imath.V3f(1, 2, 3)) self.assertIsInstance(m1, Gaffer.ValuePlug) d, n = p.memberDataAndName(m1) self.assertEqual( d, IECore.M44fData( imath.M44f( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 2, 3, 1, ))) self.assertEqual(n, "a")
def testBoxPromotion(self): s = Gaffer.ScriptNode() s["b"] = Gaffer.Box() s["b"]["n"] = Gaffer.Node() s["b"]["n"]["p"] = Gaffer.CompoundDataPlug( flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic) p = s["b"].promotePlug(s["b"]["n"]["p"], asUserPlug=False) p.setName("p") def assertPreconditions(script): self.assertEqual(script["b"]["n"]["p"].keys(), []) self.assertEqual(script["b"]["p"].keys(), []) self.assertTrue(script["b"]["n"]["p"].getInput().isSame( script["b"]["p"])) def assertPostconditions(script): self.assertEqual(script["b"]["p"].keys(), ["test"]) self.assertEqual(script["b"]["n"]["p"].keys(), ["test"]) self.assertEqual(script["b"]["p"]["test"].keys(), ["name", "value"]) self.assertEqual(script["b"]["n"]["p"]["test"].keys(), ["name", "value"]) self.assertTrue(script["b"]["n"]["p"].getInput().isSame( script["b"]["p"])) self.assertTrue(script["b"]["n"]["p"]["test"].getInput().isSame( script["b"]["p"]["test"])) self.assertTrue( script["b"]["n"]["p"]["test"]["name"].getInput().isSame( script["b"]["p"]["test"]["name"])) self.assertTrue( script["b"]["n"]["p"]["test"]["value"].getInput().isSame( script["b"]["p"]["test"]["value"])) assertPreconditions(s) with Gaffer.UndoContext(s): p.addMember("test", 10, "test") assertPostconditions(s) s.undo() assertPreconditions(s) s.redo() assertPostconditions(s) s2 = Gaffer.ScriptNode() s2.execute(s.serialise()) assertPostconditions(s2)
def __init__(self, name="HierarchyTask"): super(HierarchyTask, self).__init__(name) Gaffer.Metadata.registerValue(self.__class__, "nodeGadget:color", _HIERARCHY_TASK_COLOR) Gaffer.Metadata.registerValue(self.__class__, "icon", "hierarchy.png") title_plug = Gaffer.StringPlug("title", Gaffer.Plug.Direction.In, defaultValue="No title set.") Gaffer.Metadata.registerPlugValue(title_plug, "nodule:type", "") self.addChild(title_plug) description_plug = Gaffer.StringPlug("description", Gaffer.Plug.Direction.In, defaultValue="No description") Gaffer.Metadata.registerPlugValue(description_plug, "plugValueWidget:type", "GafferUI.MultiLineStringPlugValueWidget") Gaffer.Metadata.registerPlugValue(description_plug, "multiLineStringPlugValueWidget:continuousUpdate", True) Gaffer.Metadata.registerPlugValue(description_plug, "nodule:type", "") self.addChild(description_plug) argument_defaults_plug = Gaffer.CompoundDataPlug("argument_defaults", Gaffer.Plug.Direction.In) Gaffer.Metadata.registerPlugValue(argument_defaults_plug, "nodule:type", "") Gaffer.Metadata.registerValue( argument_defaults_plug, "layout:section", "Settings.Argument_Defaults" ) Gaffer.Metadata.registerValue( argument_defaults_plug, "layout:section:Settings.ArgumentDefaults:summary", "The default values for arguments the task requires." ) self.addChild(argument_defaults_plug) elements_id_plug = Gaffer.StringPlug("elements_id", Gaffer.Plug.Direction.In, defaultValue="") Gaffer.Metadata.registerPlugValue(elements_id_plug, "nodule:type", "") self.addChild(elements_id_plug) per_element_plug = Gaffer.BoolPlug("per_element", Gaffer.Plug.Direction.In, defaultValue=False) Gaffer.Metadata.registerPlugValue(per_element_plug, "nodule:type", "") self.addChild(per_element_plug) in_plug = GafferDispatch.TaskNode.TaskPlug("in", Gaffer.Plug.Direction.In) Gaffer.Metadata.registerPlugValue(in_plug, "nodule:type", "GafferUI::StandardNodule") Gaffer.Metadata.registerPlugValue(in_plug, "nodule:color", _TASK_IN_OUT_COLOR) Gaffer.Metadata.registerPlugValue(in_plug, "noduleLayout:section", "top") Gaffer.Metadata.registerPlugValue(in_plug, "plugValueWidget:type", "") self.addChild(in_plug) out_plug = GafferDispatch.TaskNode.TaskPlug("out", Gaffer.Plug.Direction.Out) Gaffer.Metadata.registerPlugValue(out_plug, "nodule:type", "GafferUI::StandardNodule") Gaffer.Metadata.registerPlugValue(out_plug, "nodule:color", _TASK_IN_OUT_COLOR ) Gaffer.Metadata.registerPlugValue(out_plug, "noduleLayout:section", "bottom") Gaffer.Metadata.registerPlugValue(out_plug, "plugValueWidget:type", "") self.addChild(out_plug) processor_plug = ProcessorPlug("processor", Gaffer.Plug.Direction.In) Gaffer.Metadata.registerPlugValue(processor_plug, "nodule:type", "GafferUI::StandardNodule") Gaffer.Metadata.registerPlugValue(processor_plug, "nodule:color", _PROCESSOR_IN_OUT_COLOR) Gaffer.Metadata.registerPlugValue(processor_plug, "noduleLayout:section", "right") Gaffer.Metadata.registerPlugValue(processor_plug, "plugValueWidget:type", "") self.addChild(processor_plug)
def testSetPlug(self): n = Gaffer.Node() n["user"]["p1"] = Gaffer.CompoundDataPlug() n["user"]["p2"] = Gaffer.CompoundDataPlug() m1 = Gaffer.NameValuePlug("test", 10) n["user"]["p1"].addChild(m1) m2 = Gaffer.NameValuePlug("test", 10) n["user"]["p2"].addChild(m2) w = GafferUI.CompoundDataPlugValueWidget(n["user"]["p1"]) w1 = w.childPlugValueWidget(m1) self.assertTrue(w1.getPlug().isSame(m1)) w.setPlug(n["user"]["p2"]) w2 = w.childPlugValueWidget(m2) self.assertTrue(w2.getPlug().isSame(m2))
def test( self ) : p = Gaffer.CompoundDataPlug() m1 = Gaffer.NameValuePlug( "a", IECore.IntData( 10 ), "member1" ) p.addChild( m1 ) self.assertIsInstance( m1, Gaffer.ValuePlug ) self.assertEqual( m1.getName(), "member1" ) self.assertEqual( m1["name"].getValue(), "a" ) self.assertEqual( m1["value"].getValue(), 10 ) self.assertFalse( "enabled" in m1 ) d, n = p.memberDataAndName( m1 ) self.assertEqual( d, IECore.IntData( 10 ) ) self.assertEqual( n, "a" ) m1["name"].setValue( "b" ) d, n = p.memberDataAndName( m1 ) self.assertEqual( d, IECore.IntData( 10 ) ) self.assertEqual( n, "b" ) m2 = Gaffer.NameValuePlug( "c", IECore.FloatData( .5 ), "member1" ) p.addChild( m2 ) self.assertIsInstance( m2, Gaffer.ValuePlug ) self.assertEqual( m2.getName(), "member2" ) self.assertEqual( m2["name"].getValue(), "c" ) self.assertEqual( m2["value"].getValue(), .5 ) self.assertNotIn( "enabled", m2 ) d, n = p.memberDataAndName( m2 ) self.assertEqual( d, IECore.FloatData( .5 ) ) self.assertEqual( n, "c" ) m3 = Gaffer.NameValuePlug( "o", IECore.StringData( "--" ), True, name = "m" ) p.addChild( m3 ) self.assertIsInstance( m3, Gaffer.ValuePlug ) self.assertEqual( m3.getName(), "m" ) self.assertEqual( m3["name"].getValue(), "o" ) self.assertEqual( m3["value"].getValue(), "--" ) self.assertIn( "enabled", m3 ) self.assertEqual( m3["enabled"].getValue(), True ) d, n = p.memberDataAndName( m3 ) self.assertEqual( d, IECore.StringData( "--" ) ) self.assertEqual( n, "o" ) m3["enabled"].setValue( False ) d, n = p.memberDataAndName( m3 ) self.assertEqual( d, None ) self.assertEqual( n, "" ) # test if creating a plug from data that has a geometric # interpretation specified transfers that interpretation to the plug m4 = Gaffer.NameValuePlug( "vector", IECore.V3fData( imath.V3f( 0 ), IECore.GeometricData.Interpretation.Vector ), True, name = "vector" ) p.addChild( m4 ) self.assertEqual( m4["value"].interpretation(), IECore.GeometricData.Interpretation.Vector )
def __init__( self, name = "PythonCommand" ) : GafferDispatch.TaskNode.__init__( self, name ) # Turn off automatic substitutions for the command, since it's a pain # to have to manually escape things, and the context is available # directly anyway. self["command"] = Gaffer.StringPlug( substitutions = Gaffer.Context.Substitutions.NoSubstitutions ) self["variables"] = Gaffer.CompoundDataPlug() self["sequence"] = Gaffer.BoolPlug()
def testImathMatrixData( self ) : p = Gaffer.CompoundDataPlug() m1 = p.addMember( "a", IECore.M44fData( IECore.M44f( *range(16) ) ) ) self.failUnless( isinstance( m1, Gaffer.ValuePlug ) ) d, n = p.memberDataAndName( m1 ) self.assertEqual( d, IECore.M44fData( IECore.M44f( *range(16) ) ) ) self.assertEqual( n, "a" )
def testImathMatrixData(self): p = Gaffer.CompoundDataPlug() m1 = Gaffer.NameValuePlug("a", IECore.M44fData(imath.M44f(*range(16)))) p.addChild(m1) self.assertIsInstance(m1, Gaffer.ValuePlug) d, n = p.memberDataAndName(m1) self.assertEqual(d, IECore.M44fData(imath.M44f(*range(16)))) self.assertEqual(n, "a")
def testNonValuePlugs(self): p = Gaffer.CompoundDataPlug() p["test"] = Gaffer.NameValuePlug("name", Gaffer.Plug()) with six.assertRaisesRegex(self, RuntimeError, "Not a ValuePlug"): p.hash() d = IECore.CompoundData() with six.assertRaisesRegex(self, RuntimeError, "Not a ValuePlug"): p.fillCompoundData(d)
def testVectorData(self): p = Gaffer.CompoundDataPlug() m1 = p.addMember("a", IECore.FloatVectorData([1, 2, 3])) self.failUnless(isinstance(m1, Gaffer.ValuePlug)) d, n = p.memberDataAndName(m1) self.assertEqual(d, IECore.FloatVectorData([1, 2, 3])) self.assertEqual(n, "a") m2 = p.addMember("b", IECore.IntVectorData([1, 2, 3])) self.failUnless(isinstance(m2, Gaffer.ValuePlug)) d, n = p.memberDataAndName(m2) self.assertEqual(d, IECore.IntVectorData([1, 2, 3])) self.assertEqual(n, "b") m3 = p.addMember("c", IECore.StringVectorData(["1", "2", "3"])) self.failUnless(isinstance(m3, Gaffer.ValuePlug)) d, n = p.memberDataAndName(m3) self.assertEqual(d, IECore.StringVectorData(["1", "2", "3"])) self.assertEqual(n, "c") m4 = p.addMember( "d", IECore.V3fVectorData([IECore.V3f(x) for x in range(1, 5)])) self.failUnless(isinstance(m4, Gaffer.ValuePlug)) d, n = p.memberDataAndName(m4) self.assertEqual( d, IECore.V3fVectorData([IECore.V3f(x) for x in range(1, 5)])) self.assertEqual(n, "d") m5 = p.addMember( "e", IECore.Color3fVectorData([IECore.Color3f(x) for x in range(1, 5)])) self.failUnless(isinstance(m5, Gaffer.ValuePlug)) d, n = p.memberDataAndName(m5) self.assertEqual( d, IECore.Color3fVectorData([IECore.Color3f(x) for x in range(1, 5)])) self.assertEqual(n, "e") m6 = p.addMember( "f", IECore.M44fVectorData([IECore.M44f() * x for x in range(1, 5)])) self.failUnless(isinstance(m6, Gaffer.ValuePlug)) d, n = p.memberDataAndName(m6) self.assertEqual( d, IECore.M44fVectorData([IECore.M44f() * x for x in range(1, 5)])) self.assertEqual(n, "f")
def testAddMembersWithSpecificNames(self): p = Gaffer.CompoundDataPlug() p.addMembers(IECore.CompoundData({"one": 1}), useNameAsPlugName=True) self.assertEqual(len(p), 1) self.assertEqual(p[0].getName(), "one") o = IECore.CompoundObject() p.fillCompoundObject(o) self.assertEqual(o, IECore.CompoundObject({"one": IECore.IntData(1)}))
def testBoxTypes( self ) : p = Gaffer.CompoundDataPlug() for name, value in [ ( "b2f", IECore.Box2fData( imath.Box2f( imath.V2f( 0, 1 ), imath.V2f( 1, 2 ) ) ) ), ( "b2i", IECore.Box2iData( imath.Box2i( imath.V2i( -1, 10 ), imath.V2i( 11, 20 ) ) ) ), ( "b3f", IECore.Box3fData( imath.Box3f( imath.V3f( 0, 1, 2 ), imath.V3f( 3, 4, 5 ) ) ) ), ( "b3i", IECore.Box3iData( imath.Box3i( imath.V3i( 0, 1, 2 ), imath.V3i( 3, 4, 5 ) ) ) ), ] : p.addChild( Gaffer.NameValuePlug( name, value ) ) self.assertEqual( p.memberDataAndName( p[-1] ), ( value, name ) )
def testBoxTypes( self ) : p = Gaffer.CompoundDataPlug() for name, value in [ ( "b2f", IECore.Box2fData( IECore.Box2f( IECore.V2f( 0, 1 ), IECore.V2f( 1, 2 ) ) ) ), ( "b2i", IECore.Box2iData( IECore.Box2i( IECore.V2i( -1, 10 ), IECore.V2i( 11, 20 ) ) ) ), ( "b3f", IECore.Box3fData( IECore.Box3f( IECore.V3f( 0, 1, 2 ), IECore.V3f( 3, 4, 5 ) ) ) ), ( "b3i", IECore.Box3iData( IECore.Box3i( IECore.V3i( 0, 1, 2 ), IECore.V3i( 3, 4, 5 ) ) ) ), ] : m = p.addMember( name, value ) self.assertEqual( p.memberDataAndName( m ), ( value, name ) )
def testAddMembers(self): p = Gaffer.CompoundDataPlug() p.addMembers(IECore.CompoundData({"one": 1, "two": 2})) self.assertEqual(len(p), 2) self.assertEqual(p[0].getName(), "member1") self.assertEqual(p[1].getName(), "member2") c = IECore.CompoundData() p.fillCompoundData(c) self.assertEqual(c, IECore.CompoundData({"one": 1, "two": 2}))
def testAdditionalChildrenRejected(self): p = Gaffer.CompoundDataPlug() self.assertRaises(RuntimeError, p.addChild, Gaffer.IntPlug()) self.assertRaises(RuntimeError, p.addChild, Gaffer.CompoundPlug()) m = p.addMember("a", IECore.IntData(10)) self.assertRaises(RuntimeError, m.addChild, Gaffer.IntPlug()) self.assertRaises(RuntimeError, m.addChild, Gaffer.StringPlug("name")) self.assertRaises(RuntimeError, m.addChild, Gaffer.IntPlug("name")) self.assertRaises(RuntimeError, m.addChild, Gaffer.IntPlug("value"))
def testInternedStringVectorData( self ) : d = IECore.InternedStringVectorData( [ "a", "b" ] ) p = Gaffer.CompoundDataPlug() m = p.addMember( "test", d ) self.assertTrue( isinstance( m["value"], Gaffer.InternedStringVectorDataPlug ) ) self.assertEqual( m["value"].defaultValue(), d ) self.assertEqual( m["value"].getValue(), d ) v, n = p.memberDataAndName( m ) self.assertEqual( v, d ) self.assertEqual( n, "test" )
def testBoxPromotion( self ) : s = Gaffer.ScriptNode() s["b"] = Gaffer.Box() s["b"]["n"] = Gaffer.Node() s["b"]["n"]["p"] = Gaffer.CompoundDataPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic ) p = Gaffer.PlugAlgo.promote( s["b"]["n"]["p"] ) p.setName( "p" ) def assertPreconditions( script ) : self.assertEqual( script["b"]["n"]["p"].keys(), [] ) self.assertEqual( script["b"]["p"].keys(), [] ) self.assertTrue( script["b"]["n"]["p"].getInput().isSame( script["b"]["p"] ) ) def assertPostconditions( script ) : self.assertEqual( script["b"]["p"].keys(), [ "test" ] ) self.assertEqual( script["b"]["n"]["p"].keys(), [ "test" ] ) self.assertEqual( script["b"]["p"]["test"].keys(), [ "name", "value" ] ) self.assertEqual( script["b"]["n"]["p"]["test"].keys(), [ "name", "value" ] ) self.assertTrue( script["b"]["n"]["p"].getInput().isSame( script["b"]["p"] ) ) self.assertTrue( script["b"]["n"]["p"]["test"].getInput().isSame( script["b"]["p"]["test"] ) ) self.assertTrue( script["b"]["n"]["p"]["test"]["name"].getInput().isSame( script["b"]["p"]["test"]["name"] ) ) self.assertTrue( script["b"]["n"]["p"]["test"]["value"].getInput().isSame( script["b"]["p"]["test"]["value"] ) ) assertPreconditions( s ) with Gaffer.UndoScope( s ) : p.addChild( Gaffer.NameValuePlug( "test", 10, "test", Gaffer.Plug.Direction.In, Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic ) ) assertPostconditions( s ) s.undo() assertPreconditions( s ) s.redo() assertPostconditions( s ) s2 = Gaffer.ScriptNode() s2.execute( s.serialise() ) assertPostconditions( s2 )
def test( self ) : p = Gaffer.CompoundDataPlug() m1 = p.addMember( "a", IECore.IntData( 10 ) ) self.failUnless( isinstance( m1, Gaffer.ValuePlug ) ) self.assertEqual( m1.getName(), "member1" ) self.assertEqual( m1["name"].getValue(), "a" ) self.assertEqual( m1["value"].getValue(), 10 ) self.failIf( "enabled" in m1 ) d, n = p.memberDataAndName( m1 ) self.assertEqual( d, IECore.IntData( 10 ) ) self.assertEqual( n, "a" ) m1["name"].setValue( "b" ) d, n = p.memberDataAndName( m1 ) self.assertEqual( d, IECore.IntData( 10 ) ) self.assertEqual( n, "b" ) m2 = p.addMember( "c", IECore.FloatData( .5 ) ) self.failUnless( isinstance( m2, Gaffer.ValuePlug ) ) self.assertEqual( m2.getName(), "member2" ) self.assertEqual( m2["name"].getValue(), "c" ) self.assertEqual( m2["value"].getValue(), .5 ) self.failIf( "enabled" in m2 ) d, n = p.memberDataAndName( m2 ) self.assertEqual( d, IECore.FloatData( .5 ) ) self.assertEqual( n, "c" ) m3 = p.addOptionalMember( "o", IECore.StringData( "--" ), plugName = "m", enabled = True ) self.failUnless( isinstance( m3, Gaffer.ValuePlug ) ) self.assertEqual( m3.getName(), "m" ) self.assertEqual( m3["name"].getValue(), "o" ) self.assertEqual( m3["value"].getValue(), "--" ) self.failUnless( "enabled" in m3 ) self.assertEqual( m3["enabled"].getValue(), True ) d, n = p.memberDataAndName( m3 ) self.assertEqual( d, IECore.StringData( "--" ) ) self.assertEqual( n, "o" ) m3["enabled"].setValue( False ) d, n = p.memberDataAndName( m3 ) self.assertEqual( d, None ) self.assertEqual( n, "" ) # test if creating a plug from data that has a geometric # interpretation specified transfers that interpretation to the plug m4 = p.addOptionalMember( "vector", IECore.V3fData( IECore.V3f( 0 ), IECore.GeometricData.Interpretation.Vector ), plugName = "vector", enabled = True ) self.assertEqual( m4["value"].interpretation(), IECore.GeometricData.Interpretation.Vector )
def testPlugFlags( self ) : p = Gaffer.CompoundDataPlug() m1 = p.addMember( "a", IECore.V3fData( IECore.V3f( 1, 2, 3 ) ), plugFlags = Gaffer.Plug.Flags.Default ) self.assertEqual( m1.getFlags(), Gaffer.Plug.Flags.Default ) self.assertEqual( m1["name"].getFlags(), Gaffer.Plug.Flags.Default) self.assertEqual( m1["value"].getFlags(), Gaffer.Plug.Flags.Default ) m2 = p.addOptionalMember( "a", IECore.V3fData( IECore.V3f( 1, 2, 3 ) ), plugFlags = Gaffer.Plug.Flags.Default ) self.assertEqual( m2.getFlags(), Gaffer.Plug.Flags.Default ) self.assertEqual( m2["name"].getFlags(), Gaffer.Plug.Flags.Default ) self.assertEqual( m2["value"].getFlags(), Gaffer.Plug.Flags.Default ) self.assertEqual( m2["enabled"].getFlags(), Gaffer.Plug.Flags.Default )
def test(self): p = Gaffer.CompoundDataPlug() m1 = p.addMember("a", IECore.IntData(10)) self.failUnless(isinstance(m1, Gaffer.CompoundPlug)) self.assertEqual(m1.getName(), "member1") self.assertEqual(m1["name"].getValue(), "a") self.assertEqual(m1["value"].getValue(), 10) self.failIf("enabled" in m1) d, n = p.memberDataAndName(m1) self.assertEqual(d, IECore.IntData(10)) self.assertEqual(n, "a") m1["name"].setValue("b") d, n = p.memberDataAndName(m1) self.assertEqual(d, IECore.IntData(10)) self.assertEqual(n, "b") m2 = p.addMember("c", IECore.FloatData(.5)) self.failUnless(isinstance(m2, Gaffer.CompoundPlug)) self.assertEqual(m2.getName(), "member2") self.assertEqual(m2["name"].getValue(), "c") self.assertEqual(m2["value"].getValue(), .5) self.failIf("enabled" in m2) d, n = p.memberDataAndName(m2) self.assertEqual(d, IECore.FloatData(.5)) self.assertEqual(n, "c") m3 = p.addOptionalMember("o", IECore.StringData("--"), plugName="m", enabled=True) self.failUnless(isinstance(m3, Gaffer.CompoundPlug)) self.assertEqual(m3.getName(), "m") self.assertEqual(m3["name"].getValue(), "o") self.assertEqual(m3["value"].getValue(), "--") self.failUnless("enabled" in m3) self.assertEqual(m3["enabled"].getValue(), True) d, n = p.memberDataAndName(m3) self.assertEqual(d, IECore.StringData("--")) self.assertEqual(n, "o") m3["enabled"].setValue(False) d, n = p.memberDataAndName(m3) self.assertEqual(d, None) self.assertEqual(n, "")
def testNonAlphanumericNames(self): p = Gaffer.CompoundDataPlug() p.addMembers( IECore.CompoundData({ "test:A": 10, "@j": 20 }), useNameAsPlugName=True, ) self.assertEqual(set(p.keys()), {"test_A", "_j"}) self.assertEqual(p["test_A"]["value"].getValue(), 10) self.assertEqual(p["_j"]["value"].getValue(), 20)
def testDefaultValues(self): p = Gaffer.CompoundDataPlug() m = p.addMember("a", IECore.IntData(10)) self.assertTrue(m["value"].defaultValue(), 10) self.assertTrue(m["value"].getValue(), 10) m = p.addMember("b", IECore.FloatData(20)) self.assertTrue(m["value"].defaultValue(), 20) self.assertTrue(m["value"].getValue(), 20) m = p.addMember("c", IECore.StringData("abc")) self.assertTrue(m["value"].defaultValue(), "abc") self.assertTrue(m["value"].getValue(), "abc")