code: def _find_exclude_eids(g, exclude_mode, eids, **kwargs):
      """Find all edge IDs to exclude according to :attr:`exclude_mode`.
  
      Parameters
      ----------
      g : DGLGraph
          The graph.
      exclude_mode : str, optional
          Can be either of the following,
  
          None (default)
              Does not exclude any edge.
  
          'self'
              Exclude the given edges themselves but nothing else.
  
          'reverse_id'
              Exclude all edges specified in ``eids``, as well as their reverse edges
              of the same edge type.
  
              The mapping from each edge ID to its reverse edge ID is specified in
              the keyword argument ``reverse_eid_map``.
  
              This mode assumes that the reverse of an edge with ID ``e`` and type
              ``etype`` will have ID ``reverse_eid_map[e]`` and type ``etype``.
  
          'reverse_types'
              Exclude all edges specified in ``eids``, as well as their reverse
              edges of the corresponding edge types.
  
              The mapping from each edge type to its reverse edge type is specified
              in the keyword argument ``reverse_etype_map``.
  
              This mode assumes that the reverse of an edge with ID ``e`` and type ``etype``
              will have ID ``e`` and type ``reverse_etype_map[etype]``.
      eids : Tensor or dict[etype, Tensor]
          The edge IDs.
      reverse_eid_map : Tensor or dict[etype, Tensor]
          The mapping from edge ID to its reverse edge ID.
      reverse_etype_map : dict[etype, etype]
          The mapping from edge etype to its reverse edge type.
      """
      if exclude_mode is None:
          return None
      elif exclude_mode == "self":
          return eids
      elif exclude_mode == "reverse_id":
          return _find_exclude_eids_with_reverse_id(
              g, eids, kwargs["reverse_eid_map"]
          )
      elif exclude_mode == "reverse_types":
          return _find_exclude_eids_with_reverse_types(
              g, eids, kwargs["reverse_etype_map"]
          )
      else:
          raise ValueError("unsupported mode {}".format(exclude_mode))
  
imports: import inspect
  from abc import ABC, abstractmethod, abstractproperty
  from collections.abc import Mapping
  from ..None import backend, transforms, utils
  from ..base import EID, NID
  from ..convert import heterograph
  from ..distributed import DistDataLoader
label_desc: Use image node_id 3 for calling a global function with example usage: _find_exclude_eids(g, exclude_mode, eids) and returns: None, eids, _find_exclude_eids_with_reverse_id, _find_exclude_eids_with_reverse_types