
    KiAf              	         S SK Jr  S SKrS SKJr  S SK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  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#J$r$  SSK%J&r&  SSK'J(r(J)r)   " S S5      r* " S S\*5      r+ " S S\*5      r, " S S\,5      r-\ " S S5      5       r. " S S\,5      r/ " S  S!\,5      r0 " S" S#\,5      r1 " S$ S%\*5      r2 " S& S'\*5      r3 " S( S)\*5      r4 " S* S+\*5      r5 " S, S-\*5      r6 " S. S/\*5      r7 " S0 S1\*5      r8 " S2 S3\,5      r9 " S4 S5\,5      r: " S6 S7\,5      r; " S8 S95      r< " S: S;\5      r=\>S<:X  Ga  S SK?r?S SKr\?R                  " S=S>9rA\AR                  S?S@SASB9  \AR                  SCSDSESFSSGSH9  \AR                  SISJSKSLSMSN9  \AR                  SOSPSQSSQSN9  \AR                  SRSSSTSFSUSV9  \AR                  SWSX\CSYSSZS[9  \AR                  S\S]S^SFS_SV9  \AR                  S`SaSbSFScSV9  \AR                  5       rES SdKFJr  \ER                  Se:X  a  \R                  R                  5       rJO*\K" \ER                  SfSg9 rL\LR                  5       rJSSS5        \=" \J\ER                  (       a  ShOSi\ER                  \ER                  \ER                  Sj9rQ\ER                  (       ag  S SKSrSS SKTrT\SR                  " 5       rV\" \V\ER                  \ER                  Sk9r\R                  \Q5        \TR                  " \VR                  5       5        g\" \ER                  \ER                  SlSm9r\R                  \Q5        gg! , (       d  f       N= f)n    )annotationsN)	dataclass)ClassVarIterableget_args)
MarkdownIt)Token)Table   )box)
loop_first)Stack)ConsoleConsoleOptionsJustifyMethodRenderResult)Renderables)JupyterMixin)Rule)Segment)Style
StyleStack)Syntax)TextTextTypec                  v    \ 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      O/var/www/html/dynamic-report/venv/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)       r)   c                    g)zXCalled when text is parsed.

Args:
    context (MarkdownContext): The markdown context.
Nr!   r,   r-   texts      r&   on_textMarkdownElement.on_text0   r0   r)   c                    g)z_Called when the parser leaves the element.

Args:
    context (MarkdownContext): [description]
Nr!   r+   s     r&   on_leaveMarkdownElement.on_leave7   r0   r)   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!   r,   r-   childs      r&   on_child_closeMarkdownElement.on_child_close>   s     r)   c                    g)Nr!   r!   r,   consoleoptionss      r&   __rich_console__ MarkdownElement.__rich_console__L   s     r)   r!   Nr$   Markdownr%   r	   returnr   r-   MarkdownContextrF   Noner-   rH   r3   r   rF   rI   r-   rH   r;   r   rF   boolr@   r   rA   r   rF   r   )__name__
__module____qualname____firstlineno__r   __annotations__classmethodr'   r.   r4   r7   r<   rB   __static_attributes__r!   r)   r&   r   r      sO    #Hn#
 
)7	r)   r   c                      \ rS rSrSrSrg)UnknownElementR   zAn unknown element.

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

r!   N)rN   rO   rP   rQ   __doc__rT   r!   r)   r&   rV   rV   R   s    r)   rV   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)TextElement[   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   r3   r+   s     r&   r.   TextElement.on_enter`   s$    ((9
(	r)   c                    U R                   R                  U[        U[        5      (       a  UR                  5        g S 5        g N)r3   append
isinstancestrcurrent_styler2   s      r&   r4   TextElement.on_textd   s.    		
48M8Mw44XSWXr)   c                $    UR                  5         g rg   )leave_styler+   s     r&   r7   TextElement.on_leaveg   s    r)   )rd   r3   NrG   rJ   )
rN   rO   rP   rQ   rX   rc   r.   r4   r7   rT   r!   r)   r&   rZ   rZ   [   s    3J)Yr)   rZ   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
)	Paragraphk   zA Paragraph.zmarkdown.paragraphr   ra   c                4    U " UR                   =(       d    SS9$ r^   r`   r"   s      r&   r'   Paragraph.createq   s    8++5v66r)   c                    Xl         g rg   r`   r,   ra   s     r&   __init__Paragraph.__init__u   s    r)   c              #  ^   #    U R                   U R                  l         U R                  v   g 7frg   )ra   r3   r?   s      r&   rB   Paragraph.__rich_console__x   s       !LL		iis   +-r`   N)r$   rE   r%   r	   rF   rq   ra   r   rF   rI   rM   )rN   rO   rP   rQ   rX   rc   rR   rS   r'   rw   rB   rT   r!   r)   r&   rq   rq   k   sD    %J7 7)7	r)   rq   c                  2    \ rS rSr% SrS\S'   SrS\S'   Srg	)
HeadingFormat   r_   r   ra    rj   rd   r!   N)rN   rO   rP   rQ   ra   rR   rd   rT   r!   r)   r&   r}   r}      s    #G]#E3Or)   r}   c                     ^  \ rS rSr% SrSSSSSSS.rS\S'   \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.centerr_   )h1h2h3h4h5h6z"ClassVar[dict[str, JustifyMethod]]LEVEL_ALIGNc                &    U " UR                   5      $ rg   )tagr"   s      r&   r'   Heading.create   s    599~r)   c                X    [        5       U l        UR                  U R                  5        g rg   )r   r3   rb   rc   r+   s     r&   r.   Heading.on_enter   s    F	DOO,r)   c                B   > Xl         SU 3U l        [        TU ]  5         g )N	markdown.)r   rc   superrw   )r,   r   	__class__s     r&   rw   Heading.__init__   s!    %cU+r)   c              #     #    U R                   R                  5       nU R                  R                  U R                  S5      nXCl        Uv   g 7f)Nr_   )r3   copyr   getr   ra   )r,   r@   rA   r3   heading_justifys        r&   rB   Heading.__rich_console__   s=      yy~~**..txx@&
s   AA)rc   r   r3   )r$   rE   r%   r	   rF   r   rG   )r   rj   rF   rI   rM   )rN   rO   rP   rQ   rX   r   rR   rS   r'   r.   rw   rB   rT   __classcell__r   s   @r&   r   r      si     7K3   -
)7	 r)   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   r3   )info	partition
code_theme)r#   r$   r%   	node_info
lexer_names        r&   r'   CodeBlock.create   s=    JJ$"	((-a0
:')<)<==r)   c                    Xl         X l        g rg   r   theme)r,   r   r   s      r&   rw   CodeBlock.__init__   s    $
r)   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)rj   r3   rstripr   r   r   )r,   r@   rA   codesyntaxs        r&   rB   CodeBlock.__rich_console__   s?      499~$$&//tQ
 s   A	Ar   N)r$   rE   r%   r	   rF   r   )r   rj   r   rj   rF   rI   rM   )rN   rO   rP   rQ   rX   rc   rS   r'   rw   rB   rT   r!   r)   r&   r   r      s>    0&J> >
)7	r)   r   c                  F    \ 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 rg   r   elementsr,   s    r&   rw   BlockQuote.__init__       %0]r)   c                :    U R                   R                  U5        gNFr   rh   r:   s      r&   r<   BlockQuote.on_child_close       U#r)   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rd   
u   ▌ )update	max_widthrender_linesr   rd   r   )	r,   r@   rA   render_optionslinesrd   r   r   lines	            r&   rB   BlockQuote.__rich_console__   s{      !g.?.?!.CD$$T]]N**$U

4=&%(DMOON s   A2B4B5Br   NrF   rI   rK   rM   )
rN   rO   rP   rQ   rX   rc   rw   r<   rB   rT   r!   r)   r&   r   r      s1    'J3)7	r)   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              #  \   #    UR                  SSS9n[        USS9v   [        5       v   g 7f)Nzmarkdown.hrr\   default-)rd   
characters)	get_styler   r   )r,   r@   rA   rd   s       r&   rB   HorizontalRule.__rich_console__   s0      !!-!@3//fs   *,r!   NrM   )rN   rO   rP   rQ   rX   r   rB   rT   r!   r)   r&   r   r      s'    /H)7	r)   r   c                  B    \ 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 rg   )headerbodyr   s    r&   rw   TableElement.__init__   s    15-1	r)   c                    [        U[        5      (       a  X l        g[        U[        5      (       a  X l        g[        S5      e)Nz Couldn't process markdown table.F)ri   TableHeaderElementr   TableBodyElementr   RuntimeErrorr:   s      r&   r<   TableElement.on_child_close   sB    e/00K
 	 /00I  ABBr)   c              #    #    [        [        R                  SSSSS9nU R                  bz  U R                  R                  bc  U R                  R                  R
                   H?  nUR                  R                  5       nUR                  S5        UR                  U5        MA     U R                  bQ  U R                  R                   H7  nUR
                   Vs/ s H  owR                  PM     nnUR                  " U6   M9     Uv   g s  snf 7f)NFzmarkdown.table.borderT)r   pad_edgerd   	show_edgecollapse_paddingzmarkdown.table.header)r
   r   SIMPLEr   rowcellscontentr   stylize
add_columnr   rowsadd_row)	r,   r@   rA   tablecolumnheadingr   elementrow_contents	            r&   rB   TableElement.__rich_console__   s      

)!
 ;;"t{{'B++//// ..--/ 78  ) 0
 99 yy~~>AiiHi7iH{+ &  Is   CDD.D)r   r   Nr   rK   rM   )	rN   rO   rP   rQ   rX   rw   r<   rB   rT   r!   r)   r&   r   r      s,    82)7	r)   r   c                  ,    \ 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 rg   r   r   s    r&   rw   TableHeaderElement.__init__  s	    +/r)   c                >    [        U[        5      (       d   eX l        gr   )ri   TableRowElementr   r:   s      r&   r<   !TableHeaderElement.on_child_close  s    %1111r)   r   Nr   rK   rN   rO   rP   rQ   rX   rw   r<   rT   r!   r)   r&   r   r     s    J0r)   r   c                  ,    \ 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 rg   r   r   s    r&   rw   TableBodyElement.__init__  s	    +-	r)   c                h    [        U[        5      (       d   eU R                  R                  U5        gr   )ri   r   r   rh   r:   s      r&   r<   TableBodyElement.on_child_close"  s*    %1111		r)   r  Nr   rK   r   r!   r)   r&   r   r     s    J.r)   r   c                  ,    \ 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 rg   r   r   s    r&   rw   TableRowElement.__init__+  s	    -/
r)   c                h    [        U[        5      (       d   eU R                  R                  U5        gr   )ri   TableDataElementr   rh   r:   s      r&   r<   TableRowElement.on_child_close.  s+    %!12222

% r)   r  Nr   rK   r   r!   r)   r&   r   r   (  s    D0r)   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
  i4  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$ )Nrd   r   ztext-align:rightrightztext-align:centerr   ztext-align:leftr_   r   r`   )rj   attrsr   r   r   )r#   r$   r%   rd   ra   s        r&   r'   TableDataElement.create8  sj    EKKOOG,-3 &G E)G%'GG(=11117##r)   c                .    [        SUS9U l        Xl        g )Nr   r`   )r   r   ra   rv   s     r&   rw   TableDataElement.__init__I  s    !"g6r)   c                    [        U[        5      (       a  [        U5      OUnUR                  UR                  5        U R
                  R                  U5        g rg   )ri   rj   r   r   rk   r   append_textr2   s      r&   r4   TableDataElement.on_textM  s=    'c22tDzW**+  &r)   )r   ra   NrD   r{   rJ   )
rN   rO   rP   rQ   rX   rS   r'   rw   r4   rT   r!   r)   r&   r
  r
  4  s%    % $ $ 'r)   r
  c                  V    \ 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)ListElementiS  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.createV  s'    5::s5;;??7A#>?@@r)   c                *    / U l         Xl        X l        g rg   )items	list_type
list_start)r,   r  r   s      r&   rw   ListElement.__init__Z  s    %'
"$r)   c                h    [        U[        5      (       d   eU R                  R                  U5        gr   )ri   ListItemr  rh   r:   s      r&   r<   ListElement.on_child_close_  s*    %****

% r)   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)r,   r@   rA   itemnumberlast_numberindexs          r&   rB   ListElement.__rich_console__d  s      >>//

--g??? # //1QtF 3tzz?2K(4--fnk    5	 @
s"   4B3B/A.B3%B1&
B31B3)r  r   r  N)r$   rE   r%   r	   rF   r  )r  rj   r   z
int | NonerF   rI   rK   rM   )rN   rO   rP   rQ   rX   rS   r'   rw   r<   rB   rT   r!   r)   r&   r  r  S  s@    A A%

)7	r)   r  c                  X    \ 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#  is  zAn item in a list.zmarkdown.itemc                "    [        5       U l        g rg   r   r   s    r&   rw   ListItem.__init__x  r   r)   c                :    U R                   R                  U5        gr   r   r:   s      r&   r<   ListItem.on_child_close{  r   r)   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)
N   r   r   zmarkdown.item.bulletr\   r   u    • z   r   )r   r   r   r   rd   r   r   r   )r,   r@   rA   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.numberr\   r   r   r   r   )r(  rj   r   r   r   r   rd   r   r   rjustr   )r,   r@   rA   r,  r-  number_widthr   r   number_styler   r   numeralr9  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   rK   rM   )
r@   r   rA   r   r,  r  r-  r  rF   r   )rN   rO   rP   rQ   rX   rc   rw   r<   r'  r*  rT   r!   r)   r&   r#  r#  s  sF     J3)7ADSV	r)   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   rj   )r#   r$   r%   urls       r&   r'   Link.create  s+    kkoofc*5==#c(++r)   c                0    [        U5      U l        X l        g rg   )r   r3   rE  )r,   r3   rE  s      r&   rw   Link.__init__  s    J		r)   )rE  r3   NrD   )r3   rj   rE  rj   )rN   rO   rP   rQ   rS   r'   rw   rT   r!   r)   r&   rC  rC    s    , ,r)   rC  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   )rj   r  r   
hyperlinksr"   s      r&   r'   ImageItem.create  s+     3u{{ub12H4G4GHHr)   c                H   > Xl         X l        S U l        [        TU ]  5         g rg   )destinationrO  linkr   rw   )r,   rR  rO  r   s      r&   rw   ImageItem.__init__  s     &$ $	r)   c                v   > UR                   R                  U l        [        SS9U l        [        TU ]  U5        g r^   )rk   rS  r   r3   r   r.   )r,   r-   r   s     r&   r.   ImageItem.on_enter  s/    ))..	(	!r)   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rS  /r   u   🌆 r   r   )end)
r   rS  rR  r3   r   striprsplitrO  r   assemble)r,   r@   rA   
link_styletitler3   s         r&   rB   ImageItem.__rich_console__  s      		 ET-=-= EF
		QT$"2"2"8"8"="D"DS!"LR"PQ??MM*%}}WeSb9
s   B8B:)rR  rO  rS  r3   rD   )rR  rj   rO  rL   rF   rI   rG   rM   )rN   rO   rP   rQ   rX   r   rS   r'   rw   r.   rB   rT   r   r   s   @r&   rL  rL    sK    -H
I 
I"
)7	 r)   rL  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)rH   i  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   )r@   rA   r   style_stackr   stack_syntaxr   )r,   r@   rA   rd   inline_code_lexerinline_code_themes         r&   rw   MarkdownContext.__init__  sE     '1%'8-2W
&*(!"&7QDL )r)   c                .    U R                   R                  $ )z>Current style which is the product of all styles on the stack.)rd  currentr   s    r&   rk   MarkdownContext.current_style  s     '''r)   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   )
rf  	highlightr   re  topr4   r   r^  rd  rk  )r,   r3   	node_typehighlight_texts       r&   r4   MarkdownContext.on_text  s|    00T\\5M!\\33D9N!!#JJNN""dmmN:J:J:R:RS JJNN""4.r)   c                    U R                   R                  USS9nU R                  R                  U5        U R                  $ )zEnter a style context.r\   r   )r@   r   rd  pushrk   )r,   rc   rd   s      r&   rb   MarkdownContext.enter_style  s;    &&z6&Be$!!!r)   c                :    U R                   R                  5       nU$ )zLeave a style context.)rd  pop)r,   rd   s     r&   rn   MarkdownContext.leave_style  s      $$&r)   )rf  r@   rA   re  rd  )Nmonokai)r@   r   rA   r   rd   r   rg  
str | Nonerh  rj   rF   rI   )rF   r   )r3   rj   rr  rj   rF   rI   )rc   str | StylerF   r   )rN   rO   rP   rQ   rX   rw   propertyrk   r4   rb   rn   rT   r!   r)   r&   rH   rH     sv    + )-!*RR  R 	R
 &R R 
R" ( (	/"r)   rH   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)rE   i   a  A Markdown renderable.

Args:
    markup (str): A string containing markdown.
    code_theme (str, optional): Pygments theme for code blocks. Defaults to "monokai". See https://pygments.org/styles/ for code themes.
    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_openrn  
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   ra   rd   rO  rg  rh  )	r,   r  r   ra   rd   rO  rg  rh  parsers	            r&   rw   Markdown.__init__$  s]     $$_5<<WEll6*$-4
$!2!2!@jr)   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.rn  imgN)r  r   children_flatten_tokens)r,   tokensr%   is_fenceis_images        r&   r  Markdown._flatten_tokens8  sY     EzzW,HyyE)H~~x8//???  @s   A!A5#A3$A5c              #  ~  #    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(       a5  U(       a
  U
S:w  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.r\   r   N)height)rg  rh  Fr   rZ  r   r3   	hardbreakr   	softbreakr   	link_openrE  r   zmarkdown.link_urlrX  
link_closezmarkdown.linkz ()rn  r  r   inline))r   rd   r   rH   rg  rh  r  inlinesr   r   r  r  r   nestingr4   r   rj   r  r   rO  r   rb   re  rv  rC  r'   rn   ry  ri   r3   plainrE  r   rV   r.   rq  r<   renderrA   r7   r   )r,   r@   rA   rd   r-   r  inline_style_tagsr   _new_line_segmentr%   rr  r   enteringexitingself_closingrE  r_  r   link_url_styleelement_classshould_renderr3   s                         r&   rB   Markdown.__rich_console__B  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 "
 %#	X(="33#*>>'7??#KKKll$$W-&//HG 2` L Ls+   R-V=/V80CV=?V; V=$V=;V=)r   rO  rg  rh  ra   r  r  rd   )r{  Nr\   TNN)r  rj   r   rj   ra   zJustifyMethod | Nonerd   r}  rO  rL   rg  r|  rh  r|  rF   rI   )r  Iterable[Token]rF   r  rM   )rN   rO   rP   rQ   rX   rq   r   r   r   r   r  r#  rL  r   r   r   r   r
  r   rR   r  rw   r  rB   rT   r!   r)   r&   rE   rE      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0r)   rE   __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   r{  zpygments code theme)r  r   r  z-iz--inline-code-lexerrg  z-yz--hyperlinksrO  zenable hyperlinks)r  r  r  z-wz--widthr   z*width of output (default will auto-detect))r  r  r   r  z-jz	--justifyra   zenable full text justifyz-pz--pagepagezuse pager to scroll output)r   r   zutf-8)encodingfullr_   )ra   r   rO  rg  )fileforce_terminalr   T)r  r   record)\
__future__r   sysdataclassesr   typingr   r   r   markdown_itr   markdown_it.tokenr	   
rich.tabler
   r   r   _loopr   _stackr   r@   r   r   r   r   
containersr   jupyterr   ruler   segmentr   rd   r   r   r   r   r3   r   r   r   rV   rZ   rq   r}   r   r   r   r   r   r   r   r   r
  r  r#  rC  rL  rH   rE   rN   argparseArgumentParserr  add_argumentr  
parse_argsargsrich.consoler  stdinreadmarkdown_bodyopenmarkdown_filera   r   rO  rg  r$   r  iopydocStringIOfileior  r   printpagergetvaluer!   r)   r&   <module>r     s   " 
 ! / / " #     I I # !   $   6 6r_ /   (   
k D 2 4
_ 
&? &R	 		 		o 	' '>/ @'{ 'T; % %P- -`w0| w0t z$$>F 4  
 ,   "            9   '   )   D$yyC		($))g.-)..0M / ,,F????00H yy(8(8


 	hFOO%& ++4::d
 	h L /.s    M
M)