code: def _edge_softmax_forward(gidx, e, op):
      r"""Edge_softmax forward interface.
  
      Parameters
      ----------
      gidx : HeteroGraphIndex
          The input graph index.
      op : str
          The binary op's name, default as ``copy_rhs``.
      e : tensor or None
          The feature on edges.
  
      Returns
      -------
      The result of Edge_softmax during forward
  
      Notes
      -----
      This function does not support gpu op.
      """
      if F.ndim(e) == 1:
          e = F.unsqueeze(e, -1)
          expand = True
      else:
          expand = False
      myout = F.zeros_like(e)
      _CAPI_DGLKernelEdge_softmax_forward(
          gidx,
          op,
          to_dgl_nd(None),
          to_dgl_nd(e),
          to_dgl_nd_for_write(myout),
      )
      myout = F.squeeze(myout, -1) if expand else myout
      return myout
  
imports: from __future__ import absolute_import
  from .None import backend, ndarray
  from ._ffi.function import _init_api
  from .base import DGLError
label_desc: Use image node_id 6 for calling a global function with example usage: _edge_softmax_forward(gidx, e, op) and returns: myout