Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| # -*- coding: utf-8 -*- | |
| """ | |
| pygments.formatter | |
| ~~~~~~~~~~~~~~~~~~ | |
| Base formatter class. | |
| :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS. | |
| :license: BSD, see LICENSE for details. | |
| """ | |
| import codecs | |
| from pygments.util import get_bool_opt | |
| from pygments.styles import get_style_by_name | |
| __all__ = ['Formatter'] | |
| def _lookup_style(style): | |
| if isinstance(style, basestring): | |
| return get_style_by_name(style) | |
| return style | |
| class Formatter(object): | |
| """ | |
| Converts a token stream to text. | |
| Options accepted: | |
| ``style`` | |
| The style to use, can be a string or a Style subclass | |
| (default: "default"). Not used by e.g. the | |
| TerminalFormatter. | |
| ``full`` | |
| Tells the formatter to output a "full" document, i.e. | |
| a complete self-contained document. This doesn't have | |
| any effect for some formatters (default: false). | |
| ``title`` | |
| If ``full`` is true, the title that should be used to | |
| caption the document (default: ''). | |
| ``encoding`` | |
| If given, must be an encoding name. This will be used to | |
| convert the Unicode token strings to byte strings in the | |
| output. If it is "" or None, Unicode strings will be written | |
| to the output file, which most file-like objects do not | |
| support (default: None). | |
| ``outencoding`` | |
| Overrides ``encoding`` if given. | |
| """ | |
| #: Name of the formatter | |
| name = None | |
| #: Shortcuts for the formatter | |
| aliases = [] | |
| #: fn match rules | |
| filenames = [] | |
| #: If True, this formatter outputs Unicode strings when no encoding | |
| #: option is given. | |
| unicodeoutput = True | |
| def __init__(self, **options): | |
| self.style = _lookup_style(options.get('style', 'default')) | |
| self.full = get_bool_opt(options, 'full', False) | |
| self.title = options.get('title', '') | |
| self.encoding = options.get('encoding', None) or None | |
| self.encoding = options.get('outencoding', None) or self.encoding | |
| self.options = options | |
| def get_style_defs(self, arg=''): | |
| """ | |
| Return the style definitions for the current style as a string. | |
| ``arg`` is an additional argument whose meaning depends on the | |
| formatter used. Note that ``arg`` can also be a list or tuple | |
| for some formatters like the html formatter. | |
| """ | |
| return '' | |
| def format(self, tokensource, outfile): | |
| """ | |
| Format ``tokensource``, an iterable of ``(tokentype, tokenstring)`` | |
| tuples and write it into ``outfile``. | |
| """ | |
| if self.encoding: | |
| # wrap the outfile in a StreamWriter | |
| outfile = codecs.lookup(self.encoding)[3](outfile) | |
| return self.format_unencoded(tokensource, outfile) |