def _verify_column_data(self, colnum, data):
this_dt = data.dtype.descr[<NUM_LIT:0>]<EOL>if len(data.shape) > <NUM_LIT:2>:<EOL><INDENT>this_shape = data.shape[<NUM_LIT:1>:]<EOL><DEDENT>elif len(data.shape) == <NUM_LIT:2> and data.shape[<NUM_LIT:1>] > <NUM_LIT:1>:<EOL><INDENT>this_shape = data.shape[<NUM_LIT:1>:]<EOL><DEDENT>else:<EOL><INDENT>this_shape = ()<EOL><DEDENT>this_npy_type = this_dt[<NUM_LIT:1>][<NUM_LIT:1>:]<EOL>npy_type, isvar, istbit = self._get_tbl_numpy_dtype(colnum)<EOL>info = self._info['<STR_LIT>'][colnum]<EOL>if npy_type[<NUM_LIT:0>] in ['<STR_LIT:>>', '<STR_LIT:<>', '<STR_LIT:|>']:<EOL><INDENT>npy_type = npy_type[<NUM_LIT:1>:]<EOL><DEDENT>col_name = info['<STR_LIT:name>']<EOL>col_tdim = info['<STR_LIT>']<EOL>col_shape = _tdim2shape(<EOL>col_tdim, col_name, is_string=(npy_type[<NUM_LIT:0>] == '<STR_LIT:S>'))<EOL>if col_shape is None:<EOL><INDENT>if this_shape == ():<EOL><INDENT>this_shape = None<EOL><DEDENT><DEDENT>if col_shape is not None and not isinstance(col_shape, tuple):<EOL><INDENT>col_shape = (col_shape,)<EOL><DEDENT>"""<STR_LIT>"""<EOL>if npy_type == '<STR_LIT>' and this_npy_type == '<STR_LIT>':<EOL><INDENT>this_npy_type = '<STR_LIT>'<EOL><DEDENT>if isinstance(self, AsciiTableHDU):<EOL><INDENT>if npy_type == '<STR_LIT>' and this_npy_type in ['<STR_LIT>', '<STR_LIT>']:<EOL><INDENT>this_npy_type = '<STR_LIT>'<EOL><DEDENT>elif npy_type == '<STR_LIT>' and this_npy_type == '<STR_LIT>':<EOL><INDENT>this_npy_type = '<STR_LIT>'<EOL><DEDENT><DEDENT>if this_npy_type != npy_type:<EOL><INDENT>raise ValueError(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>" % (<EOL>col_name, npy_type, this_npy_type))<EOL><DEDENT>if this_shape != col_shape:<EOL><INDENT>raise ValueError(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>" % (col_name, col_shape, this_shape))<EOL><DEDENT>
verify the input data is of the correct type and shape