code: def wide_dtype_for(arr):
      arr = np.asarray(arr)
      if safe_issubdtype(arr.dtype, np.integer) or safe_issubdtype(
          arr.dtype, np.floating
      ):
          return widest_float
      elif safe_issubdtype(arr.dtype, np.complexfloating):
          return widest_complex
      raise ValueError(
          "cannot widen a non-numeric type %r" % (arr.dtype,)
      )
  
imports: import sys
  import numpy
  import six
  from six.moves import cStringIO
  from .compat import optional_dep_ok
label_desc: Use image node_id 9 for calling a global function with example usage: wide_dtype_for(arr) and returns: widest_float, widest_complex