'Make sure that names and dtype are both iterable and have
the same length as data.'

def _check_names_dtype(self, names, dtype, n_cols):

    for (inp_list, inp_str) in ((dtype, u'dtype'), (names, u'names')):
        if (not isiterable(inp_list)):
            raise ValueError(u'{0}    must    be    a    list    or    None'.format(inp_str))
    if ((len(names) != n_cols) or (len(dtype) != n_cols)):
        raise ValueError(u'Arguments    "names"    and    "dtype"    must    match    number    of    columns'.format(inp_str))
