'List catalogs in given database.
Listing contains:
#. Catalog key
#. Cone search access URL
#. Warning codes
#. Warning descriptions
Parameters
typ : str
Any value in ``self.dbtypes``.
fout : output stream
Default is screen output.
ignore_noncrit : bool
Exclude warnings in
`astropy.vo.validator.Conf.noncritical_warnings`.  This is
useful to see why a catalog failed validation.'

def list_cats(self, typ, fout=None, ignore_noncrit=False):

    if (fout is None):
        fout = sys.stdout
    if (typ not in self.dbtypes):
        raise ValueError(u"'typ'    is    not    one    of    {}".format(self.dbtypes))
    str_list = []
    for cat in self.catkeys[typ]:
        cat_db = self.dbs[typ].get_catalog(cat)
        if ignore_noncrit:
            out_wt = _exclude_noncrit(cat_db[u'validate_warning_types'])
            out_ws = _exclude_noncrit(cat_db[u'validate_warnings'])
        else:
            out_wt = cat_db[u'validate_warning_types']
            out_ws = cat_db[u'validate_warnings']
        while (None in out_wt):
            out_wt[out_wt.index(None)] = u'None'
        str_list += [cat, cat_db[u'url']]
        if (len(out_wt) > 0):
            str_list.append(u','.join(out_wt))
        if (len(out_ws) > 0):
            str_list.append(u'\n'.join(out_ws))
        str_list[(-1)] += u'\n'
    if (len(str_list) > 0):
        fout.write(u'\n'.join(str_list))
