code: def _group_inputs(inputs, edge_type=_DataNode):
      """
      Group inputs into three groups:
         * edges of type ``edge_type`` - those are actual inputs like DataNode,
         * integer constants,
         * real constants.
      Generate `categories_idxs` mapping, that is a list that for an input `i` contains a tuple:
         (category of ith input, index of ith input in appropriate category)
      Parameters
      ----------
      inputs :
          All arguments that were passed to the arithmetic operators
      edge_type :
          What should be considered an input, _DataNode or a TensorList (used for debug and eager
          modes), by default _DataNode
  
      Returns
      -------
      (`categories_idxs`, input edge category, integer constants category, real constants category)
          Mapping of inputs into the categories and the three possible categories.
  
      """
      categories_idxs = []
      edges = []
      integers = []
      reals = []
      for input in inputs:
          if not isinstance(
              input, (edge_type, _ScalarConstant, int, float)
          ):
              input = _Constant(input)
          if isinstance(input, edge_type):
              categories_idxs.append(("edge", len(edges)))
              edges.append(input)
          elif _is_integer_like(input):
              categories_idxs.append(("integer", len(integers)))
              integers.append(input)
          elif _is_real_like(input):
              categories_idxs.append(("real", len(reals)))
              reals.append(input)
          else:
              raise TypeError(
                  f"Argument to arithmetic operation not supported."
                  f"Got {str(type(input))}, expected a return value from other"
                  f"DALI Operator  or a constant value of type 'bool', 'int', "
                  f"'float' or 'nvidia.dali.types.Constant'."
              )
  
      if len(integers) == 0:
          integers = None
      if len(reals) == 0:
          reals = None
      return (categories_idxs, edges, integers, reals)
  
file_path: DALI/dali/python/nvidia/dali/ops/_operators/math.py
imports: from nvidia.dali import _conditionals
  from nvidia.dali.data_node import DataNode
  from nvidia.dali.types import DALIDataType, Constant, ScalarConstant, _bool_types, _int_like_types, _float_types
label_desc: Use image node_id 5 for calling a global function with example usage: _group_inputs(inputs, edge_type) and returns: categories_idxs,  edges,  integers,  reals