+
    niqe              	      d   ^ RI Ht ^ RIt^ RIHtHt ^ RIHt ^ RIH	t	 ]P                  Rl8  d   ^ RIHt M^ RIHt ^ RIHt ^RIHt ^R	IHt ^R
IHt ^RIHtHtHtHt ^RIHt ^RIHt ^RIHt ^RI H!t! ^RI"H#t# ^RI$H%t%H&t& ^RI'H(t( ^RI)H*t*H+t+  ! R R4      t, ! R R],4      t- ! R R],4      t. ! R R].4      t/ ! R R].4      t0 ! R R].4      t1 ! R  R!].4      t2 ! R" R#],4      t3 ! R$ R%],4      t4 ! R& R'],4      t5 ! R( R)],4      t6 ! R* R+],4      t7 ! R, R-],4      t8 ! R. R/],4      t9 ! R0 R1].4      t: ! R2 R3].4      t; ! R4 R5].4      t< ! R6 R74      t= ! R8 R9]4      t>]?R:8X  Ed1   ^ RI@t@^ RIt]@P                  ! R;R<7      tB]BP                  R=R>R?R@7       ]BP                  RARBRCRDRRERF7       ]BP                  RGRHRIRJRKRL7       ]BP                  RMRNRORRORL7       ]BP                  RPRQRRRDRSRT7       ]BP                  RURV]DRWRRXRY7       ]BP                  RZR[R\RDR]RT7       ]BP                  R^R_R`RDRaRT7       ]BP                  4       tF^ RbIGHt ]FP                  Rc8X  d   ]P                  P                  4       tKM5]L! ]FP                  RdRe7      ;_uu_ 4       tM]MP                  4       tKRRR4       ]>! ]K]FP                  '       d   RfMRg]FP                  ]FP                  ]FP                  Rh7      tR]FP                  '       dl   ^ RITtT^ RIUtU]TP                  ! 4       tW]! ]W]FP                  ]FP                  Ri7      t]P                  ]R4       ]UP                  ! ]WP                  4       4       R# ]! ]FP                  ]FP                  RjRk7      t]P                  ]R4       R# R#   + '       g   i     EL; i)m    )annotationsN)ClassVarIterable)
MarkdownIt)Token)get_args)Tablebox)
loop_first)Stack)ConsoleConsoleOptionsJustifyMethodRenderResult)Renderables)JupyterMixin)Panel)Rule)Segment)Style
StyleStack)Syntax)TextTextTypec                  x    ] tR t^t$ RtR]R&   ]R R l4       tR R ltR R	 lt	R
 R lt
R R ltR R ltRtR# )MarkdownElementTzClassVar[bool]new_linec               $    V ^8  d   QhRRRRRR/#    markdownMarkdowntokenr   returnr    )formats   "//usr/lib/python3/dist-packages/rich/markdown.py__annotate__MarkdownElement.__annotate__"   s!     
 
h 
u 
 
    c                    V ! 4       # )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
r&   clsr"   r$   s   &&&r(   createMarkdownElement.create!   s     ur+   c                    V ^8  d   QhRRRR/# r!   contextMarkdownContextr%   Noner&   )r'   s   "r(   r)   r*   .          D r+   c                    R# )z]Called when the node is entered.

Args:
    context (MarkdownContext): The markdown context.
Nr&   selfr3   s   &&r(   on_enterMarkdownElement.on_enter.       r+   c               $    V ^8  d   QhRRRRRR/# r!   r3   r4   textr   r%   r5   r&   )r'   s   "r(   r)   r*   5   s!       h 4 r+   c                    R# )zXCalled when text is parsed.

Args:
    context (MarkdownContext): The markdown context.
Nr&   r9   r3   r?   s   &&&r(   on_textMarkdownElement.on_text5   r<   r+   c                    V ^8  d   QhRRRR/# r2   r&   )r'   s   "r(   r)   r*   <   r6   r+   c                    R# )z_Called when the parser leaves the element.

Args:
    context (MarkdownContext): [description]
Nr&   r8   s   &&r(   on_leaveMarkdownElement.on_leave<   r<   r+   c               $    V ^8  d   QhRRRRRR/# r!   r3   r4   childr   r%   boolr&   )r'   s   "r(   r)   r*   C   s"      o o RV r+   c                    R# )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&   r9   r3   rJ   s   &&&r(   on_child_closeMarkdownElement.on_child_closeC   s     r+   c               $    V ^8  d   QhRRRRRR/# r!   consoler   optionsr   r%   r   r&   )r'   s   "r(   r)   r*   Q   s$      )7	r+   c                	    R# )Nr&   r&   r9   rR   rS   s   &&&r(   __rich_console__ MarkdownElement.__rich_console__Q   s	     	r+   r&   N)__name__
__module____qualname____firstlineno__r   __annotations__classmethodr/   r:   rB   rF   rN   rV   __static_attributes__r&   r+   r(   r   r      s<    #Hn#
 
 r+   r   c                      ] tR t^WtRtRtR# )UnknownElementzAn unknown element.

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

r&   N)rX   rY   rZ   r[   __doc__r^   r&   r+   r(   r`   r`   W   s    r+   r`   c                  B    ] tR t^`tRtRtR R ltR R ltR R ltR	t	R
# )TextElementz)Base class for elements that render text.nonec                    V ^8  d   QhRRRR/# r2   r&   )r'   s   "r(   r)   TextElement.__annotate__e   s     ) ) )D )r+   c                	h    VP                  V P                  4      V n        \        R R7      V n        R# leftjustifyN)enter_style
style_namestyler   r?   r8   s   &&r(   r:   TextElement.on_entere   s$    ((9
(	r+   c               $    V ^8  d   QhRRRRRR/# r>   r&   )r'   s   "r(   r)   rf   i   s&     Y Y Yh Y4 Yr+   c                	    V P                   P                  T\        V\        4      '       d   VP                  4       R # R 4       R # N)r?   append
isinstancestrcurrent_stylerA   s   &&&r(   rB   TextElement.on_texti   s.    		
48M8Mw44XSWXr+   c                    V ^8  d   QhRRRR/# r2   r&   )r'   s   "r(   r)   rf   l   s       D r+   c                	&    VP                  4        R # rr   )leave_styler8   s   &&r(   rF   TextElement.on_leavel   s    r+   )rn   r?   N)
rX   rY   rZ   r[   ra   rm   r:   rB   rF   r^   r&   r+   r(   rc   rc   `   s    3J)Y r+   rc   c                  X    ] tR t^pt$ RtRtR]R&   ]R R l4       tR R lt	R	 R
 lt
RtR# )	ParagraphzA Paragraph.zmarkdown.paragraphr   rk   c               $    V ^8  d   QhRRRRRR/# )r!   r"   r#   r$   r   r%   r}   r&   )r'   s   "r(   r)   Paragraph.__annotate__w   s!     7 7h 7u 7 7r+   c                	<    T ! VP                   ;'       g    R R7      # )ri   rj   rj   r-   s   &&&r(   r/   Paragraph.createv   s    8++55v66r+   c                    V ^8  d   QhRRRR/# r!   rk   r   r%   r5   r&   )r'   s   "r(   r)   r   z   s       $ r+   c                	    Wn         R # rr   rj   r9   rk   s   &&r(   __init__Paragraph.__init__z   s    r+   c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   r   }   s$      )7	r+   c              #  	`   "   V P                   V P                  n         V P                  x  R # 5irr   )rk   r?   rU   s   &&&r(   rV   Paragraph.__rich_console__}   s       !LL		iis   ,.rj   N)rX   rY   rZ   r[   ra   rm   r\   r]   r/   r   rV   r^   r&   r+   r(   r}   r}   p   s1    %J7 7 r+   r}   c                  `   a  ] tR t^tRt]R R l4       tR R ltR V 3R lltR R	 lt	R
t
V ;t# )Headingz
A heading.c               $    V ^8  d   QhRRRRRR/# )r!   r"   r#   r$   r   r%   r   r&   )r'   s   "r(   r)   Heading.__annotate__   s!      h u  r+   c                	&    V ! VP                   4      # rr   )tagr-   s   &&&r(   r/   Heading.create   s    599~r+   c                    V ^8  d   QhRRRR/# r2   r&   )r'   s   "r(   r)   r      s     - - -D -r+   c                	Z    \        4       V n        VP                  V P                  4       R # rr   )r   r?   rl   rm   r8   s   &&r(   r:   Heading.on_enter   s    F	DOO,r+   c                    V ^8  d   QhRRRR/# )r!   r   ru   r%   r5   r&   )r'   s   "r(   r)   r      s      C D r+   c                	D   < Wn         R V 2V n        \        SV `  4        R# )	markdown.N)r   rm   superr   )r9   r   	__class__s   &&r(   r   Heading.__init__   s!    %cU+r+   c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   r      s$      )7	r+   c              #  	   "   V P                   pR Vn        V P                  R8X  d!   \        V\        P
                  RR7      x  R# V P                  R8X  d   \        R4      x  Vx  R# 5i)centerh1zmarkdown.h1.border)r   rn   h2 N)r?   rk   r   r   r   HEAVYr   )r9   rR   rS   r?   s   &&& r(   rV   Heading.__rich_console__   sY      yy88tII*  xx42hJs   A)A+)rm   r   r?   )rX   rY   rZ   r[   ra   r]   r/   r:   r   rV   r^   __classcell__r   s   @r(   r   r      s1     - 
 r+   r   c                  L    ] tR t^tRtRt]R R l4       tR R ltR R lt	R	t
R
# )	CodeBlockz&A code block with syntax highlighting.zmarkdown.code_blockc               $    V ^8  d   QhRRRRRR/# )r!   r"   r#   r$   r   r%   r   r&   )r'   s   "r(   r)   CodeBlock.__annotate__   s!     > >h >u > >r+   c                	    VP                   ;'       g    R pVP                  R4      ^ ,          pT ! T;'       g    RVP                  4      # )r    r?   )info	partition
code_theme)r.   r"   r$   	node_info
lexer_names   &&&  r(   r/   CodeBlock.create   sC    JJ$$"	((-a0
:'')<)<==r+   c               $    V ^8  d   QhRRRRRR/# )r!   r   ru   themer%   r5   r&   )r'   s   "r(   r)   r      s!      3 s t r+   c                	    Wn         W n        R # rr   r   r   )r9   r   r   s   &&&r(   r   CodeBlock.__init__   s    $
r+   c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   r      s$      )7	r+   c              #  	   "   \        V P                  4      P                  4       p\        W0P                  V P
                  R ^R7      pVx  R# 5i)T)r   	word_wrappaddingN)ru   r?   rstripr   r   r   )r9   rR   rS   codesyntaxs   &&&  r(   rV   CodeBlock.__rich_console__   s?      499~$$&//tQ
 s   AAr   N)rX   rY   rZ   r[   ra   rm   r]   r/   r   rV   r^   r&   r+   r(   r   r      s+    0&J> >
 r+   r   c                  B    ] tR t^tRtRtR R ltR R ltR R ltR	t	R
# )
BlockQuotezA block quote.zmarkdown.block_quotec                   V ^8  d   QhRR/# r!   r%   r5   r&   )r'   s   "r(   r)   BlockQuote.__annotate__        3 3$ 3r+   c                	$    \        4       V n        R # rr   r   elementsr9   s   &r(   r   BlockQuote.__init__       %0]r+   c               $    V ^8  d   QhRRRRRR/# rI   r&   )r'   s   "r(   r)   r      "      o o RV r+   c                	<    V P                   P                  V4       R # Fr   rs   rM   s   &&&r(   rN   BlockQuote.on_child_close       U#r+   c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   r      s$      )7	r+   c              #  	"  "   VP                  VP                  ^,
          R7      pVP                  V P                  W0P                  R7      pV P                  p\        R4      p\        RV4      pV F  pVx  T Rj  xL
  Vx  K  	  R#  L5i)   widthrn   
u   ▌ N)update	max_widthrender_linesr   rn   r   )	r9   rR   rS   render_optionslinesrn   r   r   lines	   &&&      r(   rV   BlockQuote.__rich_console__   s{      !g.?.?!.CD$$T]]N**$U

4=&%(DMOON s   A<B>B?Br   N)
rX   rY   rZ   r[   ra   rm   r   rN   rV   r^   r&   r+   r(   r   r      s    'J3 r+   r   c                  *    ] tR t^tRtRtR R ltRtR# )HorizontalRulez%A horizontal rule to divide sections.Fc               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   HorizontalRule.__annotate__   s$         )7 	 r+   c              #  	P   "   VP                  R RR7      p\        VR7      x  R# 5i)zmarkdown.hrrd   defaultr   N)	get_styler   )r9   rR   rS   rn   s   &&& r(   rV   HorizontalRule.__rich_console__   s'      !!-!@s   $&r&   N)rX   rY   rZ   r[   ra   r   rV   r^   r&   r+   r(   r   r      s    /H   r+   r   c                  >    ] tR t^tRtR R ltR R ltR R ltRtR	# )
TableElementz.MarkdownElement corresponding to `table_open`.c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   TableElement.__annotate__   s     2 2$ 2r+   c                	"    R V n         R V n        R # rr   )headerbodyr   s   &r(   r   TableElement.__init__   s    15-1	r+   c               $    V ^8  d   QhRRRRRR/# rI   r&   )r'   s   "r(   r)   r      s"      o o RV r+   c                	    \        V\        4      '       d	   W n        R# \        V\        4      '       d	   W n        R# \        R 4      h)z Couldn't process markdown table.F)rt   TableHeaderElementr   TableBodyElementr   RuntimeErrorrM   s   &&&r(   rN   TableElement.on_child_close   sB    e/00K
 	 /00I  ABBr+   c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   r      s$      )7	r+   c              #  	  "   \        \        P                  R 7      pV P                  e[   V P                  P                  eC   V P                  P                  P
                   F  pVP                  VP                  4       K   	  V P                  eR   V P                  P                   F7  pVP
                   Uu. uF  qfP                  NK  	  ppVP                  ! V!   K9  	  Vx  R# u upi 5i)r
   N)r	   r   SIMPLE_HEAVYr   rowcells
add_columncontentr   rowsadd_row)r9   rR   rS   tablecolumnr   elementrow_contents   &&&     r(   rV   TableElement.__rich_console__   s      #**+;;"t{{'B++////  0 0 99 yy~~>AiiHi7iH{+ &  Is   B8C/:C*!C/)r   r   N)	rX   rY   rZ   r[   ra   r   rN   rV   r^   r&   r+   r(   r   r      s    82 r+   r   c                  2    ] tR tRtRtR R ltR R ltRtR# )	r   i  z@MarkdownElement corresponding to `thead_open` and `thead_close`.c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   TableHeaderElement.__annotate__
       0 0$ 0r+   c                	    R V n         R # rr   r   r   s   &r(   r   TableHeaderElement.__init__
  s	    +/r+   c               $    V ^8  d   QhRRRRRR/# rI   r&   )r'   s   "r(   r)   r    "      o o RV r+   c                	B    \        V\        4      '       g   Q hW n        R # r   )rt   TableRowElementr   rM   s   &&&r(   rN   !TableHeaderElement.on_child_close  s    %1111r+   r
  NrX   rY   rZ   r[   ra   r   rN   r^   r&   r+   r(   r   r     s    J0 r+   r   c                  2    ] tR tRtRtR R ltR R ltRtR# )	r   i  z@MarkdownElement corresponding to `tbody_open` and `tbody_close`.c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   TableBodyElement.__annotate__  s     . .$ .r+   c                	    . V n         R # rr   r   r   s   &r(   r   TableBodyElement.__init__  s	    +-	r+   c               $    V ^8  d   QhRRRRRR/# rI   r&   )r'   s   "r(   r)   r    r  r+   c                	l    \        V\        4      '       g   Q hV P                  P                  V4       R # r   )rt   r  r   rs   rM   s   &&&r(   rN   TableBodyElement.on_child_close  s*    %1111		r+   r  Nr  r&   r+   r(   r   r     s    J. r+   r   c                  2    ] tR tRtRtR R ltR R ltRtR# )	r  i  z:MarkdownElement corresponding to `tr_open` and `tr_close`.c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   TableRowElement.__annotate__"  r  r+   c                	    . V n         R # rr   r   r   s   &r(   r   TableRowElement.__init__"  s	    -/
r+   c               $    V ^8  d   QhRRRRRR/# rI   r&   )r'   s   "r(   r)   r  %  r  r+   c                	l    \        V\        4      '       g   Q hV P                  P                  V4       R # r   )rt   TableDataElementr   rs   rM   s   &&&r(   rN   TableRowElement.on_child_close%  s+    %!12222

% r+   r  Nr  r&   r+   r(   r  r    s    D0 r+   r  c                  H    ] tR tRtRt]R R l4       tR R ltR R ltR	t	R
# )r#  i+  zWMarkdownElement corresponding to `td_open` and `td_close`
and `th_open` and `th_close`.c               $    V ^8  d   QhRRRRRR/# r    r&   )r'   s   "r(   r)   TableDataElement.__annotate__0  s!     $ $h $u $ $r+   c                	    \        VP                  P                  R 4      4      ;'       g    RpRV9   d   RpMRV9   d   RpMRV9   d   RpMRpV\        \        4      9   g   Q hV ! VR	7      # )
rn   r   ztext-align:rightrightztext-align:centerr   ztext-align:leftri   r   rj   )ru   attrsgetr   r   )r.   r"   r$   rn   rk   s   &&&  r(   r/   TableDataElement.create/  sm    EKKOOG,-33 &G E)G%'GG(=11117##r+   c                    V ^8  d   QhRRRR/# r   r&   )r'   s   "r(   r)   r'  @  s       $ r+   c                	6    \        R VR7      V n        Wn        R# )r   rj   N)r   r   rk   r   s   &&r(   r   TableDataElement.__init__@  s    !"g6r+   c               $    V ^8  d   QhRRRRRR/# r>   r&   )r'   s   "r(   r)   r'  D  s!     ' ' 'h '4 'r+   c                	    \        V\        4      '       d   \        V4      MTpVP                  VP                  4       V P
                  P                  V4       R # rr   )rt   ru   r   stylizerv   r   append_textrA   s   &&&r(   rB   TableDataElement.on_textD  s=    'c22tDzW**+  &r+   )r   rk   N)
rX   rY   rZ   r[   ra   r]   r/   r   rB   r^   r&   r+   r(   r#  r#  +  s*    % $ $ ' 'r+   r#  c                  T    ] tR tRtRt]R R l4       tR R ltR R ltR	 R
 lt	Rt
R# )ListElementiJ  zA list element.c               $    V ^8  d   QhRRRRRR/# )r!   r"   r#   r$   r   r%   r6  r&   )r'   s   "r(   r)   ListElement.__annotate__N  s&     A Ah Au A Ar+   c           	     	n    V ! VP                   \        VP                  P                  R ^4      4      4      # )start)typeintr*  r+  r-   s   &&&r(   r/   ListElement.createM  s'    5::s5;;??7A#>?@@r+   c               $    V ^8  d   QhRRRRRR/# )r!   	list_typeru   
list_startz
int | Noner%   r5   r&   )r'   s   "r(   r)   r8  Q  s!     % %# %: %$ %r+   c                	,    . V n         Wn        W n        R # rr   )itemsr?  r@  )r9   r?  r@  s   &&&r(   r   ListElement.__init__Q  s    %'
"$r+   c               $    V ^8  d   QhRRRRRR/# rI   r&   )r'   s   "r(   r)   r8  V  r  r+   c                	l    \        V\        4      '       g   Q hV P                  P                  V4       R # r   )rt   ListItemrB  rs   rM   s   &&&r(   rN   ListElement.on_child_closeV  s*    %****

% r+   c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   r8  [  s$      )7	r+   c              #  	  "   V P                   R 8X  d/   V P                   F  pVP                  W4       Rj  xL
  K  	  R# V P                  f   ^MV P                  pV\	        V P                  4      ,           p\        V P                  4       F&  w  rcVP                  WWF,           V4       Rj  xL
  K(  	  R#  L L5i)bullet_list_openN)r?  rB  render_bulletr@  len	enumeraterender_number)r9   rR   rS   itemnumberlast_numberindexs   &&&    r(   rV   ListElement.__rich_console__[  s      >>//

--g??? # //1QtF 3tzz?2K(4--fnk    5	 @
s"   5B?B;A8B?0B=1B?=B?)rB  r@  r?  N)rX   rY   rZ   r[   ra   r]   r/   r   rN   rV   r^   r&   r+   r(   r6  r6  J  s-    A A%

 r+   r6  c                  N    ] tR tRtRtRtR R ltR R ltR R	 ltR
 R lt	Rt
R# )rF  ij  zAn item in a list.zmarkdown.itemc                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   ListItem.__annotate__o  r   r+   c                	$    \        4       V n        R # rr   r   r   s   &r(   r   ListItem.__init__o  r   r+   c               $    V ^8  d   QhRRRRRR/# rI   r&   )r'   s   "r(   r)   rV  r  r   r+   c                	<    V P                   P                  V4       R # r   r   rM   s   &&&r(   rN   ListItem.on_child_closer  r   r+   c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   rV  v  s!      W ~ , r+   c              #  	r  "   VP                  VP                  ^,
          R7      pVP                  V P                  W0P                  R7      pVP                  RRR7      p\        RV4      p\        R	V4      p\        R4      p\        V4       F!  w  rV	'       d   TMTx  T
 Rj  xL
  Vx  K#  	  R#  L5i)
   r   r   zmarkdown.item.bulletrd   r   u    • r   Nz   )r   r   r   r   rn   r   r   r   )r9   rR   rS   r   r   bullet_stylebulletr   r   firstr   s   &&&        r(   rK  ListItem.render_bulletv  s      g.?.?!.CD$$T]]N**$U(()?(P,/'<04=%e,KE!&w.OON -s   B$B7&B5'B7c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r!   rR   r   rS   r   rP  r<  rQ  r%   r   r&   )r'   s   "r(   r)   rV    s4      )7ADSV	r+   c              #  	  "   \        \        V4      4      ^,           pVP                  VP                  V,
          R7      pVP	                  V P
                  W`P                  R7      pVP                  RRR7      p\        R4      p	\        RV,          V4      p
\        V P                  V^,
          4      R,           V4      p\        V4       F!  w  rV'       d   TMT
x  T Rj  xL
  V	x  K#  	  R#  L5i)	r!   r   r   zmarkdown.item.numberrd   r   r   r   N)rL  ru   r   r   r   r   rn   r   r   rjustr   )r9   rR   rS   rP  rQ  number_widthr   r   number_styler   r   numeralra  r   s   &&&&&         r(   rN  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$C7&C5'C7r   N)rX   rY   rZ   r[   ra   rm   r   rN   rK  rN  r^   r&   r+   r(   rF  rF  j  s#     J3 r+   rF  c                  8    ] tR tRt]R R l4       tR R ltRtR# )Linki  c               $    V ^8  d   QhRRRRRR/# r    r&   )r'   s   "r(   r)   Link.__annotate__  s!     , ,h ,u , ,r+   c                	r    VP                   P                  R R4      pV ! VP                  \        V4      4      # )href#)r*  r+  r   ru   )r.   r"   r$   urls   &&& r(   r/   Link.create  s+    kkoofc*5==#c(++r+   c                    V ^8  d   QhRRRR/# )r!   r?   ru   ro  r&   )r'   s   "r(   r)   rm    s      S  r+   c                	2    \        V4      V n        W n        R # rr   )r   r?   ro  )r9   r?   ro  s   &&&r(   r   Link.__init__  s    J		r+   )ro  r?   N)rX   rY   rZ   r[   r]   r/   r   r^   r&   r+   r(   rk  rk    s    , , r+   rk  c                  j   a  ] tR tRtRtRt]R R l4       tR V 3R lltR V 3R	 llt	R
 R lt
RtV ;t# )	ImageItemi  z#Renders a placeholder for an image.Fc               $    V ^8  d   QhRRRRRR/# r    r&   )r'   s   "r(   r)   ImageItem.__annotate__  s&     
I 
Ih 
Iu 
I 
Ir+   c                n    V ! \        VP                  P                  RR4      4      VP                  4      # )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   )ru   r*  r+  
hyperlinksr-   s   &&&r(   r/   ImageItem.create  s+     3u{{ub12H4G4GHHr+   c               $    V ^8  d   QhRRRRRR/# )r!   destinationru   r|  rK   r%   r5   r&   )r'   s   "r(   r)   ry    s!      C T d r+   c                	J   < Wn         W n        R V n        \        SV `  4        R # rr   )r  r|  linkr   r   )r9   r  r|  r   s   &&&r(   r   ImageItem.__init__  s     &$ $	r+   c                    V ^8  d   QhRRRR/# r2   r&   )r'   s   "r(   r)   ry    s     " " "D "r+   c                	~   < VP                   P                  V n        \        R R7      V n        \        SV `  V4       R# rh   )rv   r  r   r?   r   r:   )r9   r3   r   s   &&r(   r:   ImageItem.on_enter  s/    ))..	(	!r+   c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   ry    s$      )7	r+   c              #  	  "   \        V P                  ;'       g    V P                  ;'       g    R R7      pV P                  ;'       g<    \	        V P                  P                  R4      P                  R^4      R,          4      pV P                  '       d   VP                  V4       \        P                  ! RVRRR7      pVx  R # 5i)Nr  /u   🌆 r   r   )end)
r   r  r  r?   r   striprsplitr|  r2  assemble)r9   rR   rS   
link_styletitler?   s   &&&   r(   rV   ImageItem.__rich_console__  s      		 E ET-=-= E EF
		QQT$"2"2"8"8"="D"DS!"LR"PQ???MM*%}}WeSb9
s   ,C	C	
AC	1C	)r  r|  r  r?   )rX   rY   rZ   r[   ra   r   r]   r/   r   r:   rV   r^   r   r   s   @r(   rw  rw    s=    -H
I 
I " "
 r+   rw  c                  d    ] tR tRtRtRR R llt]R R l4       tR R	 ltR
 R lt	R R lt
RtR# )r4   i  z!Manages the console render state.Nc               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r!   rR   r   rS   r   rn   r   inline_code_lexer
str | Noneinline_code_themeru   r%   r5   r&   )r'   s   "r(   r)   MarkdownContext.__annotate__  sN     R RR  R 	R
 &R R 
Rr+   c                	    Wn         W n        \        V4      V n        \	        4       V n        R V n        Ve   \        RWER7      V n        R # R # )Nr   )r   )rR   rS   r   style_stackr   stack_syntaxr   )r9   rR   rS   rn   r  r  s   &&&&&&r(   r   MarkdownContext.__init__  sE     '1%'8-2W
&*(!"&7QDL )r+   c                   V ^8  d   QhRR/# r!   r%   r   r&   )r'   s   "r(   r)   r    s     ( (u (r+   c                .    V P                   P                  # )z>Current style which is the product of all styles on the stack.)r  currentr   s   &r(   rv   MarkdownContext.current_style  s     '''r+   c               $    V ^8  d   QhRRRRRR/# )r!   r?   ru   	node_typer%   r5   r&   )r'   s   "r(   r)   r    s!     	/ 	/C 	/C 	/D 	/r+   c                r   VR9   d   V P                   e}   V P                   P                  V4      pVP                  4        V P                  P                  P                  V \        P                  ! W0P                  P                  R7      4       R# V P                  P                  P                  W4       R# )z#Called when the parser visits text.Nr   >   fencecode_inline)
r  	highlightr   r  toprB   r   r  r  r  )r9   r?   r  highlight_texts   &&& r(   rB   MarkdownContext.on_text  s|    00T\\5M!\\33D9N!!#JJNN""dmmN:J:J:R:RS JJNN""4.r+   c                    V ^8  d   QhRRRR/# )r!   rm   str | Styler%   r   r&   )r'   s   "r(   r)   r    s     " "k "e "r+   c                    V P                   P                  VRR7      pV P                  P                  V4       V P                  # )zEnter a style context.rd   r   )rR   r   r  pushrv   )r9   rm   rn   s   && r(   rl   MarkdownContext.enter_style  s;    &&z6&Be$!!!r+   c                   V ^8  d   QhRR/# r  r&   )r'   s   "r(   r)   r    s      U r+   c                :    V P                   P                  4       pV# )zLeave a style context.)r  pop)r9   rn   s   & r(   rz   MarkdownContext.leave_style  s      $$&r+   )r  rR   rS   r  r  )Nmonokai)rX   rY   rZ   r[   ra   r   propertyrv   rB   rl   rz   r^   r&   r+   r(   r4   r4     s3    +R" ( (	/" r+   r4   c                      ] tR tRt$ Rt/ R]bR]bR]bR]bR]bR]	bR	]
bR
]
bR]bR]bR]bR]bR]bR]bR]bR]btR]R&   0 RmtRR R lltR R ltR R ltRtR# )r#   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_openr  
code_blockblockquote_openhrrJ  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   Nc               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# )r!   markupru   r   rk   zJustifyMethod | Nonern   r  r|  rK   r  r  r  r%   r5   r&   )r'   s   "r(   r)   Markdown.__annotate__  sd     A AA A &	A
 A A &A &A 
Ar+   c                	    \        4       P                  R 4      P                  R4      pWn        VP                  V4      V n        W n        W0n        W@n        WPn        W`n	        T;'       g    TV n
        R# )strikethroughr   N)r   enabler  parseparsedr   rk   rn   r|  r  r  )	r9   r  r   rk   rn   r|  r  r  parsers	   &&&&&&&& r(   r   Markdown.__init__  s`     $$_5<<WEll6*$-4
$!2!2!@!@jr+   c                    V ^8  d   QhRRRR/# )r!   tokenszIterable[Token]r%   r&   )r'   s   "r(   r)   r  /  s      o / r+   c              #     "   V Fl  pVP                   R8H  pVP                  R8H  pVP                  '       d6   V'       g.   V'       g&   V P                  VP                  4       Rj  xL
  Kh  Vx  Kn  	  R#  L5i)zFlattens the token stream.r  imgN)r;  r   children_flatten_tokens)r9   r  r$   is_fenceis_images   &&   r(   r  Markdown._flatten_tokens/  s[     EzzW,HyyE)H~~~x8//???  @s   =A9 A9A9&A7'A9c               $    V ^8  d   QhRRRRRR/# rQ   r&   )r'   s   "r(   r)   r  9  s)     u0 u0u0)7u0	u0r+   c              #    "   VP                  V P                  RR7      pVP                  RR7      p\        VVVV P                  V P
                  R7      pV P                  pV P                  pRp\        P                  ! 4       pV P                  V4       EFT  p	V	P                  p
V	P                  pV	P                  ^8H  pV	P                  R8H  pV	P                  ^ 8H  pV
R8X  d   VP                  V	P                  V
4       Kn  V
R8X  d   VP                  R	V
4       K  V
R
8X  d   VP                  RV
4       K  V
R8X  d   \!        V	P"                  P%                  RR4      4      pV P&                  '       d;   VP                  RRR7      pV\)        VR7      ,          pVP+                  V4       EK  VP,                  P/                  \0        P3                  W	4      4       EKM  V
R8X  Ed)   V P&                  '       d   VP5                  4        EKz  VP,                  P7                  4       p\9        V\0        4      '       g   Q hVP                  RRR7      pVP+                  V4       VP                  VP:                  P<                  V
4       VP5                  4        VP                  RV
4       VP                  RRR7      pVP+                  V4       VP                  VP>                  V
4       VP5                  4        VP                  RV
4       EK}  W9   d   V
R8w  d   V
R8w  d   V'       d   VP+                  RV 24       EK  V'       d   VP5                  4        EK  VP+                  RV 24       V	P                  '       d   VP                  V	P                  V
4       VP5                  4        EK   V P@                  P%                  V	P                  4      ;'       g    \B        pVP3                  W	4      pV'       g	   V'       d-   VP,                  P/                  V4       VPE                  V4       V'       d   VP,                  P7                  4       pVP,                  '       * ;'       g;    VP,                  ;'       d'    VP,                  PF                  PI                  VV4      pV'       d1   V'       d   Vx  VPK                  VVPL                  4       Rj  xL
  MV'       d   VP,                  P7                  4        V	P                  pVe   VP                  VV4       VP,                  '       * ;'       g;    VP,                  ;'       d'    VP,                  PF                  PI                  VV4      pV'       d8   V'       d   V
R8w  d   Vx  VPK                  VVPL                  4       Rj  xL
  V'       g   V'       g   EK7  VPO                  V4       VPP                  pEKW  	  R#  EL L>5i)zRender markdown to the console.rd   r   N)height)r  r  Fr?   	hardbreakr   	softbreakr   	link_openro  r   zmarkdown.link_urlr  
link_closezmarkdown.linkz ()r  r  r   inliner  ))r   rn   r   r4   r  r  r  inlinesr   r   r  r;  r   nestingrB   r   ru   r*  r+  r|  r   rl   r  r  rk  r/   rz   r  rt   r?   plainro  r   r`   r:   r  rN   renderrS   rF   r   )r9   rR   rS   rn   r3   r  inline_style_tagsr   _new_line_segmentr$   r  r   enteringexitingself_closingro  r  r  link_url_styleelement_classshould_renderr?   s   &&&                   r(   rV   Markdown.__rich_console__9  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 O'..t;|MM&&w/$$W-%mm//1G(/$5 % % O O#MM--<<WgN "
 %#"33#*>>'7??#KKK!MM%%' ==D'6 $MM) O O"== O O#MM--<<WgN "
 %#	X(="33#*>>'7??#KKKll$$W-&//HG 2` L Ls   G:W6=D1W6/W68W6AW6"'W6
3W6>1W60W6.W63W6;#W6W1W6,AW6 W6.W6W6*W65W46W6W6%W64W6)r   r|  r  r  rk   r  r  rn   >   semr   strong)r  Nrd   TNN)rX   rY   rZ   r[   ra   r}   r   r   r   r   r6  rF  rw  r   r   r   r  r#  r   r\   r  r   r  rV   r^   r&   r+   r(   r#   r#     s    <)<< 	< 	i	<
 	:< 	n< 	K< 	[< 	(< 	< 	l< 	&< 	(< 	?< 	#<  	#!<H8 & ,GA(u0 u0r+   r#   __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-lexerr  z-yz--hyperlinksr|  zenable hyperlinks)r  r  r  z-wz--widthr   z*width of output (default will auto-detect))r;  r  r   r  z-jz	--justifyrk   zenable full text justifyz-pz--pagepagezuse pager to scroll output)r   -zutf-8)encodingfullri   )rk   r   r|  r  )fileforce_terminalr   T)r   r   record)r^     )]
__future__r   systypingr   r   markdown_itr   markdown_it.tokenr   version_infor   typing_extensions
rich.tabler	   r   r   _loopr   _stackr   rR   r   r   r   r   
containersr   jupyterr   panelr   ruler   segmentr   rn   r   r   r   r   r?   r   r   r   r`   rc   r}   r   r   r   r   r   r   r   r  r#  r6  rF  rk  rw  r4   r#   rX   argparseArgumentParserr  add_argumentr<  
parse_argsargsrich.consoler  stdinreadmarkdown_bodyopenmarkdown_filerk   r   r|  r  r"   r  iopydocStringIOfileior  r   printpagergetvaluer&   r+   r(   <module>r$     s   " 
 % " #v*     I I # !    $   6 6r_ /   ( k  F 2 4	 _ 	 ? B	 		 		o 	' '>/ @'{ 'T; % %P- -`w0| w0t z$$>F 4  
 ,   "            9   '   )   D$yyC		($))g..-)..0M / ,,,F????00H yyy(8(8

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