Загрузить файлы в «venv/Lib/site-packages/pip/_vendor/pygments»
This commit is contained in:
82
venv/Lib/site-packages/pip/_vendor/pygments/__init__.py
Normal file
82
venv/Lib/site-packages/pip/_vendor/pygments/__init__.py
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
"""
|
||||||
|
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-2025 by the Pygments team, see AUTHORS.
|
||||||
|
:license: BSD, see LICENSE for details.
|
||||||
|
"""
|
||||||
|
from io import StringIO, BytesIO
|
||||||
|
|
||||||
|
__version__ = '2.19.2'
|
||||||
|
__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)
|
||||||
17
venv/Lib/site-packages/pip/_vendor/pygments/__main__.py
Normal file
17
venv/Lib/site-packages/pip/_vendor/pygments/__main__.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
"""
|
||||||
|
pygments.__main__
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Main entry point for ``python -m pygments``.
|
||||||
|
|
||||||
|
:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
|
||||||
|
:license: BSD, see LICENSE for details.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from pip._vendor.pygments.cmdline import main
|
||||||
|
|
||||||
|
try:
|
||||||
|
sys.exit(main(sys.argv))
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
sys.exit(1)
|
||||||
70
venv/Lib/site-packages/pip/_vendor/pygments/console.py
Normal file
70
venv/Lib/site-packages/pip/_vendor/pygments/console.py
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
"""
|
||||||
|
pygments.console
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Format colored console output.
|
||||||
|
|
||||||
|
:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
|
||||||
|
:license: BSD, see LICENSE for details.
|
||||||
|
"""
|
||||||
|
|
||||||
|
esc = "\x1b["
|
||||||
|
|
||||||
|
codes = {}
|
||||||
|
codes[""] = ""
|
||||||
|
codes["reset"] = esc + "39;49;00m"
|
||||||
|
|
||||||
|
codes["bold"] = esc + "01m"
|
||||||
|
codes["faint"] = esc + "02m"
|
||||||
|
codes["standout"] = esc + "03m"
|
||||||
|
codes["underline"] = esc + "04m"
|
||||||
|
codes["blink"] = esc + "05m"
|
||||||
|
codes["overline"] = esc + "06m"
|
||||||
|
|
||||||
|
dark_colors = ["black", "red", "green", "yellow", "blue",
|
||||||
|
"magenta", "cyan", "gray"]
|
||||||
|
light_colors = ["brightblack", "brightred", "brightgreen", "brightyellow", "brightblue",
|
||||||
|
"brightmagenta", "brightcyan", "white"]
|
||||||
|
|
||||||
|
x = 30
|
||||||
|
for dark, light in zip(dark_colors, light_colors):
|
||||||
|
codes[dark] = esc + "%im" % x
|
||||||
|
codes[light] = esc + "%im" % (60 + x)
|
||||||
|
x += 1
|
||||||
|
|
||||||
|
del dark, light, x
|
||||||
|
|
||||||
|
codes["white"] = codes["bold"]
|
||||||
|
|
||||||
|
|
||||||
|
def reset_color():
|
||||||
|
return codes["reset"]
|
||||||
|
|
||||||
|
|
||||||
|
def colorize(color_key, text):
|
||||||
|
return codes[color_key] + text + codes["reset"]
|
||||||
|
|
||||||
|
|
||||||
|
def ansiformat(attr, text):
|
||||||
|
"""
|
||||||
|
Format ``text`` with a color and/or some attributes::
|
||||||
|
|
||||||
|
color normal color
|
||||||
|
*color* bold color
|
||||||
|
_color_ underlined color
|
||||||
|
+color+ blinking color
|
||||||
|
"""
|
||||||
|
result = []
|
||||||
|
if attr[:1] == attr[-1:] == '+':
|
||||||
|
result.append(codes['blink'])
|
||||||
|
attr = attr[1:-1]
|
||||||
|
if attr[:1] == attr[-1:] == '*':
|
||||||
|
result.append(codes['bold'])
|
||||||
|
attr = attr[1:-1]
|
||||||
|
if attr[:1] == attr[-1:] == '_':
|
||||||
|
result.append(codes['underline'])
|
||||||
|
attr = attr[1:-1]
|
||||||
|
result.append(codes[attr])
|
||||||
|
result.append(text)
|
||||||
|
result.append(codes['reset'])
|
||||||
|
return ''.join(result)
|
||||||
70
venv/Lib/site-packages/pip/_vendor/pygments/filter.py
Normal file
70
venv/Lib/site-packages/pip/_vendor/pygments/filter.py
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
"""
|
||||||
|
pygments.filter
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Module that implements the default filter.
|
||||||
|
|
||||||
|
:copyright: Copyright 2006-2025 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):
|
||||||
|
yield from filter_.filter(lexer, stream)
|
||||||
|
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:
|
||||||
|
"""
|
||||||
|
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(f'{self.__class__.__name__!r} used without bound function')
|
||||||
|
Filter.__init__(self, **options)
|
||||||
|
|
||||||
|
def filter(self, lexer, stream):
|
||||||
|
# pylint: disable=not-callable
|
||||||
|
yield from self.function(lexer, stream, self.options)
|
||||||
129
venv/Lib/site-packages/pip/_vendor/pygments/formatter.py
Normal file
129
venv/Lib/site-packages/pip/_vendor/pygments/formatter.py
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
"""
|
||||||
|
pygments.formatter
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Base formatter class.
|
||||||
|
|
||||||
|
:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
|
||||||
|
:license: BSD, see LICENSE for details.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import codecs
|
||||||
|
|
||||||
|
from pip._vendor.pygments.util import get_bool_opt
|
||||||
|
from pip._vendor.pygments.styles import get_style_by_name
|
||||||
|
|
||||||
|
__all__ = ['Formatter']
|
||||||
|
|
||||||
|
|
||||||
|
def _lookup_style(style):
|
||||||
|
if isinstance(style, str):
|
||||||
|
return get_style_by_name(style)
|
||||||
|
return style
|
||||||
|
|
||||||
|
|
||||||
|
class Formatter:
|
||||||
|
"""
|
||||||
|
Converts a token stream to text.
|
||||||
|
|
||||||
|
Formatters should have attributes to help selecting them. These
|
||||||
|
are similar to the corresponding :class:`~pygments.lexer.Lexer`
|
||||||
|
attributes.
|
||||||
|
|
||||||
|
.. autoattribute:: name
|
||||||
|
:no-value:
|
||||||
|
|
||||||
|
.. autoattribute:: aliases
|
||||||
|
:no-value:
|
||||||
|
|
||||||
|
.. autoattribute:: filenames
|
||||||
|
:no-value:
|
||||||
|
|
||||||
|
You can pass options as keyword arguments to the constructor.
|
||||||
|
All formatters accept these basic options:
|
||||||
|
|
||||||
|
``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.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
#: Full name for the formatter, in human-readable form.
|
||||||
|
name = None
|
||||||
|
|
||||||
|
#: A list of short, unique identifiers that can be used to lookup
|
||||||
|
#: the formatter from a list, e.g. using :func:`.get_formatter_by_name()`.
|
||||||
|
aliases = []
|
||||||
|
|
||||||
|
#: A list of fnmatch patterns that match filenames for which this
|
||||||
|
#: formatter can produce output. The patterns in this list should be unique
|
||||||
|
#: among all formatters.
|
||||||
|
filenames = []
|
||||||
|
|
||||||
|
#: If True, this formatter outputs Unicode strings when no encoding
|
||||||
|
#: option is given.
|
||||||
|
unicodeoutput = True
|
||||||
|
|
||||||
|
def __init__(self, **options):
|
||||||
|
"""
|
||||||
|
As with lexers, this constructor takes arbitrary optional arguments,
|
||||||
|
and if you override it, you should first process your own options, then
|
||||||
|
call the base class implementation.
|
||||||
|
"""
|
||||||
|
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
|
||||||
|
if self.encoding in ('guess', 'chardet'):
|
||||||
|
# can happen for e.g. pygmentize -O encoding=guess
|
||||||
|
self.encoding = 'utf-8'
|
||||||
|
self.encoding = options.get('outencoding') or self.encoding
|
||||||
|
self.options = options
|
||||||
|
|
||||||
|
def get_style_defs(self, arg=''):
|
||||||
|
"""
|
||||||
|
This method must return statements or declarations suitable to define
|
||||||
|
the current style for subsequent highlighted text (e.g. CSS classes
|
||||||
|
in the `HTMLFormatter`).
|
||||||
|
|
||||||
|
The optional argument `arg` can be used to modify the generation and
|
||||||
|
is formatter dependent (it is standardized because it can be given on
|
||||||
|
the command line).
|
||||||
|
|
||||||
|
This method is called by the ``-S`` :doc:`command-line option <cmdline>`,
|
||||||
|
the `arg` is then given by the ``-a`` option.
|
||||||
|
"""
|
||||||
|
return ''
|
||||||
|
|
||||||
|
def format(self, tokensource, outfile):
|
||||||
|
"""
|
||||||
|
This method must format the tokens from the `tokensource` iterable and
|
||||||
|
write the formatted version to the file object `outfile`.
|
||||||
|
|
||||||
|
Formatter options can control how exactly the tokens are converted.
|
||||||
|
"""
|
||||||
|
if self.encoding:
|
||||||
|
# wrap the outfile in a StreamWriter
|
||||||
|
outfile = codecs.lookup(self.encoding)[3](outfile)
|
||||||
|
return self.format_unencoded(tokensource, outfile)
|
||||||
|
|
||||||
|
# Allow writing Formatter[str] or Formatter[bytes]. That's equivalent to
|
||||||
|
# Formatter. This helps when using third-party type stubs from typeshed.
|
||||||
|
def __class_getitem__(cls, name):
|
||||||
|
return cls
|
||||||
Reference in New Issue
Block a user