code: def sqrt_depth(p):
      """Return the maximum depth of any square root argument of p.
  
      >>> from sympy.functions.elementary.miscellaneous import sqrt
      >>> from sympy.simplify.sqrtdenest import sqrt_depth
  
      Neither of these square roots contains any other square roots
      so the depth is 1:
  
      >>> sqrt_depth(1 + sqrt(2)*(1 + sqrt(3)))
      1
  
      The sqrt(3) is contained within a square root so the depth is
      2:
  
      >>> sqrt_depth(1 + sqrt(2)*sqrt(1 + sqrt(3)))
      2
      """
      if p is S.ImaginaryUnit:
          return 1
      if p.is_Atom:
          return 0
      elif p.is_Add or p.is_Mul:
          return max(
              [sqrt_depth(x) for x in p.args], key=default_sort_key
          )
      elif is_sqrt(p):
          return sqrt_depth(p.base) + 1
      else:
          return 0
  
imports: from sympy.core import Add, Expr, Mul, S, sympify
  from sympy.core.function import _mexpand, count_ops, expand_mul
  from sympy.core.sorting import default_sort_key
  from sympy.core.symbol import Dummy
  from sympy.functions import root, sign, sqrt
  from sympy.polys import Poly, PolynomialError
label_desc: Use image node_id 2 for calling a global function with example usage: sqrt_depth(p) and returns: int, int, max, unknown, int