def _get_simple_dtype_and_shape(self, colnum, rows=None):
<EOL>npy_type, isvar, istbit = self._get_tbl_numpy_dtype(colnum)<EOL>info = self._info['<STR_LIT>'][colnum]<EOL>name = info['<STR_LIT:name>']<EOL>if rows is None:<EOL><INDENT>nrows = self._info['<STR_LIT>']<EOL><DEDENT>else:<EOL><INDENT>nrows = rows.size<EOL><DEDENT>shape = None<EOL>tdim = info['<STR_LIT>']<EOL>shape = _tdim2shape(tdim, name, is_string=(npy_type[<NUM_LIT:0>] == '<STR_LIT:S>'))<EOL>if shape is not None:<EOL><INDENT>if nrows > <NUM_LIT:1>:<EOL><INDENT>if not isinstance(shape, tuple):<EOL><INDENT>shape = (nrows, shape)<EOL><DEDENT>else:<EOL><INDENT>shape = tuple([nrows] + list(shape))<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>shape = nrows<EOL><DEDENT>return npy_type, shape<EOL>
When reading a single column, we want the basic data
type and the shape of the array.

for scalar columns, shape is just nrows, otherwise
it is (nrows, dim1, dim2)

Note if rows= is sent and only a single row is requested,
the shape will be (dim2,dim2)