code: def ParseAllOps():
      """
      MXNET_DLL int MXSymbolListAtomicSymbolCreators(mx_uint *out_size,
                                                     AtomicSymbolCreator **out_array);
  
      MXNET_DLL int MXSymbolGetAtomicSymbolInfo(AtomicSymbolCreator creator,
                                                const char **name,
                                                const char **description,
                                                mx_uint *num_args,
                                                const char ***arg_names,
                                                const char ***arg_type_infos,
                                                const char ***arg_descriptions,
                                                const char **key_var_num_args);
      """
      cdll.libmxnet = cdll.LoadLibrary(sys.argv[1])
      ListOP = cdll.libmxnet.MXSymbolListAtomicSymbolCreators
      GetOpInfo = cdll.libmxnet.MXSymbolGetAtomicSymbolInfo
      ListOP.argtypes = [POINTER(c_int), POINTER(POINTER(c_void_p))]
      GetOpInfo.argtypes = [
          c_void_p,
          POINTER(c_char_p),
          POINTER(c_char_p),
          POINTER(c_int),
          POINTER(POINTER(c_char_p)),
          POINTER(POINTER(c_char_p)),
          POINTER(POINTER(c_char_p)),
          POINTER(c_char_p),
          POINTER(c_char_p),
      ]
  
      nOps = c_int()
      opHandlers = POINTER(c_void_p)()
      r = ListOP(byref(nOps), byref(opHandlers))
      ret = ""
      ret2 = ""
      for i in range(0, nOps.value):
          handler = opHandlers[i]
          name = c_char_p()
          description = c_char_p()
          nArgs = c_int()
          argNames = POINTER(c_char_p)()
          argTypes = POINTER(c_char_p)()
          argDescs = POINTER(c_char_p)()
          varArgName = c_char_p()
          return_type = c_char_p()
  
          GetOpInfo(
              handler,
              byref(name),
              byref(description),
              byref(nArgs),
              byref(argNames),
              byref(argTypes),
              byref(argDescs),
              byref(varArgName),
              byref(return_type),
          )
  
          if name.value.decode("utf-8").startswith(
              "_"
          ):  # get rid of functions like __init__
              continue
  
          args = []
  
          for i in range(0, nArgs.value):
              arg = Arg(
                  name.value.decode("utf-8"),
                  argNames[i].decode("utf-8"),
                  argTypes[i].decode("utf-8"),
                  argDescs[i].decode("utf-8"),
              )
              args.append(arg)
  
          op = Op(
              name.value.decode("utf-8"),
              description.value.decode("utf-8"),
              args,
          )
  
          ret = ret + op.GetOpDefinitionString(True) + "\n"
          ret2 = ret2 + op.GetOpDefinitionString(False) + "\n"
      return ret + ret2
  
imports: from ctypes import *
  from ctypes.util import find_library
  import os
  import logging
  import platform
  import re
  import sys
  import tempfile
  import filecmp
  import shutil
  import codecs
label_desc: Use image node_id 2 for calling a global function with example usage: ParseAllOps() and returns: unknown