code: def dotedges(
      expr, atom=lambda x: not isinstance(x, Basic), pos=(), repeat=True
  ):
      """List of strings for all expr->expr.arg pairs
  
      See the docstring of dotprint for explanations of the options.
  
      Examples
      ========
  
      >>> from sympy.printing.dot import dotedges
      >>> from sympy.abc import x
      >>> for e in dotedges(x+2):
      ...     print(e)
      "Add(Integer(2), Symbol('x'))_()" -> "Integer(2)_(0,)";
      "Add(Integer(2), Symbol('x'))_()" -> "Symbol('x')_(1,)";
      """
      if atom(expr):
          return []
      else:
          expr_str, arg_strs = purestr(expr, with_args=True)
          if repeat:
              expr_str += "_%s" % str(pos)
              arg_strs = [
                  "%s_%s" % (a, str(pos + (i,)))
                  for i, a in enumerate(arg_strs)
              ]
          return ['"%s" -> "%s";' % (expr_str, a) for a in arg_strs]
  
file_path: sympy/sympy/printing/dot.py
imports: from sympy.core.basic import Basic
  from sympy.core.expr import Expr
  from sympy.core.symbol import Symbol
  from sympy.core.numbers import Integer, Rational, Float
  from sympy.printing.repr import srepr
label_desc: Use image node_id 5 for calling a global function with example usage: dotedges(expr, atom, pos, repeat) and returns: list, unknown