code: def _get_tbl_numpy_dtype(self, colnum, include_endianness=True):
          
          table_type = self._info['hdutype']
          table_type_string = _hdu_type_map[table_type]
          try:
              ftype = self._info['colinfo'][colnum]['eqtype']
              if table_type == ASCII_TBL:
                  npy_type = _table_fits2npy_ascii[abs(ftype)]
              else:
                  npy_type = _table_fits2npy[abs(ftype)]
          except KeyError:
              raise KeyError("unsupported %s fits data "
                             "type: %d" % (table_type_string, ftype))
  
          istbit = False
          if (ftype == 1):
              istbit = True
  
          isvar = False
          if ftype < 0:
              isvar = True
          if include_endianness:
              # if binary we will read the big endian bytes directly,
              # if ascii we read into native byte order
              if table_type == ASCII_TBL:
                  addstr = ''
              else:
                  addstr = '>'
              if npy_type not in ['u1', 'i1', 'S', 'U']:
                  npy_type = addstr+npy_type
  
          if npy_type == 'S':
              width = self._info['colinfo'][colnum]['width']
              npy_type = 'S%d' % width
          elif npy_type == 'U':
              width = self._info['colinfo'][colnum]['width']
              npy_type = 'U%d' % width
  
          return npy_type, isvar, istbit
docs: Get numpy type for the input column