'Check column names.
This must be done before applying the names transformation
so that guessing will fail appropriately if ``names`` is supplied.
For instance if the basic reader is given a table with no column header
row.
Parameters
names : list
User-supplied list of column names
strict_names : bool
Whether to impose extra requirements on names
guessing : bool
True if this method is being called while guessing the table format'

def check_column_names(self, names, strict_names, guessing):

    if strict_names:
        bads = ['    ', ',', '|', ' DCTB ', "'", '"']
        for name in self.colnames:
            if (_is_number(name) or (len(name) == 0) or (name[0] in bads) or (name[(-1)] in bads)):
                raise ValueError('Column    name    {0!r}    does    not    meet    strict    name    requirements'.format(name))
    if (guessing and (len(self.colnames) <= 1)):
        raise ValueError('Strict    name    guessing    requires    at    least    two    columns')
    if ((names is not None) and (len(names) != len(self.colnames))):
        raise ValueError('Length    of    names    argument    ({0})    does    not    match    number    of    table    columns    ({1})'.format(len(names), len(self.colnames)))
