docs: def numpy_str(arr, strvals=False, precision=None, pr=None,
                force_dtype=False,
                with_dtype=None, suppress_small=None, max_line_width=None,
                threshold=None, **kwargs):
      """
      suppress_small = False turns off scientific representation
      """
      # strvals = kwargs.get('strvals', False)
      itemsep = kwargs.get('itemsep', ' ')
      # precision = kwargs.get('precision', None)
      # suppress_small = kwargs.get('supress_small', None)
      # max_line_width = kwargs.get('max_line_width', None)
      # with_dtype = kwargs.get('with_dtype', False)
      newlines = kwargs.pop('nl', kwargs.pop('newlines', 1))
      data = arr
  
      # if with_dtype and strvals:
      #     raise ValueError('cannot format with strvals and dtype')
  
      separator = ',' + itemsep
  
      if strvals:
          prefix = ''
          suffix = ''
      else:
          modname = type(data).__module__
          # substitute shorthand for numpy module names
          np_nice = 'np'
          modname = re.sub('\\bnumpy\\b', np_nice, modname)
          modname = re.sub('\\bma.core\\b', 'ma', modname)
  
          class_name = type(data).__name__
          if class_name == 'ndarray':
              class_name = 'array'
  
          prefix = modname + '.' + class_name + '('
  
          if with_dtype:
              dtype_repr = data.dtype.name
              # dtype_repr = np.core.arrayprint.dtype_short_repr(data.dtype)
              suffix = ',{}dtype={}.{})'.format(itemsep, np_nice, dtype_repr)
          else:
              suffix = ')'
  
      if not strvals and data.size == 0 and data.shape != (0,):
          # Special case for displaying empty data
          prefix = modname + '.empty('
          body = repr(tuple(map(int, data.shape)))
      else:
          body = np.array2string(data, precision=precision,
                                 separator=separator,
                                 suppress_small=suppress_small,
                                 prefix=prefix,
                                 max_line_width=max_line_width)
      if not newlines:
          # remove newlines if we need to
          body = re.sub('\n *', '', body)
      formatted = prefix + body + suffix
      return formatted