Mercurial > moin > 1.9
view MoinMoin/support/pygments/formatters/__init__.py @ 5564:74fa6f714526
upgraded pygments to 1.2.2
author | Thomas Waldmann <tw AT waldmann-edv DOT de> |
---|---|
date | Sun, 21 Feb 2010 23:52:54 +0100 |
parents | 0970ed47d2cd |
children | f76914e77229 |
line wrap: on
line source
# -*- coding: utf-8 -*- """ pygments.formatters ~~~~~~~~~~~~~~~~~~~ Pygments formatters. :copyright: Copyright 2006-2010 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ import os.path import fnmatch from pygments.formatters._mapping import FORMATTERS from pygments.plugin import find_plugin_formatters from pygments.util import docstring_headline, ClassNotFound ns = globals() for fcls in FORMATTERS: ns[fcls.__name__] = fcls del fcls __all__ = ['get_formatter_by_name', 'get_formatter_for_filename', 'get_all_formatters'] + [cls.__name__ for cls in FORMATTERS] _formatter_alias_cache = {} _formatter_filename_cache = [] def _init_formatter_cache(): if _formatter_alias_cache: return for cls in get_all_formatters(): for alias in cls.aliases: _formatter_alias_cache[alias] = cls for fn in cls.filenames: _formatter_filename_cache.append((fn, cls)) def find_formatter_class(name): _init_formatter_cache() cls = _formatter_alias_cache.get(name, None) return cls def get_formatter_by_name(name, **options): _init_formatter_cache() cls = _formatter_alias_cache.get(name, None) if not cls: raise ClassNotFound("No formatter found for name %r" % name) return cls(**options) def get_formatter_for_filename(fn, **options): _init_formatter_cache() fn = os.path.basename(fn) for pattern, cls in _formatter_filename_cache: if fnmatch.fnmatch(fn, pattern): return cls(**options) raise ClassNotFound("No formatter found for file name %r" % fn) def get_all_formatters(): """Return a generator for all formatters.""" for formatter in FORMATTERS: yield formatter for _, formatter in find_plugin_formatters(): yield formatter