Ë
    êÿæiµg  ã                  ó  — d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZmZmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl"m#Z#m$Z$ ddl%m&Z& ddl'm(Z(m)Z)  G d„ d«      Z* G d„ de*«      Z+ G d„ de*«      Z, G d„ de,«      Z-e G d„ d«      «       Z. G d„ de,«      Z/ G d „ d!e,«      Z0 G d"„ d#e,«      Z1 G d$„ d%e*«      Z2 G d&„ d'e*«      Z3 G d(„ d)e*«      Z4 G d*„ d+e*«      Z5 G d,„ d-e*«      Z6 G d.„ d/e*«      Z7 G d0„ d1e*«      Z8 G d2„ d3e,«      Z9 G d4„ d5e,«      Z: G d6„ d7e,«      Z; G d8„ d9«      Z< G d:„ d;e«      Z=e>d<k(  �rd dl?Z?d dlZ e?j€                  d=¬>«      ZAeAj…                  d?d@dA¬B«       eAj…                  dCdDdEdFddG¬H«       eAj…                  dIdJdKdLdM¬N«       eAj…                  dOdPdQddQ¬N«       eAj…                  dRdSdTdFdU¬V«       eAj…                  dWdXeCdYddZ¬[«       eAj…                  d\d]d^dFd_¬V«       eAj…                  d`dadbdFdc¬V«       eAj‰                  «       ZEd ddlFmZ eEjŽ                  dek(  rej�                  j“                  «       ZJn- eKeEjŽ                  df¬g«      5 ZLeLj“                  «       ZJddd«        e=eJeEjš                  rdhndieEjœ                  eEjž                  eEj                   ¬j«      ZQeEj¤                  rjd dlSZSd dlTZT eSjª                  «       ZV eeVeEj®                  eEj°                  ¬k«      Zej³                  eQ«        eTj´                  eVj·                  «       «       y eeEj®                  eEj°                  dl¬m«      Zej³                  eQ«       yy# 1 sw Y   ŒêxY w)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                  ób   — e Zd ZU dZded<   edd„«       Zdd„Zdd„Zdd„Z	dd„Z
	 	 	 	 	 	 dd	„Zy
)ÚMarkdownElementTzClassVar[bool]Únew_linec                ó   —  | «       S )zòFactory 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      úb/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/rich/markdown.pyÚcreatezMarkdownElement.create   s   € ñ ‹uˆó    c                 ó   — y)zuCalled when the node is entered.

        Args:
            context (MarkdownContext): The markdown context.
        Nr    ©ÚselfÚcontexts     r%   Úon_enterzMarkdownElement.on_enter)   ó   � r'   c                 ó   — y)zpCalled when text is parsed.

        Args:
            context (MarkdownContext): The markdown context.
        Nr    ©r*   r+   Útexts      r%   Úon_textzMarkdownElement.on_text0   r-   r'   c                 ó   — y)zwCalled when the parser leaves the element.

        Args:
            context (MarkdownContext): [description]
        Nr    r)   s     r%   Úon_leavezMarkdownElement.on_leave7   r-   r'   c                 ó   — y)a|  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_closezMarkdownElement.on_child_close>   s   € ð r'   c                 ó   — y)Nr    r    ©r*   ÚconsoleÚoptionss      r%   Ú__rich_console__z MarkdownElement.__rich_console__L   s   € ð r'   N©r#   ÚMarkdownr$   r	   Úreturnr   ©r+   ÚMarkdownContextr?   ÚNone©r+   rA   r0   r   r?   rB   ©r+   rA   r6   r   r?   Úbool©r:   r   r;   r   r?   r   )Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__Úclassmethodr&   r,   r1   r3   r7   r<   r    r'   r%   r   r      sO   … Ø#€HˆnÓ#àò
ó ð
óóóóðØðØ)7ðà	ôr'   r   c                  ó   — e Zd ZdZy)ÚUnknownElementz’An unknown element.

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

    N)rG   rH   rI   Ú__doc__r    r'   r%   rM   rM   R   s   „ òr'   rM   c                  ó,   — e Zd ZdZdZdd„Zdd„Zdd„Zy)	ÚTextElementz)Base class for elements that render text.Únonec                óf   — |j                  | j                  «      | _        t        d¬«      | _        y ©NÚleft©Újustify)Úenter_styleÚ
style_nameÚstyler   r0   r)   s     r%   r,   zTextElement.on_enter`   s$   € Ø×(Ñ(¨¯©Ó9ˆŒ
Ü Ô(ˆ�	r'   c                ó~   — | j                   j                  |t        |t        «      r|j                  «       y d «       y ©N)r0   ÚappendÚ
isinstanceÚstrÚcurrent_styler/   s      r%   r1   zTextElement.on_textd   s+   € Ø�	‰	×Ñ˜¼
À4ÌÔ8M˜w×4Ñ4ÕXÐSWÕXr'   c                ó$   — |j                  «        y r[   )Úleave_styler)   s     r%   r3   zTextElement.on_leaveg   s   € Ø×ÑÕr'   Nr@   rC   )rG   rH   rI   rN   rX   r,   r1   r3   r    r'   r%   rP   rP   [   s   „ Ù3à€Jó)óYôr'   rP   c                  óN   — e Zd ZU dZdZded<   ed	d„«       Zd
d„Z	 	 	 	 	 	 dd„Z	y)Ú	ParagraphzA Paragraph.zmarkdown.paragraphr   rV   c                ó0   —  | |j                   xs d¬«      S rS   rU   r!   s      r%   r&   zParagraph.createq   s   € á˜8×+Ñ+Ò5¨vÔ6Ð6r'   c                ó   — || _         y r[   rU   ©r*   rV   s     r%   Ú__init__zParagraph.__init__u   s	   € Øˆ�r'   c              #  ó^   K  — | j                   | j                  _         | j                  –— y ­wr[   )rV   r0   r9   s      r%   r<   zParagraph.__rich_console__x   s!   è ø€ ð !ŸL™Lˆ�	‰	ÔØ�i‰i‹ùs   ‚+-N)r#   r>   r$   r	   r?   rc   ©rV   r   r?   rB   rF   )
rG   rH   rI   rN   rX   rJ   rK   r&   rg   r<   r    r'   r%   rc   rc   k   sD   … Ùà%€JØÓàò7ó ð7óðØðØ)7ðà	ôr'   rc   c                  ó*   — e Zd ZU dZded<   dZded<   y)ÚHeadingFormatrT   r   rV   Ú r^   rY   N)rG   rH   rI   rV   rJ   rY   r    r'   r%   rk   rk      s   … à#€Gˆ]Ó#Ø€Eˆ3„Or'   rk   c                  óp   ‡ — e Zd ZU dZdddddddœZded<   edd„«       Zdd„Zdˆ fd	„Z		 	 	 	 	 	 dd
„Z
ˆ xZS )ÚHeadingz
A heading.ÚcenterrT   )Úh1Úh2Úh3Úh4Úh5Úh6z"ClassVar[dict[str, JustifyMethod]]ÚLEVEL_ALIGNc                ó&   —  | |j                   «      S r[   )Útagr!   s      r%   r&   zHeading.create‘   s   € á�5—9‘9‹~Ðr'   c                óX   — t        «       | _        |j                  | j                  «       y r[   )r   r0   rW   rX   r)   s     r%   r,   zHeading.on_enter•   s   € Ü“FˆŒ	Ø×Ñ˜DŸO™OÕ,r'   c                óD   •— || _         d|› �| _        t        ‰| �  «        y )Nú	markdown.)rx   rX   Úsuperrg   )r*   rx   Ú	__class__s     €r%   rg   zHeading.__init__™   s#   ø€ ØˆŒØ% c UÐ+ˆŒÜ‰ÑÕr'   c              #  ó¢   K  — | j                   j                  «       }| j                  j                  | j                  d«      }||_        |–— y ­w)NrT   )r0   Úcopyrv   Úgetrx   rV   )r*   r:   r;   r0   Úheading_justifys        r%   r<   zHeading.__rich_console__ž   s@   è ø€ ð �y‰y�~‰~ÓˆØ×*Ñ*×.Ñ.¨t¯x©x¸Ó@ˆØ&ˆŒØ‹
ùó   ‚AA)r#   r>   r$   r	   r?   rn   r@   )rx   r^   r?   rB   rF   )rG   rH   rI   rN   rv   rJ   rK   r&   r,   rg   r<   Ú__classcell__©r}   s   @r%   rn   rn   …   sd   ø… Ùð ØØØØØñ7€KÐ3ó ð òó ðó-õð
ØðØ)7ðà	÷r'   rn   c                  óB   — e Zd ZdZdZedd„«       Zdd„Z	 	 	 	 	 	 d	d„Zy)
Ú	CodeBlockz&A code block with syntax highlighting.zmarkdown.code_blockc                óx   — |j                   xs d}|j                  d«      d   } | |xs d|j                  «      S )Nrl   Ú r   r0   )ÚinfoÚ	partitionÚ
code_theme)r"   r#   r$   Ú	node_infoÚ
lexer_names        r%   r&   zCodeBlock.create¬   s=   € à—J‘JÒ$ "ˆ	Ø×(Ñ(¨Ó-¨aÑ0ˆ
Ù�:Ò' ¨×)<Ñ)<Ó=Ð=r'   c                ó    — || _         || _        y r[   )r�   Útheme)r*   r�   r�   s      r%   rg   zCodeBlock.__init__²   s   € Ø$ˆŒØˆ�
r'   c              #  ó¢   K  — t        | j                  «      j                  «       }t        || j                  | j
                  dd¬«      }|–— y ­w)NTr   )r�   Ú	word_wrapÚpadding)r^   r0   Úrstripr   r�   r�   )r*   r:   r;   ÚcodeÚsyntaxs        r%   r<   zCodeBlock.__rich_console__¶   sB   è ø€ ô �4—9‘9‹~×$Ñ$Ó&ˆÜØ�$—/‘/¨¯©¸tÈQô
ˆð ‹ùr‚   N)r#   r>   r$   r	   r?   r†   )r�   r^   r�   r^   r?   rB   rF   )	rG   rH   rI   rN   rX   rK   r&   rg   r<   r    r'   r%   r†   r†   §   s>   „ Ù0à&€Jàò>ó ð>ó
ðØðØ)7ðà	ôr'   r†   c                  ó8   — e Zd ZdZdZdd„Zdd„Z	 	 	 	 	 	 d	d„Zy)
Ú
BlockQuotezA block quote.zmarkdown.block_quotec                ó"   — t        «       | _        y r[   ©r   Úelements©r*   s    r%   rg   zBlockQuote.__init__Å   ó   € Ü%0£]ˆ�r'   c                ó:   — | j                   j                  |«       y©NF©rš   r\   r5   s      r%   r7   zBlockQuote.on_child_closeÈ   ó   € Ø�‰×Ñ˜UÔ#Ør'   c              #  ó  K  — |j                  |j                  dz
  ¬«      }|j                  | j                  || j                  ¬«      }| j                  }t        d«      }t        d|«      }|D ]  }|–— |E d {  –—†  |–— Œ y 7 Œ­w)Né   ©Úwidth©rY   Ú
u   â–Œ )ÚupdateÚ	max_widthÚrender_linesrš   rY   r   )	r*   r:   r;   Úrender_optionsÚlinesrY   r   r’   Úlines	            r%   r<   zBlockQuote.__rich_console__Ì   s~   è ø€ ð !Ÿ™¨g×.?Ñ.?À!Ñ.C˜ÓDˆØ×$Ñ$ T§]¡]°NÈ$Ï*É*Ð$ÓUˆØ—
‘
ˆÜ˜4“=ˆÜ˜& %Ó(ˆÛˆDØŠMØ�OˆOØ‹Nñ àús   ‚A9B	Á;BÁ<B	N©r?   rB   rD   rF   )rG   rH   rI   rN   rX   rg   r7   r<   r    r'   r%   r—   r—   À   s1   „ Ùà'€Jó3óðØðØ)7ðà	ôr'   r—   c                  ó(   — e Zd ZdZdZ	 	 	 	 	 	 dd„Zy)ÚHorizontalRulez%A horizontal rule to divide sections.Fc              #  óh   K  — |j                  dd¬«      }t        |d¬«      –— t        «       –— y ­w)Nzmarkdown.hrrQ   ©ÚdefaultÚ-)rY   Ú
characters)Ú	get_styler   r   )r*   r:   r;   rY   s       r%   r<   zHorizontalRule.__rich_console__ß   s1   è ø€ ð ×!Ñ! -¸Ð!Ó@ˆÜ˜¨3Ô/Ò/Ü‹f‹ùs   ‚02NrF   )rG   rH   rI   rN   r   r<   r    r'   r%   r¯   r¯   Ú   s'   „ Ù/à€HðØðØ)7ðà	ôr'   r¯   c                  ó4   — e Zd ZdZdd„Zdd„Z	 	 	 	 	 	 dd„Zy)	ÚTableElementz.MarkdownElement corresponding to `table_open`.c                ó    — d | _         d | _        y r[   )ÚheaderÚbodyr›   s    r%   rg   zTableElement.__init__ê   s   € Ø15ˆŒØ-1ˆ�	r'   c                óx   — t        |t        «      r|| _        yt        |t        «      r|| _        yt        d«      ‚)Nz Couldn't process markdown table.F)r]   ÚTableHeaderElementr¹   ÚTableBodyElementrº   ÚRuntimeErrorr5   s      r%   r7   zTableElement.on_child_closeî   s@   € Ü�eÔ/Ô0ØˆDŒKð
 ô	 ˜Ô/Ô0ØˆDŒIð ô ÐAÓBÐBr'   c              #  ó  K  — t        t        j                  dddd¬«      }| j                  �w| j                  j                  �a| j                  j                  j
                  D ]>  }|j                  j                  «       }|j                  d«       |j                  |«       Œ@ | j                  �M| j                  j                  D ]4  }|j
                  D �cg c]  }|j                  ‘Œ }} |j                  |Ž  Œ6 |–— y c c}w ­w)NFzmarkdown.table.borderT)r   Úpad_edgerY   Ú	show_edgeÚcollapse_paddingzmarkdown.table.header)r
   r   ÚSIMPLEr¹   ÚrowÚcellsÚcontentr   ÚstylizeÚ
add_columnrº   ÚrowsÚadd_row)	r*   r:   r;   ÚtableÚcolumnÚheadingrÄ   ÚelementÚrow_contents	            r%   r<   zTableElement.__rich_console__÷   sØ   è ø€ ô Ü—
‘
ØØ)ØØ!ô
ˆð �;‰;Ð" t§{¡{§¡Ð'BØŸ+™+Ÿ/™/×/Ô/�Ø Ÿ.™.×-Ñ-Ó/�Ø—‘Ð 7Ô8Ø× Ñ  Õ)ð 0ð
 �9‰9Ð Ø—y‘y—~”~�Ø>A¿iºiÓH¹i°7˜wŸ›¸i�ÐHØ�—‘˜{Ò+ð &ð ‹ùò Iùs   ‚CDÃDÃ*DNr­   rD   rF   )rG   rH   rI   rN   rg   r7   r<   r    r'   r%   r·   r·   ç   s,   „ Ù8ó2óðØðØ)7ðà	ôr'   r·   c                  ó    — e Zd ZdZdd„Zdd„Zy)r¼   z@MarkdownElement corresponding to `thead_open` and `thead_close`.c                ó   — d | _         y r[   )rÄ   r›   s    r%   rg   zTableHeaderElement.__init__  s	   € Ø+/ˆ�r'   c                ó6   — t        |t        «      sJ ‚|| _        yrž   )r]   ÚTableRowElementrÄ   r5   s      r%   r7   z!TableHeaderElement.on_child_close  s   € Ü˜%¤Ô1Ð1Ð1ØˆŒØr'   Nr­   rD   ©rG   rH   rI   rN   rg   r7   r    r'   r%   r¼   r¼     s   „ ÙJó0ôr'   r¼   c                  ó    — e Zd ZdZdd„Zdd„Zy)r½   z@MarkdownElement corresponding to `tbody_open` and `tbody_close`.c                ó   — g | _         y r[   )rÉ   r›   s    r%   rg   zTableBodyElement.__init__  s	   € Ø+-ˆ�	r'   c                ó^   — t        |t        «      sJ ‚| j                  j                  |«       yrž   )r]   rÓ   rÉ   r\   r5   s      r%   r7   zTableBodyElement.on_child_close"  s'   € Ü˜%¤Ô1Ð1Ð1Ø�	‰	×Ñ˜ÔØr'   Nr­   rD   rÔ   r    r'   r%   r½   r½     s   „ ÙJó.ôr'   r½   c                  ó    — e Zd ZdZdd„Zdd„Zy)rÓ   z:MarkdownElement corresponding to `tr_open` and `tr_close`.c                ó   — g | _         y r[   )rÅ   r›   s    r%   rg   zTableRowElement.__init__+  s	   € Ø-/ˆ�
r'   c                ó^   — t        |t        «      sJ ‚| j                  j                  |«       yrž   )r]   ÚTableDataElementrÅ   r\   r5   s      r%   r7   zTableRowElement.on_child_close.  s(   € Ü˜%Ô!1Ô2Ð2Ð2Ø�
‰
×Ñ˜%Ô Ør'   Nr­   rD   rÔ   r    r'   r%   rÓ   rÓ   (  s   „ ÙDó0ôr'   rÓ   c                  ó2   — e Zd ZdZedd„«       Zdd„Zdd„Zy)	rÛ   z[MarkdownElement corresponding to `td_open` and `td_close`
    and `th_open` and `th_close`.c                ó¸   — t        |j                  j                  d«      «      xs d}d|v rd}nd|v rd}n	d|v rd}nd	}|t        t        «      v sJ ‚ | |¬
«      S )NrY   rl   ztext-align:rightÚrightztext-align:centerro   ztext-align:leftrT   r²   rU   )r^   Úattrsr€   r   r   )r"   r#   r$   rY   rV   s        r%   r&   zTableDataElement.create8  sj   € ä�E—K‘K—O‘O GÓ,Ó-Ò3°ˆð  Ñ&Ø‰GØ  EÑ)Ø‰GØ %Ñ'Ø‰GàˆGàœ(¤=Ó1Ñ1Ð1Ð1Ù˜7Ô#Ð#r'   c                ó6   — t        d|¬«      | _        || _        y )Nrl   rU   )r   rÆ   rV   rf   s     r%   rg   zTableDataElement.__init__I  s   € Ü! "¨gÔ6ˆŒØˆ�r'   c                ó¨   — t        |t        «      r'| j                  j                  ||j                  «       y | j                  j                  |«       y r[   )r]   r^   rÆ   r\   r_   Úappend_textr/   s      r%   r1   zTableDataElement.on_textM  s8   € Ü�dœCÔ Ø�L‰L×Ñ  g×&;Ñ&;Õ<à�L‰L×$Ñ$ TÕ*r'   Nr=   ri   rC   )rG   rH   rI   rN   rK   r&   rg   r1   r    r'   r%   rÛ   rÛ   4  s%   „ ñ%ð ò$ó ð$ó ô+r'   rÛ   c                  óF   — e Zd ZdZedd„«       Zdd„Zd	d„Z	 	 	 	 	 	 d
d„Zy)ÚListElementzA list element.c           	     ón   —  | |j                   t        |j                  j                  dd«      «      «      S )NÚstartr   )ÚtypeÚintrß   r€   r!   s      r%   r&   zListElement.createW  s'   € á�5—:‘:œs 5§;¡;§?¡?°7¸AÓ#>Ó?Ó@Ð@r'   c                ó.   — g | _         || _        || _        y r[   )ÚitemsÚ	list_typeÚ
list_start)r*   rë   rì   s      r%   rg   zListElement.__init__[  s   € Ø%'ˆŒ
Ø"ˆŒØ$ˆ�r'   c                ó^   — t        |t        «      sJ ‚| j                  j                  |«       yrž   )r]   ÚListItemrê   r\   r5   s      r%   r7   zListElement.on_child_close`  s'   € Ü˜%¤Ô*Ð*Ð*Ø�
‰
×Ñ˜%Ô Ør'   c              #  óf  K  — | j                   dk(  r,| j                  D ]  }|j                  ||«      E d {  –—†  Œ y | j                  €dn| j                  }|t	        | j                  «      z   }t        | j                  «      D ]$  \  }}|j                  ||||z   |«      E d {  –—†  Œ& y 7 Œv7 Œ	­w)NÚbullet_list_openr   )rë   rê   Úrender_bulletrì   ÚlenÚ	enumerateÚrender_number)r*   r:   r;   ÚitemÚnumberÚlast_numberÚindexs          r%   r<   zListElement.__rich_console__e  s©   è ø€ ð �>‰>Ð/Ò/ØŸ
œ
�Ø×-Ñ-¨g°wÓ?×?Ñ?ñ #ð Ÿ/™/Ð1‘Q°t·±ˆFØ ¤3 t§z¡z£?Ñ2ˆKÜ(¨¯©Ö4‘��tØ×-Ñ-Ø˜W f¨u¡n°kó÷ ñ ñ  5ð	 @øð
ús"   ‚4B1¶B-·A.B1Â%B/Â&B1Â/B1N)r#   r>   r$   r	   r?   rä   )rë   r^   rì   z
int | Noner?   rB   rD   rF   )	rG   rH   rI   rN   rK   r&   rg   r7   r<   r    r'   r%   rä   rä   T  s@   „ ÙàòAó ðAó%ó
ð
ØðØ)7ðà	ôr'   rä   c                  óH   — e Zd ZdZdZdd„Zd	d„Zd
d„Z	 	 	 	 	 	 	 	 	 	 dd„Zy)rî   zAn item in a list.zmarkdown.itemc                ó"   — t        «       | _        y r[   r™   r›   s    r%   rg   zListItem.__init__y  rœ   r'   c                ó:   — | j                   j                  |«       yrž   rŸ   r5   s      r%   r7   zListItem.on_child_close|  r    r'   c              #  ó\  K  — |j                  |j                  dz
  ¬«      }|j                  | j                  || j                  ¬«      }|j                  dd¬«      }t        d|«      }t        d|«      }t        d	«      }t        |«      D ]  \  }	}
|	r|n|–— |
E d {  –—†  |–— Œ y 7 Œ­w)
Né   r£   r¥   zmarkdown.item.bulletrQ   r±   u    â€¢ z   r¦   )r§   r¨   r©   rš   rY   rµ   r   r   )r*   r:   r;   rª   r«   Úbullet_styleÚbulletr’   r   Úfirstr¬   s              r%   rñ   zListItem.render_bullet€  s£   è ø€ Ø Ÿ™¨g×.?Ñ.?À!Ñ.C˜ÓDˆØ×$Ñ$ T§]¡]°NÈ$Ï*É*Ð$ÓUˆØ×(Ñ(Ð)?ÈÐ(ÓPˆä˜ ,Ó/ˆÜ˜' <Ó0ˆÜ˜4“=ˆÜ% eÖ,‰KˆE�4Ù!‘& wÒ.Ø�OˆOØ‹Nñ -àús   ‚BB,ÂB*ÂB,c              #  ó¼  K  — t        t        |«      «      dz   }|j                  |j                  |z
  ¬«      }|j	                  | j
                  || j                  ¬«      }|j                  dd¬«      }t        d«      }	t        d|z  |«      }
t        |› j                  |d	z
  «      dz   |«      }t        |«      D ]  \  }}|r|n|
–— |E d {  –—†  |	–— Œ y 7 Œ­w)
Né   r£   r¥   zmarkdown.item.numberrQ   r±   r¦   rˆ   r   )rò   r^   r§   r¨   r©   rš   rY   rµ   r   Úrjustr   )r*   r:   r;   rö   r÷   Únumber_widthrª   r«   Únumber_styler   r’   Únumeralr   r¬   s                 r%   rô   zListItem.render_number�  sÕ   è ø€ ô œ3˜{Ó+Ó,¨qÑ0ˆØ Ÿ™¨g×.?Ñ.?À,Ñ.N˜ÓOˆØ×$Ñ$ T§]¡]°NÈ$Ï*É*Ð$ÓUˆØ×(Ñ(Ð)?ÈÐ(ÓPˆä˜4“=ˆÜ˜# Ñ,¨lÓ;ˆÜ˜V˜H×+Ñ+¨L¸1Ñ,<Ó=ÀÑCÀ\ÓRˆÜ% eÖ,‰KˆE�4Ù"‘'¨Ò/Ø�OˆOØ‹Nñ -àús   ‚CCÃCÃCNr­   rD   rF   )
r:   r   r;   r   rö   rè   r÷   rè   r?   r   )	rG   rH   rI   rN   rX   rg   r7   rñ   rô   r    r'   r%   rî   rî   t  sF   „ Ùà €Jó3óóðØðØ)7ðØADðØSVðà	ôr'   rî   c                  ó&   — e Zd Zedd„«       Zdd„Zy)ÚLinkc                ór   — |j                   j                  dd«      } | |j                  t        |«      «      S )NÚhrefÚ#)rß   r€   rÆ   r^   )r"   r#   r$   Úurls       r%   r&   zLink.createŸ  s+   € à�k‰k�o‰o˜f cÓ*ˆÙ�5—=‘=¤# c£(Ó+Ð+r'   c                ó2   — t        |«      | _        || _        y r[   )r   r0   r
  )r*   r0   r
  s      r%   rg   zLink.__init__¤  s   € Ü˜“JˆŒ	Øˆ�	r'   Nr=   )r0   r^   r
  r^   )rG   rH   rI   rK   r&   rg   r    r'   r%   r  r  ž  s   „ Øò,ó ð,ôr'   r  c                  óZ   ‡ — e Zd ZdZdZedd„«       Zdˆ fd„Zd	ˆ fd„Z	 	 	 	 	 	 d
d„Z	ˆ xZ
S )Ú	ImageItemz#Renders a placeholder for an image.Fc                ón   —  | t        |j                  j                  dd«      «      |j                  «      S )zñFactory to create markdown element,

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

        Returns:
            MarkdownElement: A new markdown element
        Úsrcrl   )r^   rß   r€   Ú
hyperlinksr!   s      r%   r&   zImageItem.create®  s+   € ñ ”3�u—{‘{—‘ u¨bÓ1Ó2°H×4GÑ4GÓHÐHr'   c                óL   •— || _         || _        d | _        t        ‰| �  «        y r[   )Údestinationr  Úlinkr|   rg   )r*   r  r  r}   s      €r%   rg   zImageItem.__init__»  s$   ø€ Ø&ˆÔØ$ˆŒØ $ˆŒ	Ü‰ÑÕr'   c                ó|   •— |j                   j                  | _        t        d¬«      | _        t        ‰| �  |«       y rS   )r_   r  r   r0   r|   r,   )r*   r+   r}   s     €r%   r,   zImageItem.on_enterÁ  s/   ø€ Ø×)Ñ)×.Ñ.ˆŒ	Ü Ô(ˆŒ	Ü‰Ñ˜Õ!r'   c              #  óZ  K  — t        | j                  xs | j                  xs d ¬«      }| j                  xs7 t	        | j                  j                  d«      j                  dd«      d   «      }| j                  r|j                  |«       t	        j                  d|dd¬«      }|–— y ­w)	N©r  Ú/r   éÿÿÿÿu   ðŸŒ† rˆ   rl   )Úend)
r   r  r  r0   r   ÚstripÚrsplitr  rÇ   Úassemble)r*   r:   r;   Ú
link_styleÚtitler0   s         r%   r<   zImageItem.__rich_console__Æ  sˆ   è ø€ ô  §	¡	Ò E¨T×-=Ñ-=Ò EÀÔFˆ
Ø—	‘	ÒQœT $×"2Ñ"2×"8Ñ"8¸Ó"=×"DÑ"DÀSÈ!Ó"LÈRÑ"PÓQˆØ�?Š?Ø�M‰M˜*Ô%Ü�}‰}˜W e¨S°bÔ9ˆØ‹
ùs   ‚B)B+r=   )r  r^   r  rE   r?   rB   r@   rF   )rG   rH   rI   rN   r   rK   r&   rg   r,   r<   rƒ   r„   s   @r%   r  r  ©  sF   ø„ Ù-à€Hàò
Ió ð
Iõõ"ð
ØðØ)7ðà	÷r'   r  c                  ó^   — e Zd ZdZ	 	 d	 	 	 	 	 	 	 	 	 	 	 d	d„Zed
d„«       Zdd„Zdd„Zd
d„Z	y)rA   z!Manages the console render state.Nc                ó˜   — || _         || _        t        |«      | _        t	        «       | _        d | _        |�t        d||¬«      | _        y y )Nrl   )r�   )r:   r;   r   Ústyle_stackr   ÚstackÚ_syntaxr   )r*   r:   r;   rY   Úinline_code_lexerÚinline_code_themes         r%   rg   zMarkdownContext.__init__Ô  sL   € ð ˆŒØˆŒÜ'1°%Ó'8ˆÔÜ-2«WˆŒ
à&*ˆŒØÐ(Ü! "Ð&7Ð?PÔQˆD�Lð )r'   c                ó.   — | j                   j                  S )z>Current style which is the product of all styles on the stack.)r#  Úcurrentr›   s    r%   r_   zMarkdownContext.current_styleå  s   € ð ×Ñ×'Ñ'Ð'r'   c                óf  — |dv r‡| j                   �{| j                   j                  |«      }|j                  «        | j                  j                  j                  | t        j                  || j                  j                  ¬«      «       y| j                  j                  j                  | |«       y)z#Called when the parser visits text.>   ÚfenceÚcode_inlineNr¥   )
r%  Ú	highlightr“   r$  Útopr1   r   r  r#  r)  )r*   r0   Ú	node_typeÚhighlight_texts       r%   r1   zMarkdownContext.on_textê  s€   € àÐ0Ñ0°T·\±\Ð5MØ!Ÿ\™\×3Ñ3°DÓ9ˆNØ×!Ñ!Ô#Ø�J‰J�N‰N×"Ñ"Ø”d—m‘m N¸$×:JÑ:J×:RÑ:RÔSõð �J‰J�N‰N×"Ñ" 4¨Õ.r'   c                óŠ   — | j                   j                  |d¬«      }| j                  j                  |«       | j                  S )zEnter a style context.rQ   r±   )r:   rµ   r#  Úpushr_   )r*   rX   rY   s      r%   rW   zMarkdownContext.enter_styleõ  s;   € à—‘×&Ñ& z¸6Ð&ÓBˆØ×Ñ×Ñ˜eÔ$Ø×!Ñ!Ð!r'   c                ó:   — | j                   j                  «       }|S )zLeave a style context.)r#  Úpop)r*   rY   s     r%   ra   zMarkdownContext.leave_styleû  s   € à× Ñ ×$Ñ$Ó&ˆØˆr'   )NÚmonokai)r:   r   r;   r   rY   r   r&  ú
str | Noner'  r^   r?   rB   )r?   r   )r0   r^   r/  r^   r?   rB   )rX   ústr | Styler?   r   )
rG   rH   rI   rN   rg   Úpropertyr_   r1   rW   ra   r    r'   r%   rA   rA   Ñ  sv   „ Ù+ð )-Ø!*ðRàðRð  ðRð ð	Rð
 &ðRð ðRð 
óRð" ò(ó ð(ó	/ó"ôr'   rA   c                  óØ   — e Zd ZU dZi de“de“de“de“de“de“de	“d	e	“d
e
“de“de“de“de“de“de“de“Zded<   h d£Z	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 dd„Zy)r>   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Ú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                óê   — t        «       j                  d«      j                  d«      }|| _        |j                  |«      | _        || _        || _        || _        || _        || _	        |xs || _
        y )NÚstrikethroughrË   )r   ÚenableÚmarkupÚparseÚparsedr‹   rV   rY   r  r&  r'  )	r*   rN  r‹   rV   rY   r  r&  r'  Úparsers	            r%   rg   zMarkdown.__init__%  si   € ô “×$Ñ$ _Ó5×<Ñ<¸WÓEˆØˆŒØ—l‘l 6Ó*ˆŒØ$ˆŒØ-4ˆŒØˆŒ
Ø$ˆŒØ!2ˆÔØ!2Ò!@°jˆÕr'   c              #  óÊ   K  — |D ]X  }|j                   dk(  }|j                  dk(  }|j                  r(|s&|s$| j                  |j                  «      E d{  –—†  ŒU|–— ŒZ y7 Œ­w)zFlattens the token stream.r+  ÚimgN)rç   rx   ÚchildrenÚ_flatten_tokens)r*   Útokensr$   Úis_fenceÚis_images        r%   rU  zMarkdown._flatten_tokens9  sZ   è ø€ ãˆEØ—z‘z WÑ,ˆHØ—y‘y EÑ)ˆHØ�~Š~¡x±8Ø×/Ñ/°·±Ó?×?Ñ?à“ñ ð @ús   ‚AA#ÁA!ÁA#c              #  óR  K  — |j                  | j                  d¬«      }|j                  d¬«      }t        |||| j                  | j
                  ¬«      }| j                  }| j                  }d}t        j                  «       }| j                  |«      D �]	  }	|	j                  }
|	j                  }|	j                  dk(  }|	j                  dk(  }|	j                  d	k(  }|
d
k(  r|j                  |	j                  |
«       Œk|
dk(  r|j                  d|
«       Œƒ|
dk(  r|j                  d|
«       Œ›|
dk(  r—t!        |	j"                  j%                  dd«      «      }| j&                  r5|j                  dd¬«      }|t)        |¬«      z  }|j+                  |«       �Œ|j,                  j/                  t0        j3                  | |	«      «       �Œ7|
dk(  rX|	j                  dk(  r&|j                  dd¬«      }|j+                  |«       �Œq|	j                  dk(  r|j5                  «        �Œ’�Œ”|
dk(  �r| j&                  r|j5                  «        �Œ¸|j,                  j7                  «       }t9        |t0        «      sJ ‚|j                  dd¬«      }|j+                  |«       |j                  |j:                  j<                  |
«       |j5                  «        |j                  d|
«       |j                  dd¬«      }|j+                  |«       |j                  |j>                  |
«       |j5                  «        |j                  d|
«       �Œ´||v r„|
dk7  r|
dk7  rz|r|j+                  d|› �«       �ŒÚ|r|j5                  «        �Œî|j+                  d|› �«       |	j                  r|j                  |	j                  |
«       |j5                  «        �Œ<| j@                  j%                  |	j                  «      xs tB        }|j3                  | |	«      }|s|r,|j,                  j/                  |«       |jE                  |«       |rŠ|j,                  j7                  «       }|j,                   xs4 |j,                  xr& |j,                  jF                  jI                  ||«      }|rÛ|r|–— |jK                  ||jL                  «      E d{  –—†  n°|r®|j,                  j7                  «        |	j                  }|�|j                  ||«       |j,                   xs4 |j,                  xr& |j,                  jF                  jI                  ||«      }|r/|r	|
d k7  r|–— |jK                  ||jL                  «      E d{  –—†  |s|s�Œí|jO                  |«       |jP                  }�Œ y7 ŒÜ7 Œ-­w)!zRender markdown to the console.rQ   r±   N)Úheight)r&  r'  Fr   r  r   r0   Ú	hardbreakr¦   Ú	softbreakrˆ   Ú	link_openr
  rl   zmarkdown.link_urlr  Úhtml_inlinez<kbd>zmarkdown.kbdÚboldz</kbd>Ú
link_closezmarkdown.linkz (Ú)r+  r<  r{   Úinline))rµ   rY   r§   rA   r&  r'  rP  Úinlinesr   r¬   rU  rç   rx   Únestingr1   rÆ   r^   rß   r€   r  r   rW   r$  r2  r  r&   ra   r4  r]   r0   Úplainr
  rš   rM   r,   r.  r7   Úrenderr;   r3   r   )r*   r:   r;   rY   r+   rV  Úinline_style_tagsr   Ú_new_line_segmentr$   r/  rx   ÚenteringÚexitingÚself_closingr
  r  Ú	kbd_stylerÎ   Úlink_url_styleÚelement_classÚshould_renderr0   s                          r%   r<   zMarkdown.__rich_console__C  sÚ  è ø€ ð ×!Ñ! $§*¡*°fÐ!Ó=ˆØ—.‘.¨�.Ó-ˆÜ!ØØØØ"×4Ñ4Ø"×4Ñ4ô
ˆð —‘ˆØ ŸL™LÐØˆÜ#ŸL™L›NÐà×)Ñ)¨&×1ˆEØŸ
™
ˆIØ—)‘)ˆCà—}‘}¨Ñ)ˆHØ—m‘m rÑ)ˆGØ Ÿ=™=¨AÑ-ˆLà˜FÒ"Ø—‘ §¡¨yÕ9Ø˜kÒ)Ø—‘  iÕ0Ø˜kÒ)Ø—‘  YÕ/Ø˜kÒ)Ü˜5Ÿ;™;Ÿ?™?¨6°2Ó6Ó7�Ø—?’?Ø!(×!2Ñ!2Ð3FÐPVÐ!2Ó!W�JØ¤%¨TÔ"2Ñ2�JØ×'Ñ'¨
Ö3à—M‘M×&Ñ&¤t§{¡{°4¸Ó'?Ö@Ø˜mÒ+Ø—=‘= GÒ+Ø '× 1Ñ 1°.È&Ð 1Ó Q�IØ×'Ñ'¨	Ö2Ø—]‘] hÒ.Ø×'Ñ'Ö)áØ˜lÓ*Ø—?’?Ø×'Ñ'Ö)à%Ÿm™m×/Ñ/Ó1�GÜ% g¬tÔ4Ð4Ð4Ø!(×!2Ñ!2°?ÈFÐ!2Ó!S�JØ×'Ñ'¨
Ô3Ø—O‘O G§L¡L×$6Ñ$6¸	ÔBØ×'Ñ'Ô)Ø—O‘O D¨)Ô4Ø%,×%6Ñ%6Ø+°Vð &7ó &�Nð ×'Ñ'¨Ô7Ø—O‘O G§L¡L°)Ô<Ø×'Ñ'Ô)Ø—O‘O C¨Ö3àÐ(Ñ(Ø Ò(Ø Ò-áð ×'Ñ'¨)°C°5Ð(9Ö:Ùð ×'Ñ'Ö)ð ×'Ñ'¨)°C°5Ð(9Ô:Ø—}’}ØŸ™¨¯©°yÔAØ×'Ñ'Ö)ð !%§¡× 1Ñ 1°%·*±*Ó =Ò OÄ�Ø'×.Ñ.¨t°UÓ;�á™|Ø—M‘M×&Ñ& wÔ/Ø×$Ñ$ WÔ-áØ%Ÿm™m×/Ñ/Ó1�Gà(/¯©Ð$5ò %ØŸ™ò OØ#ŸM™M×-Ñ-×<Ñ<¸WÀgÓNð "ñ
 %Ù#Ø"3Ò3à#*§>¡>°'¸7¿?¹?Ó#K×KÑKÙ!Ø—M‘M×%Ñ%Ô'Ø Ÿ=™=�DØÐ'ØŸ™¨°Ô6ð $ŸM™MÐ)ò OØ"Ÿ=™=ò OØ#ŸM™M×-Ñ-×<Ñ<¸WÀgÓNð "ñ
 %Ù#¨	°XÒ(=Ø"3Ò3Ø#*§>¡>°'¸7¿?¹?Ó#K×KÐKá›lØ×$Ñ$ WÔ-Ø&×/Ñ/’HñW 2ðp Løð Lús+   ‚SV'ÓV#ÓB0V'Õ7V%Õ8V'Ö"V'Ö%V')r5  NrQ   TNN)rN  r^   r‹   r^   rV   zJustifyMethod | NonerY   r7  r  rE   r&  r6  r'  r6  r?   rB   )rV  úIterable[Token]r?   rp  rF   )rG   rH   rI   rN   rc   rn   r†   r—   r¯   rä   rî   r  r·   r½   r¼   rÓ   rÛ   rš   rJ   rc  rg   rU  r<   r    r'   r%   r>   r>     ss  … ñð<Ø˜)ð<à˜ð<ð 	�ð<ð 	�ið	<ð
 	˜:ð<ð 	ˆnð<ð 	˜Kð<ð 	˜[ð<ð 	˜(ð<ð 	�ð<ð 	�lð<ð 	Ð&ð<ð 	Ð(ð<ð 	�?ð<ð 	Ð#ð<ð  	Ð#ð!<€HÐ8ó ò& ,€Gð
 $Ø(,Ø#ØØ(,Ø(,ðAàðAð ðAð &ð	Að
 ðAð ðAð &ðAð &ðAð 
óAó(ð}0Øð}0Ø)7ð}0à	ô}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²   rv  z-tz--code-themer‹   r5  zpygments code theme)ry  r²   rv  z-iz--inline-code-lexerr&  z-yz--hyperlinksr  zenable hyperlinks)ry  rz  rv  z-wz--widthr¤   z*width of output (default will auto-detect))rç   ry  r²   rv  z-jz	--justifyrV   zenable full text justifyz-pz--pageÚpagezuse pager to scroll output)r   r³   zutf-8)ÚencodingÚfullrT   )rV   r‹   r  r&  )ÚfileÚforce_terminalr¤   T)r  r¤   Úrecord)\Ú
__future__r   ÚsysÚdataclassesr   Útypingr   r   r   Úmarkdown_itr   Úmarkdown_it.tokenr	   Ú
rich.tabler
   rl   r   Ú_loopr   Ú_stackr   r:   r   r   r   r   Ú
containersr   Újupyterr   Úruler   Úsegmentr   rY   r   r   r•   r   r0   r   r   r   rM   rP   rc   rk   rn   r†   r—   r¯   r·   r¼   r½   rÓ   rÛ   rä   rî   r  r  rA   r>   rG   ÚargparseÚArgumentParserrQ  Úadd_argumentrè   Ú
parse_argsÚargsÚrich.consolers  ÚstdinÚreadÚmarkdown_bodyÚopenÚmarkdown_filerV   r‹   r  r&  r#   r{  ÚioÚpydocÚStringIOÚfileiorw  r¤   ÚprintÚpagerÚgetvaluer    r'   r%   Ú<module>r      s¢  ðÝ "ã 
Ý !ß /Ñ /å "Ý #å å Ý Ý ß IÓ IÝ #Ý !Ý Ý ß $Ý ß  ÷6ñ 6ôr�_ô ô�/ô ô �ô ð( ÷ð ó ðô
ˆkô ôD�ô ô2�ô ô4
�_ô 
ô&�?ô &ôR	˜ô 	ô	�ô 	ô	�oô 	ô+�ô +ô@�/ô ô@'ˆ{ô 'ôTˆ;ô ô%�ô %÷P-ñ -ô`0ˆ|ô 0ðD ˆzÓÛÛà$ˆX×$Ñ$Ø>ô€Fð ×ÑØØØ4ð ô ð
 ×ÑØØØØØØ,ð ô ð ×ÑØØØØØ"ð ô ð ×ÑØØØ ØØ ð ô ð ×ÑØØØØØ ð ô ð ×ÑØØØØØØ9ð ô ð ×ÑØØØØØ'ð ô ð ×ÑØØØØØ)ð ô ð ×ÑÓ€Då$à‡y�y�CÒØŸ	™	Ÿ™Ó(‰á�$—)‘) gÕ.°-Ø)×.Ñ.Ó0ˆM÷ /ñ ØØŸ,š,‘¨FØ—?‘?Ø—?‘?Ø×0Ñ0ô€Hð ‡y‚yÛÛà�—‘“ˆÙØ¨×(8Ñ(8ÀÇ
Á
ô
ˆð 	�‰�hÔØˆ�‰�F—O‘OÓ%Õ&ñ Ø×+Ñ+°4·:±:Àdô
ˆð 	�‰�hÕð ÷L /Ð.ús   É<M6Í6M?