code: def convert_Permutate(
      func, opset_version, input_names, output_names, context
  ):
      gb = onnx_helper.GraphBuilder()
      indices_name = context.get_name(func.indices)
      if func.inv:
          empty = context.add_const(
              np.zeros(dtype=np.int64, shape=func.indices.shape),
              "empty",
          )
          r = context.add_const(
              np.arange(len(func.indices), dtype=np.int64), "range"
          )
          op = "ScatterElements" if opset_version == 11 else "Scatter"
          indices_name = gb.op(op, [empty, indices_name, r])
      input_names.append(indices_name)
      gb.op_output_named(
          "Gather", input_names, output_names, axis=func.axis
      )
      return gb.nodes()
  
imports: import warnings
  import chainer
  import numpy
  import onnx
  from onnx.mapping import NP_TYPE_TO_TENSOR_TYPE
  from onnx_chainer.functions.opset_version import support
  from onnx_chainer import onnx_helper
label_desc: Use image node_id 10 for calling a global function with example usage: convert_Permutate(func, opset_version, input_names, output_names, context) and returns: gb