
    !<i                        d Z ddlmZ ddlmZ ddlmZmZ ddlZ	ddl
Z	ddlZ	ddlZ	ddlZddlmZ ddlmZ ddl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  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Z+dZ,dZ- e$              G d de          Z.d Z/d Z0 G d de	j1        j2                  Z3 G d de          Z4e4xZ5xZ6xZ7Z8dS )z
reStructuredText parser for rich

Initial few lines gotten from: https://github.com/willmcgugan/rich/discussions/1263#discussioncomment-808898
There are a lot of improvements are added by me
    )StringIO)
HTMLParser)OptionalUnionN)box)Align)ConsoleConsoleOptionsRenderResultNewLine)JupyterMixin)Panel)Style)SyntaxSyntaxTheme)Text)Table)install)Rule)guess_lexer)ClassNotFound)RSTReStructuredTextreStructuredTextRestructuredTextz$Arian Mollik Wasi (aka. Wasi Master)z1.3.2c                   .     e Zd ZdZ fdZd Zd Z xZS )
MLStripperz3Utility class to strip out html for raw html sourcec                     t                                                       |                                  d| _        d| _        t                      | _        d S )NFT)super__init__resetstrictconvert_charrefsr   text)self	__class__s    /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/rich_rst/__init__.pyr    zMLStripper.__init__-   sD    

 $JJ			    c                 :    | j                             |           d S N)r$   write)r%   ds     r'   handle_datazMLStripper.handle_data4   s    	r(   c                 4    | j                                         S r*   )r$   getvalue)r%   s    r'   get_datazMLStripper.get_data7   s    y!!###r(   )__name__
__module____qualname____doc__r    r-   r0   __classcell__r&   s   @r'   r   r   +   s\        ==      $ $ $ $ $ $ $r(   r   c                 p    t                      }|                    |            |                                S r*   )r   feedr0   )htmlss     r'   
strip_tagsr;   ;   s(    AFF4LLL::<<r(   c                     ddl ddli g ffd	} g d}|D ]i}j        j        j                            ||            t          j        j        j        j        d          r|j        j        j        j        j        |<   jdS )a9  
    Register common Sphinx roles to gracefully handle Sphinx-specific markup.

    Sphinx roles like :func:, :class:, :meth: are very common in Python docstrings
    but are not available in standard docutils. This function registers them to
    render as inline code/literal text instead of showing errors.
    r   Nc                     |}d|v rJ|                     d          r5|                    d          }|d|                                         }	|	r|	}j                            ||          }
|
gg fS )a  
        Generic Sphinx role handler that renders as inline literal text.

        Parameters
        ----------
        name : str
            The role name
        rawtext : str
            The entire role text including role markup
        text : str
            The interpreted text content
        lineno : int
            The line number where the interpreted text begins
        inliner : Inliner
            The inliner instance that called this role function
        options : dict
            Directive options for customization
        content : list
            The directive content for customization

        Returns
        -------
        tuple
            A tuple of (nodes, messages)
        <>N)endswithrfindstripnodesliteral)namerawtextr$   linenoinlineroptionscontentdisplay_textbracket_pospotential_displaynodedocutilss              r'   sphinx_rolez+_register_sphinx_roles.<locals>.sphinx_roleL   s}    4 $;;4==--;**S//K $\k\ 2 8 8 : :  10~%%g|<<vrzr(   )funcfunctionmethmethodclassmodmoduleattr	attributeobjobjectdataconstconstantexc	exceptionvarvariabletypezpy:funczpy:methzpy:classzpy:modzpy:attrzpy:objzpy:datazpy:constzpy:excroles)	docutils.parsers.rst.roles!docutils.parsers.rst.languages.enparsersrstrd   register_canonical_rolehasattr	languagesen)rP   sphinx_rolesrolerO   s      @r'   _register_sphinx_rolesro   A   s     &%%%,,,,BDb " " " " " "H  L   A A"::4MMM8#'14g>> 	A<@H *-3D9	A Ar(   c                       e Zd ZdZ	 	 	 d<dej        j        dedee	e
f         dee         d	ee	         d
df fdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$ Z%d% Z&d& Z'd' Z(d( Z)d) Z*d* Z+d+ Z,d, Z-d- Z.d. Z/d/ Z0d0 Z1d1 Z2d2 Z3d3 Z4d4 Z5d5 Z6d6 Z7d7 Z8d8 Z9d9 Z:d: Z;d; Z< xZ=S )=
RSTVisitorz(A visitor that produces rich renderablesmonokaiTpythondocumentconsole
code_themer   default_lexerreturnNc                 :   t                                          |           || _        || _        g | _        t
                              dd          | _        t
                              dd          | _        g | _	        g | _
        || _        || _        i | _        d S )NuG   1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=+-*/×÷u   ¹²³⁴⁵⁶⁷⁸⁹⁰ᵃᵇᶜᵈᵉᶠᵍʰⁱʲᵏˡᵐⁿᵒᵖᑫʳˢᵗᵘᵛʷˣʸᶻᴬᴮᶜᴰᴱᶠᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾQᴿˢᵀᵁⱽᵂˣʸᶻ⁼⁺⁻*/×÷u-   1234567890abcdefghijklmnopqrstuvwxyz=+-*/×÷ug   ₁₂₃₄₅₆₇₈₉₀abcdₑfgₕᵢⱼₖₗₘₙₒₚqᵣₛₜᵤᵥwₓyz₌₊₋*/×÷)r   r    ru   rv   renderablesstr	maketrans
supercript	subscripterrorsfooterr   rw   refname_to_renderable)r%   rt   ru   rv   r   rw   r&   s         r'   r    zRSTVisitor.__init__   s     	"""$--U H
 
 ;  >g
 
 &*%'"""r(   c                    t          |                    d                    dk    r|d         d         n|                    d          r|d         nd }|k| j        rd	 t          |                                          }|j        r|j        d         n| j        }n# t          $ r
 | j        }Y nw xY w|dk    r| j        S |S || j        s	| j        }|S |S )Nclasses      formatr   r$   )lengetr   astextaliasesrw   r   )r%   rN   lexers      r'   _find_lexerzRSTVisitor._find_lexer   s    "%dhhy&9&9":":a"?"?DOAX\X`X`aiXjXjFtd8nnpt 	 =T-=R#DKKMM22 -2MQa((t?Q ! + + +*+ ))L]4#3]&ELs   !B B/.B/c                    |j                             d          }| j                            dd          }|r|                    |          }t          |                                                    dd          |d          }| j        rbt          | j        d	         t
                    rBd|_
        t          | j        d	                   }| j        d	                             |           nd
}| j                            |           t          | j        d	                   }|s4|j                             d          }|r| j        d	         ||f| j        |<   t          j                                        )Nrefurizrestructuredtext.referencezblue underline on defaultdefault
  styleendr   refname)
attributesr   ru   	get_styleupdate_linkr   r   replacerz   
isinstancer   r   append_textappendr   rO   rC   SkipChildren)r%   rN   r   r   
renderablestartr   r   s           r'   visit_referencezRSTVisitor.visit_reference   sb   $$X..&&'CMh&ii 	.%%f--E$++--//c::%RPPP
 	0
4+;B+? F F 	0 JN(,--ER ,,Z8888E##J///$"2&'' 	Yo)))44G Y7;7G7KUTW6X*73n))+++r(   c                 V   |                     d          }|ru|d         D ]l}	 | j        |         \  }}}n# t          $ r Y !w xY w|                    | j        |          }|                    |          }|                    |||           mt          j        	                                )Nr   names)
r   r   KeyErrorget_style_at_offsetru   r   stylizerO   rC   r   )r%   rN   urirE   r   r   r   r   s           r'   visit_targetzRSTVisitor.visit_target   s    hhx   	6W 6 6-1-G-M*Jss   H"66t|UKK))#..""5%5555n))+++s   5
AAc                     t          |d          r@t          |j        t          j        j                  r|                     |j                   d S d S d S )Nparent)rj   r   r   rO   rC   system_messagevisit_system_messager%   rN   s     r'   visit_paragraphzRSTVisitor.visit_paragraph   s\    4"" 	3z$+x~?\']'] 	3%%dk22222	3 	3 	3 	3r(   c                     | j         ret          | j         d         t                    rGt          | j         d         j                  dk    r&| j         d                             d           d S d S d S d S )Nr   r   

)rz   r   r   r   r   r   r   s     r'   depart_paragraphzRSTVisitor.depart_paragraph   s     	4
4+;B+? F F 	44#B'+,,11 $++F33333	4 	4 	4 	411r(   c                    | j                             dd          }| j                            t	          t          |                                d          t          j        |                     t          j
                                        )Nzrestructuredtext.titleboldr   center)r   r   )ru   r   rz   r   r   r   r   r   DOUBLErO   rC   r   r%   rN   r   s      r'   visit_titlezRSTVisitor.visit_title   sl    &&'?&PPeDKKMM8&D&D#*\a b b bcccn))+++r(   c                    | j                             dd          }| j        rxt          | j        d         t                    rX| j        d                             t	          |                                                    dd          |d                     d S | j                            t	          |                                                    dd          d|	                     d S )
Nzrestructuredtext.textz default on default not underliner   r   r   r   r   r   r   r   )	ru   r   rz   r   r   r   r   r   r   r   s      r'   
visit_TextzRSTVisitor.visit_Text   s    &&'>Hj&kk 	
4+;B+? F F 	R ,,T$++--2G2Gc2R2RZ_eh-i-i-ijjjFT[[]]%:%:4%E%E2UZ [ [ [\\\\\r(   c                 >    t           j                                        r*   rO   rC   r   r   s     r'   visit_commentzRSTVisitor.visit_comment       n))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.admonition
bold whiter   r   r   zAdmonition: titler   border_style
ru   r   rz   r   r   r   r   rO   rC   r   r   s      r'   visit_admonitionzRSTVisitor.visit_admonition   ss    &&'Dl&[[dkkmm&;&;D#&F&Fndix} ~ ~ ~n))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.attentionzbold black on yellowr   r   r   zAttention: r   r   r   s      r'   visit_attentionzRSTVisitor.visit_attention   st    &&'CMc&dddkkmm&;&;D#&F&Fmchw| } } }~~~n))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.cautionredr   r   r   z	Caution: r   r   r   s      r'   visit_cautionzRSTVisitor.visit_caution   ss    &&'A5&QQdkkmm&;&;D#&F&Fkafuz { { {|||n))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.dangerzbold white on redr   r   r   zDANGER: r   r   r   s      r'   visit_dangerzRSTVisitor.visit_danger  st    &&'@J]&^^dkkmm&;&;D#&F&Fj`ety z z z{{{n))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.errorbold redr   r   r   zERROR: r   r   r   s      r'   visit_errorzRSTVisitor.visit_error  ss    &&'?&TTdkkmm&;&;D#&F&Fi_dsx y y yzzzn))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.hintyellowr   r   r   zHint: r   r   r   s      r'   
visit_hintzRSTVisitor.visit_hint  ss    &&'>&QQdkkmm&;&;D#&F&Fh^crw x x xyyyn))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.importantz	bold bluer   r   r   zIMPORTANT: r   r   r   s      r'   visit_importantzRSTVisitor.visit_important  ss    &&'C[&YYdkkmm&;&;D#&F&Fmchw| } } }~~~n))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.noter   r   r   r   zNote: r   r   r   s      r'   
visit_notezRSTVisitor.visit_note  ss    &&'>&UUdkkmm&;&;D#&F&Fh^crw x x xyyyn))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.tipz
bold greenr   r   r   zTip: r   r   r   s      r'   	visit_tipzRSTVisitor.visit_tip  ss    &&'=|&TTdkkmm&;&;D#&F&Fg]bqv w w wxxxn))+++r(   c                    | j                             dd          }| j                            t	          |                                                    dd          d||                     t          j        	                                )Nzrestructuredtext.warningbold yellowr   r   r   z	Warning: r   r   r   s      r'   visit_warningzRSTVisitor.visit_warning  ss    &&'A=&YYdkkmm&;&;D#&F&Fkafuz { { {|||n))+++r(   c                 \   | j                             dd          }| j        rt          | j        d         t                    rx| j        d                             t	          |                                                    | j                  |d                     t          j
                                        | j                            t	          |                                                    | j                  d|                     t          j
                                        )	Nzrestructuredtext.subscriptnoner   r   r   r   r   r   )ru   r   rz   r   r   r   r   	translater~   rO   rC   r   r   r   s      r'   visit_subscriptzRSTVisitor.visit_subscript$  s    &&'CV&TT 	0
4+;B+? F F 	0R ,,T$++--2I2I$.2Y2Yaflo-p-p-pqqq.--///T[[]]%<%<T^%L%LRT\a b b bcccn))+++r(   c                 \   | j                             dd          }| j        rt          | j        d         t                    rx| j        d                             t	          |                                                    | j                  |d                     t          j
                                        | j                            t	          |                                                    | j                  d|                     t          j
                                        )	Nzrestructuredtext.superscriptr   r   r   r   r   r   r   )ru   r   rz   r   r   r   r   r   r}   rO   rC   r   r   r   s      r'   visit_superscriptzRSTVisitor.visit_superscript,  s    &&'Ev&VV 	0
4+;B+? F F 	0R ,,T$++--2I2I$/2Z2Zbgmp-q-q-qrrr.--///T[[]]%<%<T_%M%MSU]b c c cdddn))+++r(   c                 L   | j                             dd          }| j        rt          | j        d         t                    rt| j        d                             t	          |                                                    dd          |d                     t          j	        
                                | j                            t	          |                                                    dd          |d                     t          j	        
                                )	Nzrestructuredtext.emphasisitalicr   r   r   r   r   r   ru   r   rz   r   r   r   r   r   rO   rC   r   r   r   s      r'   visit_emphasiszRSTVisitor.visit_emphasis4  s    &&'BH&UU 	0
4+;B+? F F 	0R ,,T$++--2G2Gc2R2RZ_eh-i-i-ijjj.--///T[[]]%:%:4%E%EUXZ [ [ [\\\n))+++r(   c                 L   | j                             dd          }| j        rt          | j        d         t                    rt| j        d                             t	          |                                                    dd          |d                     t          j	        
                                | j                            t	          |                                                    dd          |d                     t          j	        
                                )	Nzrestructuredtext.strongr   r   r   r   r   r   r   r   r   s      r'   visit_strongzRSTVisitor.visit_strong<  s    &&'@&&QQ 	0
4+;B+? F F 	0R ,,T$++--2G2Gc2R2RZ_eh-i-i-ijjj.--///T[[]]%:%:4%E%EUXZ [ [ [\\\n))+++r(   c                 F   d\  }}d|j         v r2|j                             d          d                                         }d|j         v r2|j                             d          d                                         }| j                            t          d          t          |                    d|pd          t          |                    d|pd          p|                    d	          d
                    z              t          j	        
                                )N)NNz:target:r   z:alt:u   🌆 altImagetargetr   z#6088ff)linkcolorr   )	rawsourcesplitrB   rz   r   r   r   r   rO   rC   r   )r%   rN   r   r   s       r'   visit_imagezRSTVisitor.visit_imageD  s    V''^))*55b9??AAFdn$$.&&w//399;;CMMw//(F,=g>>Q$((5//#    		
 		
 		
 n))+++r(   c                    | j                             dd          }| j                             dd          }|j        D ]}d |j        D             }|rK|j        D ]B}| j                            t          dd	          t          d
d|          z              | j                            t          |                                                    dd          |                     t          |t          j
        j                  r|j        D ]}| j                            t          dd	          t          dd|          z              | j                            t          |                                                    dd          |                     D| j                            t          dd|                     | j                            t          |                                                    dd          |                     | j                            t                                 t          j
                                        )Nz#restructuredtext.bullet_list_markerr   r   z!restructuredtext.bullet_list_textr   c                 P    g | ]#}t          |t          j        j                  !|$S  )r   rO   rC   bullet_list).0is     r'   
<listcomp>z0RSTVisitor.visit_bullet_list.<locals>.<listcomp>\  s,    fffJq(.Jd<e<ef1fffr(   z  r   r   u    ∘ r   r   r   r       u    ▪ u    • )ru   r   childrenrz   r   r   r   r   r   rO   rC   r   r   r   )r%   rN   marker_style
text_style	list_itemnested_lists         r'   visit_bullet_listzRSTVisitor.visit_bullet_listV  sE    |--.S]j-kk\++,OY_+``
 	c 	cIffi&8fffK s!*!3 s sI$++D2,>,>,>gSU]iAjAjAj,jkkk$++D1A1A1C1C1K1KDRU1V1V^h,i,i,ijjj!)X^-GHH s)2); s sI ,33DR4H4H4H4PW]_gsKtKtKt4tuuu ,33D9I9I9K9K9S9STXZ]9^9^fp4q4q4qrrrr##Db$M$M$MNNN##D)9)9););)C)CD#)N)NV`$a$a$abbbb		***n))+++r(   c           	      (   | j                             dd          }| j                             dd          }t          |j        d          D ]\  }}| j                            t          d| d|                     | j                            t          |                                                    d	d          |
                     | j                            t                                 t          j                                        )Nz'restructuredtext.enumerated_list_markerr   r   z restructuredtext.enumerated_textr   r   r   r   r   r   )ru   r   	enumerater   rz   r   r   r   r   r   rO   rC   r   )r%   rN   r   r   r   r   s         r'   visit_enumerated_listz RSTVisitor.visit_enumerated_listj  s    |--.Wan-oo\++,NX^+__
%dmQ77 	c 	cLAy##DQc$N$N$NOOO##D)9)9););)C)CD#)N)NV`$a$a$abbbb		***n))+++r(   c                 L   | j                             dd          }| j        rt          | j        d         t                    rt| j        d                             t	          |                                                    dd          |d                     t          j	        
                                | j                            t	          |                                                    dd          |d                     t          j	        
                                )	Nz!restructuredtext.inline_codeblockzgrey78 on grey7r   r   r   r   r   r   r   r   s      r'   visit_literalzRSTVisitor.visit_literalt  s    &&'JTe&ff 	0
4+;B+? F F 	0R ,,T$++--2G2Gc2R2RZ_eh-i-i-ijjj.--///T[[]]%:%:4%E%EUXZ [ [ [\\\n))+++r(   c           	      >   | j                             dd          }| j        rlt          | j        d         t                    rL| j        d                                          | j        d                             t	          d                     |                     |          }| j                            t          t          |                                || j                  |t          j        |                     t          j                                        )N%restructuredtext.literal_block_bordergrey58r   r   r   themer   r   r   )ru   r   rz   r   r   rstripr   r   r   r   r   r   rv   r   SQUARErO   rC   r   )r%   rN   r   r   s       r'   visit_literal_blockzRSTVisitor.visit_literal_block|  s    &&'NX`&aa 	9
4+;B+? F F 	9R '')))R ,,T$ZZ888  &&&T_EEETY_b_iqvwww	
 	
 	
 n))+++r(   c                    | j                             t          | j                            |                                          d|j                            dd           d|j                            dd           d|j                            dd           d|j                            d	d           d
	ddddd|j                            d                                        t          j	        
                                )NzSystem Message: rc   ?/levelz (sourcez, line linez);r   z	bold cyanr   r   )NINFOWARNINGERRORr   r   )r   r   r   ru   
render_strr   r   r   rO   rC   r   r   s     r'   r   zRSTVisitor.visit_system_message  sY   ''66 A)<)<VS)I)I  A  ADOL_L_`gilLmLm  A  Aqu  rA  rE  rE  FN  PS  rT  rT  A  A  ]a  ]l  ]p  ]p  qw  y|  ]}  ]}  A  A  A$*KMdnooO''//  	
 	
 	
 n))+++r(   c                    | j                             dd          }| j                             dd          }d }t          | j        d         t                    rS| j        d         }|j        d         j        dk    r|j        d	         j        d
k    r|}d}nt	          dd
d          }d}nd}|du rt	          dd
d          }|                    t          |j	        d         
                                |          t          |j	        d	         
                                |                     | j                            |           nn|                    t          |j	        d         
                                |          t          |j	        d	         
                                |                     t          j                                        )Nzrestructuredtext.field_namer   r   zrestructuredtext.field_valuer   r   r   z
Field Namer   zField ValueT)
show_linesFr   )ru   r   r   rz   r   columnsheaderadd_rowr   r   r   r   rO   rC   r   )r%   rN   field_name_stylefield_value_styleprevious_tablepossible_tabletables          r'   visit_fieldzRSTVisitor.visit_field  s   <112OY_1`` L223Q[a2bbd&r*E22 		#!-b1N&q)0L@@~G]^_G`GgkxGxGx&!%lMdKKK!&"NU"",$GGGEMM$t}Q/6688@PQQQSWX\XefgXhXoXoXqXq  zK  TL  TL  TL  M  M  M##E****MM$t}Q/6688@PQQQSWX\XefgXhXoXoXqXq  zK  TL  TL  TL  M  M  Mn))+++r(   c                 l   | j                             dd          }| j                             dd          }| j                             dd          }|j        D ]}	 |j        \  }}}| j                            t          d          t          |                                |d	          z   t          d
d          z   t          |                                |          z   t          dd          z   t          |                                                    dd          |          z   t          dd          z              # t          $ r |j        d         |j        d         }}t          |j                  dk    r|j        dd          D ]}	t          |	t          j        j                  r|                     |	           7t          |	t          j        j                  r|                     |	           lt          |	t          j        j                  r|                     |	           t          |	t          j        j                  r|                     |	           n| j                            t          j        d| d|                                 d| d          t          dd          z   t          |                                                    dd          |          z   t          dd          z              Y w xY wt          j                                        )Nzrestructuredtext.term_styler   r   z!restructuredtext.classifier_stylecyanz"restructuredtext.definitions_styler   r   r   z : r   r   z
      r   r   r   r   r   []z[/
    )ru   r   r   rz   r   r   r   r   
ValueErrorr   r   rO   rC   r   r  literal_blockr  rD   r  block_quotevisit_block_quotefrom_markupr   )
r%   rN   
term_styleclassifier_styledefinitions_stylechildterm
classifierdefinitionsr   s
             r'   visit_definition_listz RSTVisitor.visit_definition_list  sJ   \++,ISY+ZZ
<112U_e1ff L223Wag2hh]  	  	E05-j+,  ''LL4;;==
CCCD5b)))* :,,..6FGGGH :2...	/
 ;--//77cBBJ[\\\] 4R((()   +    #(>!#4enQ6Gju~&&**$)N122$6 = =%h0JKK = 228<<<<'(.2NOO = 44X>>>>'(.2HII = ..x8888'(.2LMM = 228<<<= $++()d-=)d)d)d)dQa)d)d)deexR0001z0022::4EEM^___` zr2223  < n))+++s    E

GLLc                    | j                             dd          }| j                             dd          }| j                             dd          }| j                             dd          }|j        D ]A}|j        \  }}t          d          }	|j        D ]}
	 |
j        \  }}n# t          $ r |
j        d	         d }}Y nw xY w|	t          |                                |
          |r#t          |                                |
          nt                      z   t          |j                  dk    rt          |j        |
          ndz   z  }	|r8|	t          d          z  }	|	t          |                                |
          z  }	| j        	                    |	t          d          z              Ct          j                                        )Nzrestructuredtext.option_stringr   r   z restructuredtext.option_argumentz,restructuredtext.option_child_text_separatorz#restructuredtext.option_descriptionr   r   r   r   r   r+  r   )ru   r   r   r   r,  r   r   child_text_separatorrz   r   rO   rC   r   )r%   rN   option_string_styleoption_argument_style!option_child_text_separator_styleoption_description_styleoption_list_itemoption_groupdescriptionoption_textoptionoption_stringoption_arguments                r'   visit_option_listzRSTVisitor.visit_option_list  s   "l445U_e4ff $ 6 67Yci 6 j j,0L,B,B:F -C -
 -
) $(<#9#9:_io#9#p#p  $ 	> 	>(8(A%L+2,,,K&/  N5;_2M??! N N N5;_Q5G?MMMN--//7JKKKVeqtO2244<QRRRRkokqkqs |45599 \>Fghhhh  ZtH~~-tK$6$6$8$8@XYYYY##K$t**$<====n))+++s   
B**CCc           	      ,   | j                             dd          }| j                            t	          t          |                                d| j                  |t          j	                             t          j                                        )Nr	  r
  r   pyconr  )r   r   )ru   r   rz   r   r   r   r   rv   r   r  rO   rC   r   r   s      r'   visit_doctest_blockzRSTVisitor.visit_doctest_block  s    &&'NX`&aat{{}}gT_EEE"J  	
 	
 	
 n))+++r(   c           
         | j                             dd          }| j                             dd          }| j                             dd          }	 |j        \  }}| j                            t          d|	          t          |                                |	          z   t          d
          z   t          d|                                z   |	          z              n# t          $ r |j        d         }| j                            t          d          t          |                                                    d
d          |	          z   t          d          z              Y nw xY wt          j
                                        )Nz restructuredtext.blockquote_textwhiter   z.restructuredtext.blockquote_attribution_markerbright_magentaz,restructuredtext.blockquote_attribution_textgrey89u   ▌ r   r   z  - r   r   r   r   )ru   r   r   rz   r   r   r   r,  r   rO   rC   r   )r%   rN   r   r   author_style	paragraphattributions          r'   r/  zRSTVisitor.visit_block_quote  s   \++,NX_+``
|--<FV . 
 
 |--.\fn-oo	%)]"I{ ##V<000y''))<<<=t** v 2 2 4 44LIIIJ     	 	 	a(I##Vy''))11$<<JOOOPv,,    	 n))+++s   
C% %BE.-E.c                     |j         D ];}| j                            t          |                                                     <t
          j                                        r*   )r   rz   r   r   r   rO   rC   r   )r%   rN   r  s      r'   visit_line_blockzRSTVisitor.visit_line_block  sQ    M 	9 	9D##D$7$78888n))+++r(   c                    t          |j                  dk    r|j        \  }}}n|j        d         d|j        d         }}}| j                            t	          |                                |                                |                                d                     t          j                                        )Nr   r   r   r   F)r   subtitleexpand)	r   r   rz   r   r   r   rO   rC   r   )r%   rN   r   rT  rO  s        r'   visit_sidebarzRSTVisitor.visit_sidebar  s    t}!!)-&E8YY)-q)92t}Q?OY8E)""$$ELLNNX__EVEV_deee	
 	
 	
 n))+++r(   c                     | j                             dd          }| j                            t	          |                     d S )Nzrestructuredtext.hrr   r   r   )ru   r   rz   r   r   r   s      r'   visit_transitionzRSTVisitor.visit_transition#  sE    &&'<h&OO5 1 1 122222r(   c                 0    |                      |           d S r*   )r   r   s     r'   visit_rubriczRSTVisitor.visit_rubric'  s    r(   c                    | j         rt          | j         d         t                    r_| j         d                             t          |                                d                     t
          j                                        | j                             t          |                                                     t
          j                                        )Nr   r   r   )rz   r   r   r   r   rO   rC   r   r   s     r'   visit_math_blockzRSTVisitor.visit_math_block*  s     	0
4+;B+? F F 	0R ''T[[]](D(D(DEEE.--///T[[]] 3 3444n))+++r(   c                     | j                             dd          }| j                            t	          |                                d|                     t          j                                        )Nz restructuredtext.citation_bordergrey74r   citationr  )	ru   r   rz   r   r   r   rO   rC   r   )r%   rN   r   s      r'   visit_citationzRSTVisitor.visit_citation1  sa    |--.PZb-ccdkkmm:T` a a abbbn))+++r(   c                 0   | j                             dd          }| j        rt          | j        d         t                    rf| j        d                             |                                                    dd          |           t          j	        
                                | j                            t	          |                                                    dd          |d	                     t          j	        
                                )
Nz#restructuredtext.citation_referencer^  r   r   r   r   r   r   r   )ru   r   rz   r   r   r   r   r   rO   rC   r   r   s      r'   visit_citation_referencez#RSTVisitor.visit_citation_reference6  s    &&'LV^&__ 	0
4+;B+? F F 	0R ''(=(=dC(H(HPU'VVV.--///T[[]]%:%:4%E%EUXZ [ [ [\\\n))+++r(   c           	      "   | j                             dd          }| j                            dt	          t          |                                d          dt          j        |                     t          j
                                        )Nzrestructuredtext.captionr   r   r   r   caption)r   r   r   )ru   r   rz   insertr   r   r   r   r   rO   rC   r   r   s      r'   visit_headerzRSTVisitor.visit_header>  sr    &&'A6&RR5t{{}}h)G)Gy^a^hpu#v#v#vwwwn))+++r(   c                     | j                             t          |                                d                     t          j                                        Nr   r   r   r   r   rO   rC   r   r   s     r'   visit_footerzRSTVisitor.visit_footerC  >    599:::n))+++r(   c                     | j                             t          |                                d                     t          j                                        rh  ri  r   s     r'   visit_footnotezRSTVisitor.visit_footnoteG  rk  r(   c                     | j                             t          |                                d                     t          j                                        rh  ri  r   s     r'   visit_generatedzRSTVisitor.visit_generatedK  rk  r(   c                 >    t           j                                        r*   r   r   s     r'   visit_pendingszRSTVisitor.visit_pendingsO  r   r(   c           	          | j                             t          t          |                                d| j                  dd                     d S )Nrh   )r   r  z#System Message: Problematic Elementr   r  )r   r   r   r   r   rv   r   s     r'   visit_problematiczRSTVisitor.visit_problematicR  sZ    t{{}}EIII<'  	
 	
 	
 	
 	
r(   c           	         | j                             dd          }|                     |          }|                                }d|dk    rdn|z   }|dk    r7t	          |          }| j        rt          |          j        d         n| j        }| j        	                    t          t          ||| j                  |t          j        |	                     t          j                                        )
Nr	  r
  r   zraw r9   zstripped raw htmlr   r  r  )ru   r   r   r   r;   r   r   rw   rz   r   r   r   rv   r   r  rO   rC   r   )r%   rN   r   r   r$   r   s         r'   	visit_rawzRSTVisitor.visit_raw[  s    &&'NX`&aa  &&{{}}&--eLF??d##D484D\K%%-a00$J\E&uDO<<<5VYV`hmnnn	
 	
 	
 n))+++r(   )rr   Trs   )>r1   r2   r3   r4   rO   rC   rt   r	   r   r{   r   r   boolr    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r&  r8  rF  rI  r/  rR  rV  rX  rZ  r\  r`  rb  rf  rj  rm  ro  rq  rs  ru  r5   r6   s   @r'   rq   rq      si       22 /8&*'/( (.)( ( #{*+	(
 d^(  }( 
( ( ( ( ( (2  &, , ,,, , ,3 3 34 4 4
, , ,
] ] ], , ,, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,, , ,, , ,, , ,, , ,$, , ,(, , ,, , ,	, 	, 	,
, 
, 
,, , ,,%, %, %,N, , ,>	, 	, 	,, , ,0, , ,

, 
, 
,3 3 3  , , ,, , ,
, , ,, , ,
, , ,, , ,, , ,, , ,
 
 
, , , , , , ,r(   rq   c                       e Zd ZdZ	 	 	 	 	 	 ddedeeeef                  d	ee         d
ee         dee         dee         dee         ddfdZ	de
dedefdZdS )r   a  A reStructuredText renderable for rich.

    Parameters
    ----------
    markup : str
        A string containing reStructuredText markup.
    code_theme : Optional[Union[str, SyntaxTheme]]
        Pygments theme for code blocks. Defaults to "monokai".
    show_errors : Optional[bool]
        Whether to show system_messages aka errors and warnings.
    guess_lexer : Optional[bool]
        Whether to guess lexers for code blocks without specified language.
    default_lexer : Optional[str]
        Which lexer to use if no lexer is guessed or found. Defaults to "python"
    sphinx_compat : Optional[bool]
        Enable compatibility with Sphinx roles (func, meth, class, etc.) commonly used in
        Python docstrings. When enabled, these roles render as inline code instead of errors.
        Defaults to True for better compatibility with Python documentation.
    filename : Optional[str]
        A file name to use for error messages, useful for debugging purposes. Defaults to "<rst-document>"
    rr   TFrs   <rst-document>markuprv   show_errorsr   rw   sphinx_compatfilenamerx   Nc                 h    || _         || _        || _        || _        || _        || _        || _        d S r*   )ry  rv   
log_errorsr   rw   r{  r|  )r%   ry  rv   rz  r   rw   r{  r|  s           r'   r    zRestructuredText.__init__  s<     $%&** r(   ru   rI   c           	   #   *  K   | j         rt                       t          t          j        d          r4t          j                            t          j        j        j                  }nGt          j        	                    t          j        j        j        f          
                                }d|_        t          j                            | j                  }t          j                            | j        |          }t          j        j                                        }|                    |                                |           t)          ||| j        | j        | j                  }|                    |           |j        rt5          |j        d         t6                    rY|j        d                                          d|j        d         _        |j        d         rn\|j                                         n;t5          |j        d         t>                    r|j                                         nn|j        |j        D ]}|                     ||          E d {V  | j!        r-|j"        r&|j"        D ]}	|                     |	|          E d {V  |#                    dd	          }
|#                    d
d	          }d}|j$        D ]}|}|r9|                     tK          |dtL          j'        ||
                    E d {V  d S d S )Nget_default_settings)
componentsE   )ru   rv   r   rw   r   r   zrestructuredtext.footerr   r   zrestructuredtext.footer_borderr^  r   Footer)r   r   r   r   )(r{  ro   rj   rO   frontendr  rg   rh   ParserOptionParserget_default_valuesreport_levelioStringInputry  utilsnew_documentr|  parsereadrq   rv   r   rw   	walkaboutrz   r   r   r  r   popr   renderr~  r   r   r   r   r   r  )r%   ru   rI   settingsr  rt   
rst_parservisitorr   errorr   r   footer_textelements                 r'   __rich_console__z!RestructuredText.__rich_console__  s<      	%"$$$ 8$&<== 	v(==h>N>R>YZZHH  (55(BRBVB]A_5``ssuuH "((55>..t}hGG%)0022
111 (,
 
 
 	7### ! 	'-b1488 
#B'..000.2#B'+&r* .'++----G/3W== #'')))) ! 	 "- 	; 	;J~~j'::::::::::? 	:w~ 	:  : :">>%9999999999!!";V!LL(()IS[(\\~ 	" 	"G!KK 	~~kszP\dijjj          	 	r(   )rr   TFrs   Trx  )r1   r2   r3   r4   r{   r   r   r   rv  r    r	   r
   r   r  r   r(   r'   r   r   k  s         2 9B&*&+'/(,"2! !! U3#345! d^	!
 d^!  }!  ~! 3-! 
! ! ! !$6 6. 6\ 6 6 6 6 6 6r(   r   )9r4   r  r   html.parserr   typingr   r   docutils.iorO   docutils.nodesdocutils.parsers.rstdocutils.utilsrichr   
rich.alignr   rich.consoler	   r
   r   r   rich.jupyterr   
rich.panelr   
rich.styler   rich.syntaxr   r   	rich.textr   
rich.tabler   rich.tracebackr   	rich.ruler   pygments.lexersr   pygments.utilr   __all__
__author____version__r   r;   ro   rC   SparseNodeVisitorrq   r   r   reSTr   r   r   r(   r'   <module>r     s          " " " " " " " " " " " " " "                              G G G G G G G G G G G G % % % % % %             + + + + + + + +             " " " " " "       ' ' ' ' ' ' ' ' ' ' ' '
M3
 			$ $ $ $ $ $ $ $   CA CA CAN`, `, `, `, `,1 `, `, `,F_ _ _ _ _| _ _ _D 4D C Cd C 0 0 0r(   