
    Ri                    r   U d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	Z	ddl	m
Z
 ddlmZ dd	lmZmZ dd
lmZmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZ ddlmZm Z  ddl!m"Z"m#Z# erddlm$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z*  e+ e,e-e	j\                  j_                  d      dd             dk  rddl%m&Z&  e0d       e&_1         e"jd                  e3      Z4i Z5de6d<    eed       eed       eed       eed       eed      dZ7de6d<    e8d      d  e8d!      d" e8d#      d$iZ9d%Z: G d& d'      Z;y)(z%Highlight code blocks using Pygments.    )annotations)partial)import_module)TYPE_CHECKINGN)	highlight)
ErrorToken)HtmlFormatterLatexFormatter)CLexerPythonConsoleLexerPythonLexerRstLexer	TextLexerget_lexer_by_nameguess_lexer)get_style_by_name)ClassNotFound)__)	NoneStyleSphinxStyle)logging	texescape)Any)	Formatter)Lexer)Style.   )r      c                    | S )N )clsnames     K/home/agent/.friday_env/lib/python3.12/site-packages/sphinx/highlighting.py<lambda>r%   '   s         zdict[str, Lexer]lexersF)stripnl)nonepythonpyconrestcz'dict[str, type[Lexer] | partial[Lexer]]lexer_classes\z	\PYGZbs{}{z	\PYGZob{}}z	\PYGZcb{}aS  
% Sphinx redefinitions
% Originally to obtain a straight single quote via package textcomp, then
% to fix problems for the 5.0.0 inline code highlighting (captions!).
% The \text is from amstext, a dependency of sphinx.sty.  It is here only
% to avoid build errors if for some reason expansion is in math mode.
\def\PYGZbs{\text\textbackslash}
\def\PYGZus{\_}
\def\PYGZob{\{}
\def\PYGZcb{\}}
\def\PYGZca{\text\textasciicircum}
\def\PYGZam{\&}
\def\PYGZlt{\text\textless}
\def\PYGZgt{\text\textgreater}
\def\PYGZsh{\#}
\def\PYGZpc{\%}
\def\PYGZdl{\$}
\def\PYGZhy{\sphinxhyphen}% defined in sphinxlatexstyletext.sty
\def\PYGZsq{\text\textquotesingle}
\def\PYGZdq{"}
\def\PYGZti{\text\textasciitilde}
\makeatletter
% use \protected to allow syntax highlighting in captions
\protected\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+{\PYG@do{#2}}}
\makeatother
c                      e Zd Zee   Zee   Z	 	 	 d	 	 	 	 	 	 	 d	dZd
dZ	ddZ
	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZy)PygmentsBridgeNc                    || _         || _        | j                  |      }d|i| _        |dk(  r| j                  | _        y | j                  | _        d| j                  d<   y )NstylehtmlPYGcommandprefix)destlatex_engine	get_styleformatter_argshtml_formatter	formatterlatex_formatter)selfr9   	stylenamer:   r5   s        r$   __init__zPygmentsBridge.__init__h   s_     	(y)/6.>6>373F3FDN!11DN38D0r&   c                    |r|dk(  rt         S |dk(  rt        S d|v r*|j                  dd      \  }}t        t	        |      |      S t        |      S )Nsphinxr)   r      )r   r   rsplitgetattrr   r   )r@   rA   modules      r$   r;   zPygmentsBridge.get_styley   s\    I1& I ) 0 0a 8FI=0)<<$Y//r&   c                \    |j                  | j                          | j                  di |S )Nr!   )updater<   r>   )r@   kwargss     r$   get_formatterzPygmentsBridge.get_formatter   s(    d))*t~~'''r&   c                   |si }|dv r|j                  d      rd}nd}|dk(  rd}|t        v r	t        |   S |t        v rt        |   di |}n	 |dk(  rt        |fi |}nt	        |fi |}|s|j                  d       |S # t
        $ r4 t        j                  t        d      ||dd	
       t        d   di |}Y Qw xY w)N>   pypy3r*   defaultpython3z>>>r+   r*   pycon3guessz#Pygments lexer name %r is not knownmischighlighting_failure)locationtypesubtyper)   raiseonerrorr!   )

startswithr'   r.   r   r   r   loggerwarningr   
add_filter)r@   sourcelangoptsforcerV   lexers          r$   	get_lexerzPygmentsBridge.get_lexer   s     D @@  '8D6>$<]"!$'/$/E67?'7$7E-d;d;E ^, ! 6<=%2   &f-556s   B :B?>B?c           
        t        |t              s|j                         }| j                  |||||      } | j                  d	i |}	 t        |||      }	| j                  dk(  r|	S t        j                  |	| j                        S # t        $ ri}
|dk(  rd}n5t        j                  t        d      ||t        |
      dd|       |rd}nd}| j                  |||||      }t        |||      }	Y d }
~
d }
~
ww xY w)
NrP   r)   z\Lexing literal_block %r as "%s" resulted in an error at token: %r. Retrying in relaxed mode.rT   rU   )rW   rX   rV   Tr6   r!   )
isinstancestrdecoderc   rL   r   r   r[   r\   r   r9   r   hlescaper:   )r@   r^   r_   r`   ra   rV   rK   rb   r>   hlsourceerrs              r$   highlight_blockzPygmentsBridge.highlight_block   s    &#&]]_FvtT5(C 'D&&00		; 	:H4 99O %%h0A0ABB;  	; y 4 H2%   !D ENN64uhGE 	:H/	;s   	B 	C9AC44C9c                    | j                         }| j                  dk(  r|j                  d      S |j                         t        z   S )Nr6   z
.highlight)rL   r9   get_style_defs_LATEX_ADD_STYLES)r@   r>   s     r$   get_stylesheetzPygmentsBridge.get_stylesheet   sB    &&(	99++L99++-0AAAr&   )r6   rD   N)r9   rf   rA   rf   r:   z
str | NonereturnNone)rA   rf   rp   ztype[Style])rK   r   rp   zFormatter[str])NFN)r^   rf   r_   rf   r`   dict[str, Any] | Nonera   boolrV   r   rp   r   )r^   rf   r_   rf   r`   rr   ra   rs   rV   r   rK   r   rp   rf   )rp   rf   )__name__
__module____qualname__r	   rf   r=   r
   r?   rB   r;   rL   rc   rk   ro   r!   r&   r$   r3   r3   b   s    #3'N$S)O !#'	99 9 !	9
 
9"	0( '+-- - $	-
 - - 
-f '+/C/C /C $	/C
 /C /C /C 
/CbBr&   r3   )<__doc__
__future__r   	functoolsr   	importlibr   typingr   pygmentsr   pygments.filtersr   pygments.formattersr	   r
   pygments.lexersr   r   r   r   r   r   r   pygments.stylesr   pygments.utilr   sphinx.localer   sphinx.pygments_stylesr   r   sphinx.utilr   r   r   pygments.formatterr   pygments.lexerr   pygments.styler   tuplemapint__version__splitclassmethod__class_getitem__	getLoggerrt   r[   r'   __annotations__r.   ordescape_hl_charsrn   r3   r!   r&   r$   <module>r      s%   + "  #     ' =   . '  9 *,$$S(&&,,S1"15	67'A,"-.C"DI			8	$ Iu-k51'7He,		':6  I|HlHl" 8KB KBr&   