code: def test_builder_tuple(self):
      net = core.Net("builder_template")
      iter_blob = "iter"
      net.Python((op_builder, ["name", 5], {"extra": 4.2}))(
          [iter_blob], []
      )
      net.Python((op_builder, ["name", 5], {"extra": 4.2}))(
          [iter_blob], []
      )
      for repeat in range(2):
          # check that the builder will be called exactly once for each
          # PythonOp constructor. Cloning the net will also trigger a call
          # to the builder when the net is created.
          cloned_net = net.Clone("builder_%d" % repeat)
          workspace.FeedBlob(iter_blob, np.array([0]))
          # Builder gets called once per python op in the line below
          workspace.CreateNet(cloned_net)
          for i in range(10):
              workspace.FeedBlob(iter_blob, np.array([i]))
              workspace.RunNet(cloned_net)
  
imports: from caffe2.python import core, workspace
  from caffe2.python.core import CreatePythonOperator
  import caffe2.python.hypothesis_test_util
  from hypothesis import given, settings
  import hypothesis.strategies
  import numpy
label_desc: Use image node_id 5 for calling the PythonOpTest obj's underlying member method code with example usage: obj.test_builder_tuple() without return types