# -*- coding: utf-8 -*- """ pygments.filter ~~~~~~~~~~~~~~~ Module that implements the default filter. :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ def apply_filters(stream, filters, lexer=None): """ Use this method to apply an iterable of filters to a stream. If lexer is given it's forwarded to the filter, otherwise the filter receives `None`. """ def _apply(filter_, stream): for token in filter_.filter(lexer, stream): yield token for filter_ in filters: stream = _apply(filter_, stream) return stream def simplefilter(f): """ Decorator that converts a function into a filter:: @simplefilter def lowercase(self, lexer, stream, options): for ttype, value in stream: yield ttype, value.lower() """ return type(f.__name__, (FunctionFilter,), { '__module__': getattr(f, '__module__'), '__doc__': f.__doc__, 'function': f, }) class Filter(object): """ Default filter. Subclass this class or use the `simplefilter` decorator to create own filters. """ def __init__(self, **options): self.options = options def filter(self, lexer, stream): raise NotImplementedError() class FunctionFilter(Filter): """ Abstract class used by `simplefilter` to create simple function filters on the fly. The `simplefilter` decorator automatically creates subclasses of this class for functions passed to it. """ function = None def __init__(self, **options): if not hasattr(self, 'function'): raise TypeError('%r used without bound function' % self.__class__.__name__) Filter.__init__(self, **options) def filter(self, lexer, stream): # pylint: disable=not-callable for ttype, value in self.function(lexer, stream, self.options): yield ttype, value
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
filters | Folder | 0755 |
|
|
formatters | Folder | 0755 |
|
|
lexers | Folder | 0755 |
|
|
styles | Folder | 0755 |
|
|
__init__.py | File | 3.07 KB | 0644 |
|
cmdline.py | File | 18.87 KB | 0644 |
|
console.py | File | 1.77 KB | 0644 |
|
filter.py | File | 1.99 KB | 0644 |
|
formatter.py | File | 2.88 KB | 0644 |
|
lexer.py | File | 30.33 KB | 0644 |
|
modeline.py | File | 1010 B | 0644 |
|
plugin.py | File | 1.68 KB | 0644 |
|
regexopt.py | File | 3.02 KB | 0644 |
|
scanner.py | File | 3.05 KB | 0644 |
|
sphinxext.py | File | 4.55 KB | 0644 |
|
style.py | File | 4.69 KB | 0644 |
|
token.py | File | 6.02 KB | 0644 |
|
unistring.py | File | 49.95 KB | 0644 |
|
util.py | File | 11.62 KB | 0644 |
|