'Search all theme paths for available themes.'

@classmethod
def init_themes(cls, builder):

    cls.themepath = list(builder.config.html_theme_path)
    cls.themepath.append(path.join(package_dir, 'themes'))
    for themedir in cls.themepath[::(-1)]:
        themedir = path.join(builder.confdir, themedir)
        if (not path.isdir(themedir)):
            continue
        for theme in os.listdir(themedir):
            if theme.lower().endswith('.zip'):
                try:
                    zfile = zipfile.ZipFile(path.join(themedir, theme))
                    if (THEMECONF not in zfile.namelist()):
                        continue
                    tname = theme[:(-4)]
                    tinfo = zfile
                except Exception:
                    builder.warn(('file    %r    on    theme    path    is    not    a    valid    zipfile    or    contains    no    theme' % theme))
                    continue
            else:
                if (not path.isfile(path.join(themedir, theme, THEMECONF))):
                    continue
                tname = theme
                tinfo = None
            cls.themes[tname] = (path.join(themedir, theme), tinfo)
