
    Vi7f              	         S SK Jr  S SKrS SKJrJrJrJrJrJ	r	J
r
  S SKJr  S SKJr  \R                  S:  a  S SKJr  OS SKJr  S SKJr  S	S
KJr  S	SKJr  S	SKJr  S	SKJrJrJrJr  S	SKJ r   S	SK!J"r"  S	SK#J$r$  S	SK%J&r&  S	SK'J(r(  S	SK)J*r*J+r+  S	SK,J-r-  S	SK.J/r/J0r0   " S S5      r1 " S S\15      r2 " S S\15      r3 " S S\35      r4 " S S\35      r5 " S  S!\35      r6 " S" S#\35      r7 " S$ S%\15      r8 " S& S'\15      r9 " S( S)\15      r: " S* S+\15      r; " S, S-\15      r< " S. S/\15      r= " S0 S1\15      r> " S2 S3\35      r? " S4 S5\35      r@ " S6 S7\35      rA " S8 S95      rB " S: S;\"5      rC\DS<:X  Ga  S SKErES SKr\ER                  " S=S>9rG\GR                  S?S@SASB9  \GR                  SCSDSESFSSGSH9  \GR                  SISJSKSLSMSN9  \GR                  SOSPSQSSQSN9  \GR                  SRSSSTSFSUSV9  \GR                  SWSX\ISYSSZS[9  \GR                  S\S]S^SFS_SV9  \GR                  S`SaSbSFScSV9  \GR                  5       rKS SdKLJr  \KR                  Se:X  a  \R                  R                  5       rPO+\Q" \KR                  SfSgSh9 rR\RR                  5       rPSSS5        \C" \P\KR                  (       a  SiOSj\KR                  \KR                  \KR                  Sk9rW\KR                  (       ag  S SKYrYS SKZrZ\YR                  " 5       r\\" \\\KR                  \KR                  Sl9r\R                  \W5        \ZR                  " \\R                  5       5        g\" \KR                  \KR                  SmSn9r\R                  \W5        gg! , (       d  f       N= f)o    )annotationsN)ClassVarDictIterableListOptionalTypeUnion)
MarkdownIt)Token)      )get_args)Table   box)
loop_first)Stack)ConsoleConsoleOptionsJustifyMethodRenderResult)Renderables)JupyterMixin)Panel)Rule)Segment)Style
StyleStack)Syntax)TextTextTypec                      \ rS rSr% SrS\S'   \SS j5       rSS jrSS jr	SS jr
      SS	 jr      SS
 jrSrg)MarkdownElement   TzClassVar[bool]new_linec                    U " 5       $ )zFactory to create markdown element,

Args:
    markdown (Markdown): The parent Markdown object.
    token (Token): A node from markdown-it.

Returns:
    MarkdownElement: A new markdown element
 clsmarkdowntokens      `/home/james-whalen/.local/share/pipx/venvs/semgrep/lib/python3.13/site-packages/rich/markdown.pycreateMarkdownElement.create!   s     u    c                    g)z]Called when the node is entered.

Args:
    context (MarkdownContext): The markdown context.
Nr)   selfcontexts     r.   on_enterMarkdownElement.on_enter.       r1   c                    g)zXCalled when text is parsed.

Args:
    context (MarkdownContext): The markdown context.
Nr)   r4   r5   texts      r.   on_textMarkdownElement.on_text5   r8   r1   c                    g)z_Called when the parser leaves the element.

Args:
    context (MarkdownContext): [description]
Nr)   r3   s     r.   on_leaveMarkdownElement.on_leave<   r8   r1   c                    g)aD  Called when a child element is closed.

This method allows a parent element to take over rendering of its children.

Args:
    context (MarkdownContext): The markdown context.
    child (MarkdownElement): The child markdown element.

Returns:
    bool: Return True to render the element, or False to not render the element.
Tr)   r4   r5   childs      r.   on_child_closeMarkdownElement.on_child_closeC   s     r1   c                    g)Nr)   r)   r4   consoleoptionss      r.   __rich_console__ MarkdownElement.__rich_console__S   s     r1   r)   Nr,   
'Markdown'r-   r   return'MarkdownElement'r5   'MarkdownContext'rN   Noner5   rQ   r;   r#   rN   rR   r5   rQ   rC   rO   rN   bool)rH   z	'Console'rI   z'ConsoleOptions'rN   z'RenderResult')__name__
__module____qualname____firstlineno__r'   __annotations__classmethodr/   r6   r<   r?   rD   rJ   __static_attributes__r)   r1   r.   r%   r%      sg    #Hn#
 
(1B	  +;	r1   r%   c                      \ rS rSrSrSrg)UnknownElementY   zAn unknown element.

Hopefully there will be no unknown elements, and we will have a MarkdownElement for
everything in the document.

r)   N)rV   rW   rX   rY   __doc__r\   r)   r1   r.   r^   r^   Y   s    r1   r^   c                  :    \ rS rSrSrSrS	S jrS
S jrS	S jrSr	g)TextElementb   z)Base class for elements that render text.nonec                `    UR                  U R                  5      U l        [        SS9U l        g Nleftjustify)enter_style
style_namestyler"   r;   r3   s     r.   r6   TextElement.on_enterg   s$    ((9
(	r1   c                    U R                   R                  U[        U[        5      (       a  UR                  5        g S 5        g N)r;   append
isinstancestrcurrent_styler:   s      r.   r<   TextElement.on_textk   s.    		
48M8Mw44XSWXr1   c                $    UR                  5         g ro   )leave_styler3   s     r.   r?   TextElement.on_leaven   s    r1   )rl   r;   NrP   rS   )
rV   rW   rX   rY   r`   rk   r6   r<   r?   r\   r)   r1   r.   rb   rb   b   s    3J)Yr1   rb   c                  \    \ rS rSr% SrSrS\S'   \SS j5       rSS jr	      SS jr
S	rg
)	Paragraphr   zA Paragraph.zmarkdown.paragraphr   ri   c                4    U " UR                   =(       d    SS9$ rf   rh   r*   s      r.   r/   Paragraph.createx   s    8++5v66r1   c                    Xl         g ro   rh   r4   ri   s     r.   __init__Paragraph.__init__|   s    r1   c              #  ^   #    U R                   U R                  l         U R                  v   g 7fro   )ri   r;   rG   s      r.   rJ   Paragraph.__rich_console__   s       !LL		iis   +-rh   N)r,   rM   r-   r   rN   z'Paragraph'ri   r   rN   rR   rH   r   rI   r   rN   r   )rV   rW   rX   rY   r`   rk   rZ   r[   r/   r   rJ   r\   r)   r1   r.   ry   ry   r   sD    %J7 7)7	r1   ry   c                  d   ^  \ rS rSrSr\SS j5       rS	S jrS
U 4S jjr      SS jr	Sr
U =r$ )Heading   z
A heading.c                &    U " UR                   5      $ ro   )tagr*   s      r.   r/   Heading.create   s    599~r1   c                X    [        5       U l        UR                  U R                  5        g ro   )r"   r;   rj   rk   r3   s     r.   r6   Heading.on_enter   s    F	DOO,r1   c                B   > Xl         SU 3U l        [        TU ]  5         g )N	markdown.)r   rk   superr   )r4   r   	__class__s     r.   r   Heading.__init__   s!    %cU+r1   c              #     #    U R                   nSUl        U R                  S:X  a  [        U[        R
                  SS9v   g U R                  S:X  a  [        S5      v   Uv   g 7f)Ncenterh1zmarkdown.h1.border)r   rl   h2 )r;   ri   r   r   r   HEAVYr"   )r4   rH   rI   r;   s       r.   rJ   Heading.__rich_console__   sY      yy88tII*  xx42hJs   A"A$)rk   r   r;   )r,   rM   r-   r   rN   z	'Heading'rP   )r   rr   rN   rR   r   )rV   rW   rX   rY   r`   r[   r/   r6   r   rJ   r\   __classcell__r   s   @r.   r   r      sD     -
)7	 r1   r   c                  P    \ rS rSrSrSr\S	S j5       rS
S jr      SS jr	Sr
g)	CodeBlock   z&A code block with syntax highlighting.zmarkdown.code_blockc                    UR                   =(       d    SnUR                  S5      S   nU " U=(       d    SUR                  5      $ )Nr    r   r;   )info	partition
code_theme)r+   r,   r-   	node_info
lexer_names        r.   r/   CodeBlock.create   s=    JJ$"	((-a0
:')<)<==r1   c                    Xl         X l        g ro   r   theme)r4   r   r   s      r.   r   CodeBlock.__init__   s    $
r1   c              #     #    [        U R                  5      R                  5       n[        X0R                  U R
                  SSS9nUv   g 7f)NTr   )r   	word_wrappadding)rr   r;   rstripr!   r   r   )r4   rH   rI   codesyntaxs        r.   rJ   CodeBlock.__rich_console__   s?      499~$$&//tQ
 s   A	Ar   N)r,   rM   r-   r   rN   z'CodeBlock')r   rr   r   rr   rN   rR   r   )rV   rW   rX   rY   r`   rk   r[   r/   r   rJ   r\   r)   r1   r.   r   r      s>    0&J> >
)7	r1   r   c                  R    \ rS rSrSrSrS	S jr      S
S jr      SS jrSr	g)
BlockQuote   zA block quote.zmarkdown.block_quotec                "    [        5       U l        g ro   r   elementsr4   s    r.   r   BlockQuote.__init__       %0]r1   c                :    U R                   R                  U5        gNFr   rp   rB   s      r.   rD   BlockQuote.on_child_close        	U#r1   c              #    #    UR                  UR                  S-
  S9nUR                  U R                  X0R                  S9nU R                  n[        S5      n[        SU5      nU H  nUv   U S h  vN   Uv   M     g  N7f)N   widthrl   
u   ▌ )update	max_widthrender_linesr   rl   r   )	r4   rH   rI   render_optionslinesrl   r'   r   lines	            r.   rJ   BlockQuote.__rich_console__   s{      !g.?.?!.CD$$T]]N**$U

4=&%(DMOON s   A2B4B5Br   NrN   rR   rT   r   )
rV   rW   rX   rY   r`   rk   r   rD   rJ   r\   r)   r1   r.   r   r      sI    'J3(1B	)7	r1   r   c                  2    \ rS rSrSrSr      SS jrSrg)HorizontalRule   z%A horizontal rule to divide sections.Fc              #  B   #    UR                  SSS9n[        US9v   g 7f)Nzmarkdown.hrrd   defaultr   )	get_styler   )r4   rH   rI   rl   s       r.   rJ   HorizontalRule.__rich_console__   s'      !!-!@s   r)   Nr   )rV   rW   rX   rY   r`   r'   rJ   r\   r)   r1   r.   r   r      s'    /H  )7 	 r1   r   c                  N    \ rS rSrSrSS jr      S	S jr      S
S jrSrg)TableElement   z.MarkdownElement corresponding to `table_open`.c                     S U l         S U l        g ro   )headerbodyr   s    r.   r   TableElement.__init__   s    15-1	r1   c                    [        U[        5      (       a  X l        g[        U[        5      (       a  X l        g[        S5      e)Nz Couldn't process markdown table.F)rq   TableHeaderElementr   TableBodyElementr   RuntimeErrorrB   s      r.   rD   TableElement.on_child_close   sD     e/00K
 	 /00I  ABBr1   c              #    #    [        [        R                  S9nU R                  bY  U R                  R                  bB  U R                  R                  R
                   H  nUR                  UR                  5        M      U R                  bQ  U R                  R                   H7  nUR
                   Vs/ s H  ofR                  PM     nnUR                  " U6   M9     Uv   g s  snf 7f)Nr   )r   r   SIMPLE_HEAVYr   rowcells
add_columncontentr   rowsadd_row)r4   rH   rI   tablecolumnr   elementrow_contents           r.   rJ   TableElement.__rich_console__   s      #**+;;"t{{'B++////  0 0 99 yy~~>AiiHi7iH{+ &  Is   B2C(4C#	C()r   r   Nr   rT   r   )	rV   rW   rX   rY   r`   r   rD   rJ   r\   r)   r1   r.   r   r      sD    82	(	1B			)7	r1   r   c                  8    \ rS rSrSrSS jr      SS jrSrg)	r   i  z@MarkdownElement corresponding to `thead_open` and `thead_close`.c                    S U l         g ro   r   r   s    r.   r   TableHeaderElement.__init__  s	    +/r1   c                >    [        U[        5      (       d   eX l        gr   )rq   TableRowElementr   rB   s      r.   rD   !TableHeaderElement.on_child_close  s     %1111r1   r   Nr   rT   rV   rW   rX   rY   r`   r   rD   r\   r)   r1   r.   r   r     s'    J0(1B	r1   r   c                  8    \ rS rSrSrSS jr      SS jrSrg)	r   i  z@MarkdownElement corresponding to `tbody_open` and `tbody_close`.c                    / U l         g ro   r   r   s    r.   r   TableBodyElement.__init__  s	    +-	r1   c                h    [        U[        5      (       d   eU R                  R                  U5        gr   )rq   r   r   rp   rB   s      r.   rD   TableBodyElement.on_child_close!  s,     %1111		r1   r   Nr   rT   r   r)   r1   r.   r   r     s'    J.(1B	r1   r   c                  8    \ rS rSrSrSS jr      SS jrSrg)	r   i)  z:MarkdownElement corresponding to `tr_open` and `tr_close`.c                    / U l         g ro   r   r   s    r.   r   TableRowElement.__init__,  s	    -/
r1   c                h    [        U[        5      (       d   eU R                  R                  U5        gr   )rq   TableDataElementr   rp   rB   s      r.   rD   TableRowElement.on_child_close/  s-     %!12222

% r1   r   Nr   rT   r   r)   r1   r.   r   r   )  s'    D0(1B	r1   r   c                  @    \ rS rSrSr\SS j5       rS	S jrS
S jrSr	g)r  i7  zWMarkdownElement corresponding to `td_open` and `td_close`
and `th_open` and `th_close`.c                    [        UR                  R                  S5      5      =(       d    SnSU;   a  SnOSU;   a  SnOSU;   a  SnOS	nU[        [        5      ;   d   eU " US
9$ )Nrl   r   ztext-align:rightrightztext-align:centerr   ztext-align:leftrg   r   rh   )rr   attrsgetr   r   )r+   r,   r-   rl   ri   s        r.   r/   TableDataElement.create;  sj    EKKOOG,-3 &G E)G%'GG(=11117##r1   c                .    [        SUS9U l        Xl        g )Nr   rh   )r"   r   ri   r~   s     r.   r   TableDataElement.__init__L  s    !"g6r1   c                    [        U[        5      (       a  [        U5      OUnUR                  UR                  5        U R
                  R                  U5        g ro   )rq   rr   r"   stylizers   r   append_textr:   s      r.   r<   TableDataElement.on_textP  s=    'c22tDzW**+  &r1   )r   ri   NrL   r   rS   )
rV   rW   rX   rY   r`   r[   r/   r   r<   r\   r)   r1   r.   r  r  7  s%    % $ $ 'r1   r  c                  b    \ rS rSrSr\S	S j5       rS
S jr      SS jr      SS jr	Sr
g)ListElementiV  zA list element.c           	     n    U " UR                   [        UR                  R                  SS5      5      5      $ )Nstartr   )typeintr  r  r*   s      r.   r/   ListElement.createY  s'    5::s5;;??7A#>?@@r1   c                *    / U l         Xl        X l        g ro   )items	list_type
list_start)r4   r  r  s      r.   r   ListElement.__init__]  s    %'
"$r1   c                h    [        U[        5      (       d   eU R                  R                  U5        gr   )rq   ListItemr  rp   rB   s      r.   rD   ListElement.on_child_closeb  s,     %****

% r1   c              #  j  #    U R                   S:X  a-  U R                   H  nUR                  X5       S h  vN   M     g U R                  c  SOU R                  nU[	        U R                  5      -   n[        U R                  5       H"  u  pcUR                  XXF-   U5       S h  vN   M$     g  Nx N7f)Nbullet_list_openr   )r  r  render_bulletr  len	enumeraterender_number)r4   rH   rI   itemnumberlast_numberindexs          r.   rJ   ListElement.__rich_console__i  s      >>//

--g??? # //1QtF 3tzz?2K(4--fnk    5	 @
s"   4B3B/A.B3%B1&
B31B3)r  r  r  N)r,   rM   r-   r   rN   z'ListElement')r  rr   r  z
int | NonerN   rR   rT   r   )rV   rW   rX   rY   r`   r[   r/   r   rD   rJ   r\   r)   r1   r.   r  r  V  sX    A A%
(1B	)7	r1   r  c                  d    \ rS rSrSrSrS
S jr      SS jrSS jr          SS jr	Sr
g	)r  ix  zAn item in a list.zmarkdown.itemc                "    [        5       U l        g ro   r   r   s    r.   r   ListItem.__init__}  r   r1   c                :    U R                   R                  U5        gr   r   rB   s      r.   rD   ListItem.on_child_close  r   r1   c              #  T  #    UR                  UR                  S-
  S9nUR                  U R                  X0R                  S9nUR                  SSS9n[        SU5      n[        SU5      n[        S	5      n[        U5       H   u  pU	(       a  UOUv   U
 S h  vN   Uv   M"     g  N7f)
Nr   r   r   zmarkdown.item.bulletrd   r   u    • z   r   )r   r   r   r   rl   r   r   r   )r4   rH   rI   r   r   bullet_stylebulletr   r'   firstr   s              r.   r!  ListItem.render_bullet  s      g.?.?!.CD$$T]]N**$U(()?(P,/'<04=%e,KE!&w.OON -s   BB(B&B(c              #    #    [        [        U5      5      S-   nUR                  UR                  U-
  S9nUR	                  U R
                  X`R                  S9nUR                  SSS9n[        S5      n	[        SU-  U5      n
[        U R                  US	-
  5      S-   U5      n[        U5       H   u  pU(       a  UOU
v   U S h  vN   U	v   M"     g  N7f)
N   r   r   zmarkdown.item.numberrd   r   r   r   r   )r"  rr   r   r   r   r   rl   r   r   rjustr   )r4   rH   rI   r&  r'  number_widthr   r   number_styler'   r   numeralr2  r   s                 r.   r$  ListItem.render_number  s      3{+,q0 g.?.?,.NO$$T]]N**$U(()?(P4=#,l;VH++L1,<=C\R%e,KE"'/OON -s   CCC	Cr   Nr   rT   r   )
rH   r   rI   r   r&  r  r'  r  rN   r   )rV   rW   rX   rY   r`   rk   r   rD   r!  r$  r\   r)   r1   r.   r  r  x  s^     J3(1B	)7ADSV	r1   r  c                  2    \ rS rSr\SS j5       rSS jrSrg)Linki  c                r    UR                   R                  SS5      nU " UR                  [        U5      5      $ )Nhref#)r  r  r   rr   )r+   r,   r-   urls       r.   r/   Link.create  s+    kkoofc*5==#c(++r1   c                0    [        U5      U l        X l        g ro   )r"   r;   r>  )r4   r;   r>  s      r.   r   Link.__init__  s    J		r1   )r>  r;   NrL   )r;   rr   r>  rr   )rV   rW   rX   rY   r[   r/   r   r\   r)   r1   r.   r<  r<    s    , ,r1   r<  c                  n   ^  \ rS rSrSrSr\S	S j5       rS
U 4S jjrSU 4S jjr	      SS jr
SrU =r$ )	ImageItemi  z#Renders a placeholder for an image.Fc                n    U " [        UR                  R                  SS5      5      UR                  5      $ )zFactory to create markdown element,

Args:
    markdown (Markdown): The parent Markdown object.
    token (Any): A token from markdown-it.

Returns:
    MarkdownElement: A new markdown element
srcr   )rr   r  r  
hyperlinksr*   s      r.   r/   ImageItem.create  s+     3u{{ub12H4G4GHHr1   c                H   > Xl         X l        S U l        [        TU ]  5         g ro   )destinationrH  linkr   r   )r4   rK  rH  r   s      r.   r   ImageItem.__init__  s     &$#'	r1   c                v   > UR                   R                  U l        [        SS9U l        [        TU ]  U5        g rf   )rs   rL  r"   r;   r   r6   )r4   r5   r   s     r.   r6   ImageItem.on_enter  s/    ))..	(	!r1   c              #  x  #    [        U R                  =(       d    U R                  =(       d    S S9nU R                  =(       d7    [	        U R                  R                  S5      R                  SS5      S   5      nU R                  (       a  UR                  U5        [        R                  " SUSSS9nUv   g 7f)	NrL  /r   u   🌆 r   r   )end)
r   rL  rK  r;   r"   striprsplitrH  r  assemble)r4   rH   rI   
link_styletitler;   s         r.   rJ   ImageItem.__rich_console__  s      		 ET-=-= EF
		QT$"2"2"8"8"="D"DS!"LR"PQ??MM*%}}WeSb9
s   B8B:)rK  rH  rL  r;   rL   )rK  rr   rH  rU   rN   rR   rP   r   )rV   rW   rX   rY   r`   r'   r[   r/   r   r6   rJ   r\   r   r   s   @r.   rE  rE    sK    -H
I 
I"
)7	 r1   rE  c                  r    \ rS rSrSr  S
           SS jjr\SS j5       rSS jrSS jr	SS jr
S	rg)MarkdownContexti  z!Manages the console render state.Nc                    Xl         X l        [        U5      U l        [	        5       U l        S U l        Ub  [        SXES9U l        g g )Nr   )r   )rH   rI   r    style_stackr   stack_syntaxr!   )r4   rH   rI   rl   inline_code_lexerinline_code_themes         r.   r   MarkdownContext.__init__  sE     '1%'8-2W
)-(!"&7QDL )r1   c                .    U R                   R                  $ )z>Current style which is the product of all styles on the stack.)r^  currentr   s    r.   rs   MarkdownContext.current_style  s     '''r1   c                d   US;   a  U R                   bx  U R                   R                  U5      nUR                  5         U R                  R                  R                  U [        R                  " X0R                  R                  S95        gU R                  R                  R                  X5        g)z#Called when the parser visits text.>   fencecode_inlineNr   )
r`  	highlightr   r_  topr<   r"   rW  r^  re  )r4   r;   	node_typehighlight_texts       r.   r<   MarkdownContext.on_text  s|    00T\\5M!\\33D9N!!#JJNN""dmmN:J:J:R:RS JJNN""4.r1   c                    U R                   R                  USS9nU R                  R                  U5        U R                  $ )zEnter a style context.rd   r   )rH   r   r^  pushrs   )r4   rk   rl   s      r.   rj   MarkdownContext.enter_style  s;    &&z6&Be$!!!r1   c                :    U R                   R                  5       nU$ )zLeave a style context.)r^  pop)r4   rl   s     r.   rv   MarkdownContext.leave_style  s      $$&r1   )r`  rH   rI   r_  r^  )Nmonokai)rH   r   rI   r   rl   r   ra  Optional[str]rb  rr   rN   rR   )rN   r   )r;   rr   rl  rr   rN   rR   )rk   Union[str, Style]rN   r   )rV   rW   rX   rY   r`   r   propertyrs   r<   rj   rv   r\   r)   r1   r.   r\  r\    sv    + ,0!*RR  R 	R
 )R R 
R" ( (	/"r1   r\  c                      \ rS rSr% Sr0 S\_S\_S\_S\_S\_S\	_S	\
_S
\
_S\_S\_S\_S\_S\_S\_S\_S\_rS\S'   1 Skr      S               SS jjrSS jr      SS jrSrg)Markdowni  a  A Markdown renderable.

Args:
    markup (str): A string containing markdown.
    code_theme (str, optional): Pygments theme for code blocks. Defaults to "monokai".
    justify (JustifyMethod, optional): Justify value for paragraphs. Defaults to None.
    style (Union[str, Style], optional): Optional style to apply to markdown.
    hyperlinks (bool, optional): Enable hyperlinks. Defaults to ``True``.
    inline_code_lexer: (str, optional): Lexer to use if inline code highlighting is
        enabled. Defaults to None.
    inline_code_theme: (Optional[str], optional): Pygments theme for inline code
        highlighting, or None for no highlighting. Defaults to None.
paragraph_openheading_openrh  
code_blockblockquote_openhrr   ordered_list_openlist_item_openimage
table_open
tbody_open
thead_opentr_opentd_openth_openz*ClassVar[Dict[str, Type[MarkdownElement]]]r   >   semr   strongNc                    [        5       R                  S5      R                  S5      nXl        UR                  U5      U l        X l        X0l        X@l        XPl        X`l	        U=(       d    UU l
        g )Nstrikethroughr   )r   enablemarkupparseparsedr   ri   rl   rH  ra  rb  )	r4   r  r   ri   rl   rH  ra  rb  parsers	            r.   r   Markdown.__init__+  s]     $$_5<<WEll6*$07
$!2!2!@jr1   c              #     #    U Hi  nUR                   S:H  nUR                  S:H  nUR                  (       a3  U(       d,  U(       d%  U R                  UR                  5       Sh  vN   Me  Uv   Mk     g N7f)zFlattens the token stream.rh  imgN)r  r   children_flatten_tokens)r4   tokensr-   is_fenceis_images        r.   r  Markdown._flatten_tokens?  sY     EzzW,HyyE)H~~x8//???  @s   A!A5#A3$A5c              #  r  #    UR                  U R                  SS9nUR                  SS9n[        UUUU R                  U R
                  S9nU R                  nU R                  nSn[        R                  " 5       nU R                  U5       GH  n	U	R                  n
U	R                  nU	R                  S:H  nU	R                  S:H  nU	R                  S	:H  nU
S
:X  a  UR                  U	R                  U
5        Mm  U
S:X  a  UR                  SU
5        M  U
S:X  a  UR                  SU
5        M  U
S:X  a  [!        U	R"                  R%                  SS5      5      nU R&                  (       a0  UR                  SSS9nU[)        US9-  nUR+                  U5        GM  UR,                  R/                  [0        R3                  X	5      5        GM>  U
S:X  Ga   U R&                  (       a  UR5                  5         GMi  UR,                  R7                  5       n[9        U[0        5      (       d   eUR                  SSS9nUR+                  U5        UR                  UR:                  R<                  U
5        UR5                  5         UR                  SU
5        UR                  SSS9nUR+                  U5        UR                  UR>                  U
5        UR5                  5         UR                  SU
5        GMe  X;   a  U
S:w  a  U
S:w  a  U(       a  UR+                  SU 35        GM  U(       a  UR5                  5         GM  UR+                  SU 35        U	R                  (       a  UR                  U	R                  U
5        UR5                  5         GM  U R@                  R%                  U	R                  5      =(       d    [B        nUR3                  X	5      nU(       d  U(       a,  UR,                  R/                  U5        URE                  U5        U(       a  UR,                  R7                  5       nUR,                  (       + =(       d9    UR,                  =(       a&    UR,                  RF                  RI                  UU5      nU(       a/  U(       a  Uv   URK                  UURL                  5       Sh  vN   OU(       a  UR,                  R7                  5         U	R                  nUb  UR                  UU5        UR,                  (       + =(       d9    UR,                  =(       a&    UR,                  RF                  RI                  UU5      nU(       a/  U(       a  Uv   URK                  UURL                  5       Sh  vN   U(       d
  U(       d  GM  URO                  U5        URP                  nGM"     g GN N;7f)zRender markdown to the console.rd   r   N)height)ra  rb  Fr   rS  r   r;   	hardbreakr   	softbreakr   	link_openr>  r   zmarkdown.link_urlrQ  
link_closezmarkdown.linkz ()rh  r}  r   ))r   rl   r   r\  ra  rb  r  inlinesr   r   r  r  r   nestingr<   r   rr   r  r  rH  r   rj   r_  rp  r<  r/   rv   rs  rq   r;   plainr>  r   r^   r6   rk  rD   renderrI   r?   r'   )r4   rH   rI   rl   r5   r  inline_style_tagsr'   _new_line_segmentr-   rl  r   enteringexitingself_closingr>  rX  r   link_url_styleelement_classshould_renderr;   s                         r.   rJ   Markdown.__rich_console__I  s~     !!$**f!=...-!"44"44
  LL#LLN))&1E

I))C}})Hmmr)G ==A-LF"y9k)i0k)Y/k)5;;??6267??!(!2!23FPV!2!WJ%T"22J''
3MM&&t{{4'?@l*??'')%mm//1G%gt4444!(!2!2?F!2!SJ''
3OOGLL$6$6	B'')OOD)4%,%6%6+V &7 &N ''7OOGLL)<'')OOC3((- '')C5(9: '') '')C5(9:}}yA'') !% 1 1%** = O'..t;|MM&&w/$$W-%mm//1G(/$5 % O#MM--<<WgN "
 %#"33#*>>'7??#KKK!MM%%' ==D'6 $MM) O"== O#MM--<<WgN "
 %#"33#*>>'7??#KKKll$$W-&//HG 2` L Ls+   R-V7/V20C	V79V5:V7$V75V7)r   rH  ra  rb  ri   r  r  rl   )ru  Nrd   TNN)r  rr   r   rr   ri   zOptional[JustifyMethod]rl   rw  rH  rU   ra  rv  rb  rv  rN   rR   )r  Iterable[Token]rN   r  r   )rV   rW   rX   rY   r`   ry   r   r   r   r   r  r  rE  r   r   r   r   r  r   rZ   r  r   r  rJ   r\   r)   r1   r.   rz  rz    ss   <)<< 	< 	i	<
 	:< 	n< 	K< 	[< 	(< 	< 	l< 	&< 	(< 	?< 	#<  	#!<H8 & ,G
 $+/#)+/+/AA A )	A
 !A A )A )A 
A(u0u0)7u0	u0r1   rz  __main__z(Render Markdown to the console with Rich)descriptionpathPATHz%path to markdown file, or - for stdin)metavarhelpz-cz--force-colorforce_color
store_truezforce color for non-terminals)destactionr   r  z-tz--code-themer   ru  zpygments code theme)r  r   r  z-iz--inline-code-lexerra  z-yz--hyperlinksrH  zenable hyperlinks)r  r  r  z-wz--widthr   z*width of output (default will auto-detect))r  r  r   r  z-jz	--justifyri   zenable full text justifyz-pz--pagepagezuse pager to scroll output)r   -rtzutf-8)encodingfullrg   )ri   r   rH  ra  )fileforce_terminalr   T)r  r   record)b
__future__r   systypingr   r   r   r   r   r	   r
   markdown_itr   markdown_it.tokenr   version_infor   typing_extensions
rich.tabler   r   r   _loopr   _stackr   rH   r   r   r   r   
containersr   jupyterr   panelr   ruler   segmentr   rl   r   r    r   r!   r;   r"   r#   r%   r^   rb   ry   r   r   r   r   r   r   r   r   r  r  r  r<  rE  r\  rz  rV   argparseArgumentParserr  add_argumentr  
parse_argsargsrich.consoler  stdinreadmarkdown_bodyopenmarkdown_fileri   r   rH  ra  r,   r  iopydocStringIOfileior  r   printpagergetvaluer)   r1   r.   <module>r     s   " 
 H H H " #v*     I I # !    $   8 8v_ /   ( k  F 2 8	 _ 	  ?  F  o ' '>/ D){ )X; % %P- -`w0| w0t z$$>F 4  
 ,   "            9   '   )   D$yyC		($))TG4)..0M 5 ,,F????00H yy(8(8


 	hFOO%& ++4::d
 	h L 54s   7M22
N 