parameters: (op_proto)
return_statement: return OpInfo(
          method=__impl__,
          name=op_proto.type,
          inputs=[(var.name, var.duplicable) for var in op_proto.inputs],
          outputs=[(var.name, var.duplicable) for var in op_proto.outputs],
          attrs=[attr.name for attr in op_proto.attrs])
docstring: Generate op creation method for an OpProto.
docstring_summary: Generate op creation method for an OpProto.
docstring_tokens: Generate op creation method for an OpProto .
function: def create_op_creation_method(op_proto):
      """
      Generate op creation method for an OpProto.
      """
      method = OpDescCreationMethod(op_proto)
  
      def __impl__(*args, **kwargs):
          opdesc = method(*args, **kwargs)
          return core.Operator.create(opdesc.SerializeToString())
  
      return OpInfo(
          method=__impl__,
          name=op_proto.type,
          inputs=[(var.name, var.duplicable) for var in op_proto.inputs],
          outputs=[(var.name, var.duplicable) for var in op_proto.outputs],
          attrs=[attr.name for attr in op_proto.attrs])
function_tokens: def create_op_creation_method ( op_proto ) : method = OpDescCreationMethod ( op_proto ) def __impl__ ( * args , * * kwargs ) : opdesc = method ( * args , * * kwargs ) return core . Operator . create ( opdesc . SerializeToString ( ) ) return OpInfo ( method = __impl__ , name = op_proto . type , inputs = [ ( var . name , var . duplicable ) for var in op_proto . inputs ] , outputs = [ ( var . name , var . duplicable ) for var in op_proto . outputs ] , attrs = [ attr . name for attr in op_proto . attrs ] )