docs: def npArrInfo(arr):
      """
      OLD update and refactor
      """
      from utool.DynamicStruct import DynStruct
      info = DynStruct()
      info.shapestr  = '[' + ' x '.join([str(x) for x in arr.shape]) + ']'
      info.dtypestr  = str(arr.dtype)
      if info.dtypestr == 'bool':
          info.bittotal = 'T=%d, F=%d' % (sum(arr), sum(1 - arr))
      elif info.dtypestr == 'object':
          info.minmaxstr = 'NA'
      elif info.dtypestr[0] == '|':
          info.minmaxstr = 'NA'
      else:
          if arr.size > 0:
              info.minmaxstr = '(%r, %r)' % (arr.min(), arr.max())
          else:
              info.minmaxstr = '(None)'
      return info