code: def descr2tabledef(descr, table_type='binary', write_bitcols=False):
      
      names = []
      formats = []
      dims = []
  
      for d in descr:
  
          """
          npy_dtype = d[1][1:]
          if is_ascii and npy_dtype in ['u1','i1']:
              raise ValueError("1-byte integers are not supported for "
                               "ascii tables")
          """
  
          if d[1][1] == 'O':
              raise ValueError(
                  'cannot automatically declare a var column without '
                  'some data to determine max len')
  
          name, form, dim = _npy2fits(
              d, table_type=table_type, write_bitcols=write_bitcols)
  
          if name == '':
              raise ValueError("field name is an empty string")
  
          """
          if is_ascii:
              if dim is not None:
                  raise ValueError("array columns are not supported "
                                   "for ascii tables")
          """
  
          names.append(name)
          formats.append(form)
          dims.append(dim)
  
      return names, formats, dims
docs: Create a FITS table def from the input numpy descriptor.
  
      parameters
      ----------
      descr: list
          A numpy recarray type descriptor  array.dtype.descr
  
      returns
      -------
      names, formats, dims: tuple of lists
          These are the ttyp, tform and tdim header entries
          for each field.  dim entries may be None