U
    luf                     @   sF   d Z ddlmZmZ dZdZdddgZdd Zdd
dZdddZ	d	S )a  
    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-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )StringIOBytesIOz2.17.2Zrestructuredtextlexformat	highlightc                 C   sP   z| | W S  tk
rJ   ddlm} t|trDt||rDtd Y nX dS )z
    Lex `code` with the `lexer` (must be a `Lexer` instance)
    and return an iterable of tokens. Currently, this only calls
    `lexer.get_tokens()`.
    r   )
RegexLexerz4lex() argument must be a lexer instance, not a classN)Z
get_tokens	TypeErrorZpygments.lexerr   
isinstancetype
issubclass)codelexerr    r   5/tmp/pip-unpacked-wheel-7eq1ciah/pygments/__init__.pyr   #   s    Nc                 C   s   zB|s4t |ddrt pt }|| | | W S || | W n> tk
r   ddlm} t|t	rzt
||rztd Y nX dS )a  
    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.
    encodingNr   )	Formatterz;format() argument must be a formatter instance, not a class)getattrr   r   r   getvaluer   Zpygments.formatterr   r	   r
   r   )tokens	formatteroutfileZrealoutfiler   r   r   r   r   4   s    	
c                 C   s   t t| |||S )zp
    This is the most high-level highlighting function. It combines `lex` and
    `format` in one function.
    )r   r   )r   r   r   r   r   r   r   r   M   s    )N)N)
__doc__ior   r   __version__Z__docformat____all__r   r   r   r   r   r   r   <module>   s   

