""" Pygments ~~~~~~~~ Pygments is a syntax highlighting package written in Python. It is a generic syntax highlighter for general use in all kinds of software such as forum systems, wikis or other applications that need to prettify source code. Highlights are: * a wide range of common languages and markup formats is supported * special attention is paid to details, increasing quality by a fair amount * support for new languages and formats are added easily * a number of output formats, presently HTML, LaTeX, RTF, SVG, all image formats that PIL supports, and ANSI sequences * it is usable as a command-line tool and as a library * ... and it highlights even Brainfuck! The `Pygments master branch`_ is installable with ``easy_install Pygments==dev``. .. _Pygments master branch: https://github.com/pygments/pygments/archive/master.zip#egg=Pygments-dev :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ from io import StringIO, BytesIO __version__ = '2.18.0' __docformat__ = 'restructuredtext' __all__ = ['lex', 'format', 'highlight'] def lex(code, lexer): """ Lex `code` with the `lexer` (must be a `Lexer` instance) and return an iterable of tokens. Currently, this only calls `lexer.get_tokens()`. """ try: return lexer.get_tokens(code) except TypeError: # Heuristic to catch a common mistake. from pip._vendor.pygments.lexer import RegexLexer if isinstance(lexer, type) and issubclass(lexer, RegexLexer): raise TypeError('lex() argument must be a lexer instance, ' 'not a class') raise def format(tokens, formatter, outfile=None): # pylint: disable=redefined-builtin """ Format ``tokens`` (an iterable of tokens) with the formatter ``formatter`` (a `Formatter` instance). If ``outfile`` is given and a valid file object (an object with a ``write`` method), the result will be written to it, otherwise it is returned as a string. """ try: if not outfile: realoutfile = getattr(formatter, 'encoding', None) and BytesIO() or StringIO() formatter.format(tokens, realoutfile) return realoutfile.getvalue() else: formatter.format(tokens, outfile) except TypeError: # Heuristic to catch a common mistake. from pip._vendor.pygments.formatter import Formatter if isinstance(formatter, type) and issubclass(formatter, Formatter): raise TypeError('format() argument must be a formatter instance, ' 'not a class') raise def highlight(code, lexer, formatter, outfile=None): """ This is the most high-level highlighting function. It combines `lex` and `format` in one function. """ return format(lex(code, lexer), formatter, outfile)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
filters | Folder | 0755 |
|
|
formatters | Folder | 0755 |
|
|
lexers | Folder | 0755 |
|
|
styles | Folder | 0755 |
|
|
__init__.py | File | 2.91 KB | 0644 |
|
__main__.py | File | 353 B | 0644 |
|
cmdline.py | File | 23.1 KB | 0644 |
|
console.py | File | 1.68 KB | 0644 |
|
filter.py | File | 1.87 KB | 0644 |
|
formatter.py | File | 4.29 KB | 0644 |
|
lexer.py | File | 34.52 KB | 0644 |
|
modeline.py | File | 1005 B | 0644 |
|
plugin.py | File | 1.85 KB | 0644 |
|
regexopt.py | File | 3 KB | 0644 |
|
scanner.py | File | 3.02 KB | 0644 |
|
sphinxext.py | File | 7.79 KB | 0644 |
|
style.py | File | 6.27 KB | 0644 |
|
token.py | File | 6.08 KB | 0644 |
|
unistring.py | File | 61.73 KB | 0644 |
|
util.py | File | 9.8 KB | 0644 |
|