'Initialize table from a list of Column or mixin objects'

def _init_from_cols(self, cols):

    lengths = set((len(col) for col in cols))
    if (len(lengths) != 1):
        raise ValueError(u'Inconsistent    data    column    lengths:    {0}'.format(lengths))
    self._set_masked_from_cols(cols)
    newcols = [self._convert_col_for_table(col) for col in cols]
    self._make_table_from_cols(self, newcols)
    index_dict = {}
    for col in self.itercols():
        for (i, index) in enumerate((col.info.indices or [])):
            names = tuple((ind_col.info.name for ind_col in index.columns))
            if (names in index_dict):
                col.info.indices[i] = index_dict[names]
            else:
                index_dict[names] = index
