code: def _make_mxnet_args(args, temp_args):
      """Pack arguments into c args mxnet call accept"""
      num_args = len(args)
      values = (MXNetValue * num_args)()
      type_codes = (ctypes.c_int * num_args)()
      for i, arg in enumerate(args):
          if isinstance(arg, NDArrayBase):
              values[i].v_handle = arg.handle
              type_codes[i] = TypeCode.NDARRAYHANDLE
          elif isinstance(arg, Integral):
              if arg > _MAX_VALUE_64_BIT_UNSIGNED_:
                  raise OverflowError("Integer out of bounds")
              if arg > _MAX_VALUE_64_BIT_SIGNED_:
                  values[i].v_uint64 = arg
                  type_codes[i] = TypeCode.UINT
              else:
                  values[i].v_int64 = arg
                  type_codes[i] = TypeCode.INT
          elif isinstance(arg, ObjectBase):
              values[i].v_handle = arg.handle
              type_codes[i] = TypeCode.OBJECT_HANDLE
          elif arg is None:
              values[i].v_handle = None
              type_codes[i] = TypeCode.NULL
          elif isinstance(arg, PyNativeObject):
              values[i].v_handle = arg.__mxnet_object__.handle
              type_codes[i] = TypeCode.OBJECT_HANDLE
          elif isinstance(arg, Number):
              values[i].v_float64 = arg
              type_codes[i] = TypeCode.FLOAT
          elif isinstance(arg, str):
              values[i].v_str = c_str(arg)
              type_codes[i] = TypeCode.STR
          elif isinstance(arg, (list, tuple, dict)):
              arg = _FUNC_CONVERT_TO_NODE(arg)
              values[i].v_handle = arg.handle
              type_codes[i] = TypeCode.OBJECT_HANDLE
              temp_args.append(arg)
          elif isinstance(arg, ctypes.c_void_p):
              values[i].v_handle = arg
              type_codes[i] = TypeCode.HANDLE
          elif isinstance(arg, type):
              values[i].v_str = c_str(onp.dtype(arg).name)
              type_codes[i] = TypeCode.STR
          else:
              raise TypeError(
                  f"Don't know how to handle type {type(arg)}"
              )
      return values, type_codes, num_args
  
imports: import ctypes
  from numbers import Number, Integral
  import numpy
  from ...base import get_last_ffi_error, _LIB, check_call, _MAX_VALUE_64_BIT_SIGNED_, _MAX_VALUE_64_BIT_UNSIGNED_
  from ..base import c_str
  from .types import MXNetValue, TypeCode
  from .types import RETURN_SWITCH
  from ..._ctypes.ndarray import NDArrayBase
  from .object import ObjectBase, PyNativeObject, _set_class_object
  from .None import object
label_desc: Use image node_id 3 for calling a global function with example usage: _make_mxnet_args(args, temp_args) and returns: values,  type_codes,  num_args