コード例 #1
0
ファイル: __init__.py プロジェクト: ZekriSara/pfe
 def __getattr__(self, name):
     info = FORMATTERS.get(name)
     if info:
         _load_formatters(info[0])
         cls = _formatter_cache[info[1]]
         setattr(self, name, cls)
         return cls
     raise AttributeError(name)
コード例 #2
0
ファイル: __init__.py プロジェクト: ZekriSara/pfe
def get_all_formatters():
    """Return a generator for all formatter classes."""
    # NB: this returns formatter classes, not info like get_all_lexers().
    for info in FORMATTERS.values():
        if info[1] not in _formatter_cache:
            _load_formatters(info[0])
        yield _formatter_cache[info[1]]
    for _, formatter in find_plugin_formatters():
        yield formatter
コード例 #3
0
ファイル: __init__.py プロジェクト: ZekriSara/pfe
def find_formatter_class(alias):
    """Lookup a formatter by alias.

    Returns None if not found.
    """
    for module_name, name, aliases, _, _ in FORMATTERS.values():
        if alias in aliases:
            if name not in _formatter_cache:
                _load_formatters(module_name)
            return _formatter_cache[name]
    for _, cls in find_plugin_formatters():
        if alias in cls.aliases:
            return cls
コード例 #4
0
ファイル: __init__.py プロジェクト: ZekriSara/pfe
def get_formatter_for_filename(fn, **options):
    """Lookup and instantiate a formatter by filename pattern.

    Raises ClassNotFound if not found.
    """
    fn = basename(fn)
    for modname, name, _, filenames, _ in FORMATTERS.values():
        for filename in filenames:
            if _fn_matches(fn, filename):
                if name not in _formatter_cache:
                    _load_formatters(modname)
                return _formatter_cache[name](**options)
    for cls in find_plugin_formatters():
        for filename in cls.filenames:
            if _fn_matches(fn, filename):
                return cls(**options)
    raise ClassNotFound("no formatter found for file name %r" % fn)