
    }c              
          U d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
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 ddlmZ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' ddl(m)Z)m*Z* ddl+m,Z,m-Z-  e,j.        e/          Z0i Z1ee2ef         e3d<    eed           eed           eed           eed           eedd           eed           eed          dZ4ee2ef         e3d<    e5d          d e5d          d e5d          diZ6d Z7d!Z8 e	j9        e          j:        d"k    re7e8z  Z7 G d# d$          Z;d%S )&z%Highlight code blocks using Pygments.    )partial)import_module)AnyDict)version)__version__)	highlight)
ErrorToken)	Formatter)HtmlFormatterLatexFormatter)Lexer)CLexerPython3LexerPythonConsoleLexerPythonLexerRstLexer	TextLexerget_lexer_by_nameguess_lexer)Style)get_style_by_name)ClassNotFound)__)	NoneStyleSphinxStyle)logging	texescapelexersF)stripnlT)python3r    )nonepythonr!   pyconpycon3restclexer_classes\z	\PYGZbs{}{z	\PYGZob{}}z	\PYGZcb{}z(
\renewcommand\PYGZsq{\textquotesingle}
a  
\makeatletter
% fix for Pygments <= 2.7.4
\let\spx@original@fcolorbox\fcolorbox
\def\spx@fixpyg@fcolorbox{\fboxsep-\fboxrule\spx@original@fcolorbox}
\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+%
             {\let\fcolorbox\spx@fixpyg@fcolorbox\PYG@do{#2}}}
\makeatother
)         c                       e Zd ZeZeZ	 	 ddedededdfdZdede	fd	Z
d
edefdZ	 	 ddedededededefdZ	 	 ddededededed
edefdZdefdZdS )PygmentsBridgehtmlsphinxNdest	stylenamelatex_enginereturnc                     || _         || _        |                     |          }d|i| _        |dk    r| j        | _        d S | j        | _        d| j        d<   d S )Nstyler1   PYGcommandprefix)r3   r5   	get_styleformatter_argshtml_formatter	formatterlatex_formatter)selfr3   r4   r5   r8   s        3lib/python3.11/site-packages/sphinx/highlighting.py__init__zPygmentsBridge.__init__E   sf    	(y))/6.>6> 	9!0DNNN!1DN38D000    c                     ||dk    rt           S |dk    rt          S d|v r6|                    dd          \  }}t          t	          |          |          S t          |          S )Nr2   r"   .   )r   r   rsplitgetattrr   r   )r@   r4   modules      rA   r;   zPygmentsBridge.get_styleR   s|     	0	X 5 	0&  	0I 	0 ) 0 0a 8 8FI=00)<<<$Y///rC   kwargsc                 P    |                     | j                    | j        di |S )N )updater<   r>   )r@   rJ   s     rA   get_formatterzPygmentsBridge.get_formatter]   s/    d)***t~'''''rC   Fsourcelangoptsforcelocationc                    |si }|dv r|                     d          rd}n!d}n|dv r|                     d          rd}nd}|t          v rt          |         S |t          v rt          |         di |}no	 |dk    rt          |fi |}nt	          |fi |}nL# t
          $ r? t                              t          d	          ||
           t          d         di |}Y nw xY w|s|	                    d           |S )N)pyr#   z>>>r$   r#   )py3r!   defaultr%   r!   guessz#Pygments lexer name %r is not known)rS   r"   raiseonerrorrL   )

startswithr   r(   r   r   r   loggerwarningr   
add_filter)r@   rO   rP   rQ   rR   rS   lexers          rA   	get_lexerzPygmentsBridge.get_lexera   ss    	D ## 
	!  ''  22 	!  '' ! 6> 	6$<]" 	6!$'//$//EE67? <'77$77EE-d;;d;;E  6 6 6r"GHH$(0  2 2 2%f-55556
  	-^,,,s   5!B AC C c                    t          |t                    s|                                }|                     |||||          } | j        di |}	 t          |||          }	nm# t          $ r` |dk    rn,t                              t          d          |dd|           |                     |d|||          }t          |||          }	Y nw xY w| j
        dk    r|	S t          j        |	| j                  S )	NrW   z:Could not lex literal_block as "%s". Highlighting skipped.mischighlighting_failure)typesubtyperS   r"   r1   rL   )
isinstancestrdecoder_   rN   r	   r
   r[   r\   r   r3   r   hlescaper5   )
r@   rO   rP   rQ   rR   rS   rJ   r^   r>   hlsources
             rA   highlight_blockzPygmentsBridge.highlight_block   s0   &#&& 	%]]__FvtT5(CC 'D&0000		; 	::HH 	; 	; 	; y  2r #:  ;  ;<@$*4J(0  2 2 2 NN664IIE 	::HHH	; 9 	CO %h0ABBBs   A# #A'CCc                     |                                  }| j        dk    r|                    d          S |                                t          z   S )Nr1   z
.highlight)rN   r3   get_style_defs_LATEX_ADD_STYLES)r@   r>   s     rA   get_stylesheetzPygmentsBridge.get_stylesheet   sO    &&((	9 	B++L999++--0AAArC   )r1   r2   N)NFN)__name__
__module____qualname__r   r=   r   r?   rf   rB   r   r;   r   r   rN   r   boolr   r_   rj   rn   rL   rC   rA   r0   r0   ?   sw        #N$O<D%)9 9S 9c 9"9.29 9 9 9	03 	05 	0 	0 	0 	0(c (i ( ( ( ( >B7;% % %3 %d %%14%@E% % % %N DH=AC Cc C CD C#C7:CMPCUXC C C C<B B B B B B BrC   r0   N)<__doc__	functoolsr   	importlibr   typingr   r   	packagingr   pygmentsr   pygmentsversionr	   pygments.filtersr
   pygments.formatterr   pygments.formattersr   r   pygments.lexerr   pygments.lexersr   r   r   r   r   r   r   r   pygments.styler   pygments.stylesr   pygments.utilr   sphinx.localer   sphinx.pygments_stylesr   r   sphinx.utilr   r   	getLoggerro   r[   r   rf   __annotations__r(   ordescape_hl_charsrm   _LATEX_ADD_STYLES_FIXPYGparsereleaser0   rL   rC   rA   <module>r      sA   + + +       # # # # # #               3 3 3 3 3 3       ' ' ' ' ' ' ( ( ( ( ( ( = = = = = = = =            H H H H H H H H H H H H H H H H H H H H             - - - - - - ' ' ' ' ' '       9 9 9 9 9 9 9 9 * * * * * * * *		8	$	$S%Z   GIu---gk5111w|U333W'777g($FFFGHe,,,		'	'	'# #tCJ    3t99l3s88\3s88\+   7=!!)Y6 211lB lB lB lB lB lB lB lB lB lBrC   