a
    Df7f                     @  s  d dl mZ d dlZd dlmZmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZ ejdkrhd dlmZ n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( d	dl)m*Z*m+Z+ d	dl,m-Z- d	dl.m/Z/m0Z0 G dd dZ1G dd de1Z2G dd de1Z3G dd de3Z4G dd de3Z5G d d! d!e3Z6G d"d# d#e3Z7G d$d% d%e1Z8G d&d' d'e1Z9G d(d) d)e1Z:G d*d+ d+e1Z;G d,d- d-e1Z<G d.d/ d/e1Z=G d0d1 d1e1Z>G d2d3 d3e3Z?G d4d5 d5e3Z@G d6d7 d7e3ZAG d8d9 d9ZBG d:d; d;e"ZCeDd<krd dlEZEd dlZeEjFd=d>ZGeGjHd?d@dAdB eGjHdCdDdEdFddGdH eGjHdIdJdKdLdMdN eGjHdOdPdQddQdN eGjHdRdSdTdFdUdV eGjHdWdXeIdYddZd[ eGjHd\d]d^dFd_dV eGjHd`dadbdFdcdV eGJ ZKd ddlLmZ eKjMdekrBejNO ZPn:eQeKjMdfdgdhZReRO ZPW d   n1 sr0    Y  eCePeKjSrdindjeKjTeKjUeKjVdkZWeKjXrd dlYZYd dlZZZeY[ Z\ee\eKj]eKj^dlZe_eW eZ`e\a  neeKj]eKj^dmdnZe_eW dS )o    )annotationsN)ClassVarDictIterableListOptionalTypeUnion)
MarkdownIt)Token)      )get_args)Table   box)
loop_first)Stack)ConsoleConsoleOptionsJustifyMethodRenderResult)Renderables)JupyterMixin)Panel)Rule)Segment)Style
StyleStack)Syntax)TextTextTypec                   @  s   e Zd ZU dZded< edddddd	Zd
ddddZd
dddddZd
ddddZ	d
dddddZ
ddddddZdS ) MarkdownElementTzClassVar[bool]new_line
'Markdown'r   'MarkdownElement'markdowntokenreturnc                 C  s   |  S )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
         clsr(   r)   r+   r+   Z/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/rich/markdown.pycreate!   s    zMarkdownElement.create'MarkdownContext'Nonecontextr*   c                 C  s   dS )zuCalled when the node is entered.

        Args:
            context (MarkdownContext): The markdown context.
        Nr+   selfr3   r+   r+   r.   on_enter.   s    zMarkdownElement.on_enterr"   r3   textr*   c                 C  s   dS )zpCalled when text is parsed.

        Args:
            context (MarkdownContext): The markdown context.
        Nr+   r5   r3   r8   r+   r+   r.   on_text5   s    zMarkdownElement.on_textc                 C  s   dS )zwCalled when the parser leaves the element.

        Args:
            context (MarkdownContext): [description]
        Nr+   r4   r+   r+   r.   on_leave<   s    zMarkdownElement.on_leaveboolr3   childr*   c                 C  s   dS )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+   r5   r3   r>   r+   r+   r.   on_child_closeC   s    zMarkdownElement.on_child_closez	'Console'z'ConsoleOptions'z'RenderResult'consoleoptionsr*   c                 C  s   dS )Nr+   r+   r5   rB   rC   r+   r+   r.   __rich_console__S   s    z MarkdownElement.__rich_console__N)__name__
__module____qualname__r$   __annotations__classmethodr/   r6   r:   r;   r@   rE   r+   r+   r+   r.   r#      s   
r#   c                   @  s   e Zd ZdZdS )UnknownElementzAn unknown element.

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

    N)rF   rG   rH   __doc__r+   r+   r+   r.   rK   Y   s   rK   c                   @  sF   e Zd ZdZdZdddddZdddd	d
dZdddddZdS )TextElementz)Base class for elements that render text.noner0   r1   r2   c                 C  s   | | j| _tdd| _d S Nleftjustify)enter_style
style_namestyler!   r8   r4   r+   r+   r.   r6   g   s    zTextElement.on_enterr"   r7   c                 C  s"   | j |t|tr|jnd  d S N)r8   append
isinstancestrcurrent_styler9   r+   r+   r.   r:   k   s    zTextElement.on_textc                 C  s   |   d S rV   )leave_styler4   r+   r+   r.   r;   n   s    zTextElement.on_leaveN)rF   rG   rH   rL   rT   r6   r:   r;   r+   r+   r+   r.   rM   b   s
   rM   c                   @  sV   e Zd ZU dZdZded< eddddd	d
ZdddddZddddddZ	dS )	ParagraphzA Paragraph.zmarkdown.paragraphr   rR   r%   r   z'Paragraph'r'   c                 C  s   | |j p
ddS rO   rQ   r,   r+   r+   r.   r/   x   s    zParagraph.creater1   rR   r*   c                 C  s
   || _ d S rV   rQ   r5   rR   r+   r+   r.   __init__|   s    zParagraph.__init__r   r   r   rA   c                 c  s   | j | j_ | jV  d S rV   )rR   r8   rD   r+   r+   r.   rE      s    
zParagraph.__rich_console__N)
rF   rG   rH   rL   rT   rI   rJ   r/   r_   rE   r+   r+   r+   r.   r\   r   s   
r\   c                      s`   e Zd ZdZeddddddZdd	d
ddZdd	d fddZddddddZ  Z	S )Headingz
A heading.r%   r   z	'Heading'r'   c                 C  s
   | |j S rV   )tagr,   r+   r+   r.   r/      s    zHeading.creater0   r1   r2   c                 C  s   t  | _|| j d S rV   )r!   r8   rS   rT   r4   r+   r+   r.   r6      s    zHeading.on_enterrY   )ra   r*   c                   s    || _ d| | _t   d S )N	markdown.)ra   rT   superr_   )r5   ra   	__class__r+   r.   r_      s    zHeading.__init__r   r   r   rA   c                 c  sH   | j }d|_| jdkr*t|tjddV  n| jdkr>tdV  |V  d S )Ncenterh1zmarkdown.h1.border)r   rU   h2 )r8   rR   ra   r   r   ZHEAVYr!   )r5   rB   rC   r8   r+   r+   r.   rE      s    



zHeading.__rich_console__)
rF   rG   rH   rL   rJ   r/   r6   r_   rE   __classcell__r+   r+   rd   r.   r`      s   r`   c                   @  sN   e Zd ZdZdZeddddddZd	d	d
dddZddddddZdS )	CodeBlockz&A code block with syntax highlighting.zmarkdown.code_blockr%   r   z'CodeBlock'r'   c                 C  s(   |j pd}|dd }| |p d|jS )Nri    r   r8   )info	partition
code_theme)r-   r(   r)   Z	node_info
lexer_namer+   r+   r.   r/      s    
zCodeBlock.createrY   r1   )rp   themer*   c                 C  s   || _ || _d S rV   )rp   rq   )r5   rp   rq   r+   r+   r.   r_      s    zCodeBlock.__init__r   r   r   rA   c                 c  s.   t | j }t|| j| jddd}|V  d S )NTr   )rq   Z	word_wrappadding)rY   r8   rstripr    rp   rq   )r5   rB   rC   codesyntaxr+   r+   r.   rE      s
    zCodeBlock.__rich_console__N)	rF   rG   rH   rL   rT   rJ   r/   r_   rE   r+   r+   r+   r.   rk      s   rk   c                   @  sF   e Zd ZdZdZddddZddd	d
ddZddddddZdS )
BlockQuotezA block quote.zmarkdown.block_quoter1   r*   c                 C  s   t  | _d S rV   r   elementsr5   r+   r+   r.   r_      s    zBlockQuote.__init__r0   r&   r<   r=   c                 C  s   | j | dS NFry   rW   r?   r+   r+   r.   r@      s    zBlockQuote.on_child_closer   r   r   rA   c           	      c  sb   |j |jd d}|j| j|| jd}| j}td}td|}|D ]}|V  |E d H  |V  qBd S )N   widthrU   
u   ▌ )update	max_widthrender_linesry   rU   r   )	r5   rB   rC   render_optionslinesrU   r$   rr   liner+   r+   r.   rE      s    

zBlockQuote.__rich_console__N)rF   rG   rH   rL   rT   r_   r@   rE   r+   r+   r+   r.   rv      s
   rv   c                   @  s&   e Zd ZdZdZddddddZd	S )
HorizontalRulez%A horizontal rule to divide sections.Fr   r   r   rA   c                 c  s   |j ddd}t|dV  d S )Nzmarkdown.hrrN   defaultr   )	get_styler   )r5   rB   rC   rU   r+   r+   r.   rE      s    zHorizontalRule.__rich_console__N)rF   rG   rH   rL   r$   rE   r+   r+   r+   r.   r      s   r   c                   @  sB   e Zd ZdZddddZdddd	d
dZddddddZdS )TableElementz.MarkdownElement corresponding to `table_open`.r1   rw   c                 C  s   d | _ d | _d S rV   )headerbodyrz   r+   r+   r.   r_      s    zTableElement.__init__r0   r&   r<   r=   c                 C  s0   t |tr|| _nt |tr$|| _ntddS )Nz Couldn't process markdown table.F)rX   TableHeaderElementr   TableBodyElementr   RuntimeErrorr?   r+   r+   r.   r@      s    

zTableElement.on_child_closer   r   r   rA   c                 c  sz   t tjd}| jd ur>| jjd ur>| jjjD ]}||j q,| jd urp| jj	D ]}dd |jD }|j
|  qP|V  d S )Nr   c                 S  s   g | ]
}|j qS r+   )content).0elementr+   r+   r.   
<listcomp>      z1TableElement.__rich_console__.<locals>.<listcomp>)r   r   ZSIMPLE_HEAVYr   rowcellsZ
add_columnr   r   rowsZadd_row)r5   rB   rC   tablecolumnr   Zrow_contentr+   r+   r.   rE      s    
zTableElement.__rich_console__N)rF   rG   rH   rL   r_   r@   rE   r+   r+   r+   r.   r      s   r   c                   @  s0   e Zd ZdZddddZdddd	d
dZdS )r   z@MarkdownElement corresponding to `thead_open` and `thead_close`.r1   rw   c                 C  s
   d | _ d S rV   )r   rz   r+   r+   r.   r_     s    zTableHeaderElement.__init__r0   r&   r<   r=   c                 C  s   t |tsJ || _dS r{   )rX   TableRowElementr   r?   r+   r+   r.   r@     s    z!TableHeaderElement.on_child_closeNrF   rG   rH   rL   r_   r@   r+   r+   r+   r.   r     s   r   c                   @  s0   e Zd ZdZddddZdddd	d
dZdS )r   z@MarkdownElement corresponding to `tbody_open` and `tbody_close`.r1   rw   c                 C  s
   g | _ d S rV   )r   rz   r+   r+   r.   r_     s    zTableBodyElement.__init__r0   r&   r<   r=   c                 C  s   t |tsJ | j| dS r{   )rX   r   r   rW   r?   r+   r+   r.   r@   !  s    zTableBodyElement.on_child_closeNr   r+   r+   r+   r.   r     s   r   c                   @  s0   e Zd ZdZddddZdddd	d
dZdS )r   z:MarkdownElement corresponding to `tr_open` and `tr_close`.r1   rw   c                 C  s
   g | _ d S rV   )r   rz   r+   r+   r.   r_   ,  s    zTableRowElement.__init__r0   r&   r<   r=   c                 C  s   t |tsJ | j| dS r{   )rX   TableDataElementr   rW   r?   r+   r+   r.   r@   /  s    zTableRowElement.on_child_closeNr   r+   r+   r+   r.   r   )  s   r   c                   @  sH   e Zd ZdZeddddddZdd	d
ddZddd	dddZdS )r   z[MarkdownElement corresponding to `td_open` and `td_close`
    and `th_open` and `th_close`.r%   r   r&   r'   c                 C  s\   t |jdpd}d|v r"d}n d|v r0d}nd|v r>d}nd	}|ttv sRJ | |d
S )NrU   ri   ztext-align:rightrightztext-align:centerrf   ztext-align:leftrP   r   rQ   )rY   attrsgetr   r   )r-   r(   r)   rU   rR   r+   r+   r.   r/   ;  s    zTableDataElement.creater   r1   r]   c                 C  s   t d|d| _|| _d S )Nri   rQ   )r!   r   rR   r^   r+   r+   r.   r_   L  s    zTableDataElement.__init__r0   r"   r7   c                 C  s2   t |trt|n|}||j | j| d S rV   )rX   rY   r!   stylizerZ   r   Zappend_textr9   r+   r+   r.   r:   P  s    zTableDataElement.on_textN)rF   rG   rH   rL   rJ   r/   r_   r:   r+   r+   r+   r.   r   7  s
   r   c                   @  s\   e Zd ZdZeddddddZdd	d
dddZddddddZddddddZdS )ListElementzA list element.r%   r   z'ListElement'r'   c                 C  s   | |j t|jddS )Nstartr   )typeintr   r   r,   r+   r+   r.   r/   Y  s    zListElement.createrY   z
int | Noner1   )	list_type
list_startr*   c                 C  s   g | _ || _|| _d S rV   )itemsr   r   )r5   r   r   r+   r+   r.   r_   ]  s    zListElement.__init__r0   r&   r<   r=   c                 C  s   t |tsJ | j| dS r{   )rX   ListItemr   rW   r?   r+   r+   r.   r@   b  s    zListElement.on_child_closer   r   r   rA   c                 c  s~   | j dkr*| jD ]}|||E d H  qnP| jd u r8dn| j}|t| j }t| jD ]"\}}||||| |E d H  qVd S )Nbullet_list_openr   )r   r   render_bulletr   len	enumeraterender_number)r5   rB   rC   itemnumberlast_numberindexr+   r+   r.   rE   i  s    

zListElement.__rich_console__N)	rF   rG   rH   rL   rJ   r/   r_   r@   rE   r+   r+   r+   r.   r   V  s   r   c                   @  s\   e Zd ZdZdZddddZddd	d
ddZddddddZddddddddZdS )r   zAn item in a list.zmarkdown.itemr1   rw   c                 C  s   t  | _d S rV   rx   rz   r+   r+   r.   r_   }  s    zListItem.__init__r0   r&   r<   r=   c                 C  s   | j | dS r{   r|   r?   r+   r+   r.   r@     s    zListItem.on_child_closer   r   r   rA   c                 c  s   |j |jd d}|j| j|| jd}|jddd}td|}td|}td	}t|D ]&\}	}
|	rh|n|V  |
E d H  |V  qXd S )
Nr   r~   r   zmarkdown.item.bulletrN   r   u    • z   r   )r   r   r   ry   rU   r   r   r   )r5   rB   rC   r   r   Zbullet_styleZbulletrr   r$   firstr   r+   r+   r.   r     s    


zListItem.render_bulletr   )rB   rC   r   r   r*   c                 c  s   t t|d }|j|j| d}|j| j|| jd}|jddd}td}	td| |}
t| 	|d	 d |}t
|D ]&\}}|r|n|
V  |E d H  |	V  q|d S )
N   r~   r   zmarkdown.item.numberrN   r   r   rl   r   )r   rY   r   r   r   ry   rU   r   r   rjustr   )r5   rB   rC   r   r   Znumber_widthr   r   Znumber_styler$   rr   Znumeralr   r   r+   r+   r.   r     s    
zListItem.render_numberN)	rF   rG   rH   rL   rT   r_   r@   r   r   r+   r+   r+   r.   r   x  s   r   c                   @  s2   e Zd ZeddddddZdddd	d
ZdS )Linkr%   r   r&   r'   c                 C  s   |j dd}| |jt|S )Nhref#)r   r   r   rY   )r-   r(   r)   urlr+   r+   r.   r/     s    zLink.createrY   )r8   r   c                 C  s   t || _|| _d S rV   )r!   r8   r   )r5   r8   r   r+   r+   r.   r_     s    
zLink.__init__N)rF   rG   rH   rJ   r/   r_   r+   r+   r+   r.   r     s   r   c                      sj   e Zd ZdZdZeddddddZd	d
dd fddZddd fddZddddddZ	  Z
S )	ImageItemz#Renders a placeholder for an image.Fr%   r   r&   r'   c                 C  s   | t |jdd|jS )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
        srcri   )rY   r   r   
hyperlinksr,   r+   r+   r.   r/     s    zImageItem.createrY   r<   r1   )destinationr   r*   c                   s    || _ || _d | _t   d S rV   )r   r   linkrc   r_   )r5   r   r   rd   r+   r.   r_     s    zImageItem.__init__r0   r2   c                   s&   |j j| _tdd| _t | d S rO   )rZ   r   r!   r8   rc   r6   r4   rd   r+   r.   r6     s    
zImageItem.on_enterr   r   r   rA   c                 c  sd   t | jp| jpd d}| jp6t| jdddd }| jrH|| tj	d|ddd}|V  d S )	Nr   /r   u   🌆 rl   ri   )end)
r   r   r   r8   r!   striprsplitr   r   assemble)r5   rB   rC   
link_styletitler8   r+   r+   r.   rE     s    "
zImageItem.__rich_console__)rF   rG   rH   rL   r$   rJ   r/   r_   r6   rE   rj   r+   r+   rd   r.   r     s   r   c                   @  sl   e Zd ZdZddddddd	d
ddZeddddZddd	dddZdddddZddddZ	dS )MarkdownContextz!Manages the console render state.Nmonokair   r   r   Optional[str]rY   r1   )rB   rC   rU   inline_code_lexerinline_code_themer*   c                 C  s@   || _ || _t|| _t | _d | _|d ur<td||d| _d S )Nri   )rq   )rB   rC   r   style_stackr   stack_syntaxr    )r5   rB   rC   rU   r   r   r+   r+   r.   r_     s    
zMarkdownContext.__init__rw   c                 C  s   | j jS )z>Current style which is the product of all styles on the stack.)r   currentrz   r+   r+   r.   rZ     s    zMarkdownContext.current_style)r8   	node_typer*   c                 C  sZ   |dv rF| j durF| j |}|  | jj| tj|| jj	d n| jj| | dS )z#Called when the parser visits text.>   fenceZcode_inlineNr   )
r   Z	highlightrs   r   topr:   r!   r   r   r   )r5   r8   r   Zhighlight_textr+   r+   r.   r:     s    zMarkdownContext.on_textUnion[str, Style])rT   r*   c                 C  s"   | j j|dd}| j| | jS )zEnter a style context.rN   r   )rB   r   r   pushrZ   )r5   rT   rU   r+   r+   r.   rS     s    zMarkdownContext.enter_stylec                 C  s   | j  }|S )zLeave a style context.)r   pop)r5   rU   r+   r+   r.   r[     s    
zMarkdownContext.leave_style)Nr   )
rF   rG   rH   rL   r_   propertyrZ   r:   rS   r[   r+   r+   r+   r.   r     s     r   c                   @  s   e Zd ZU dZeeeeeee	e	e
eeeeeeedZded< h dZdd
d
dddddddddZdddddZddddddZdS )Markdowna  A Markdown renderable.

    Args:
        markup (str): A string containing markdown.
        code_theme (str, optional): Pygments theme for code blocks. Defaults to "monokai".
        justify (JustifyMethod, optional): Justify value for paragraphs. Defaults to None.
        style (Union[str, Style], optional): Optional style to apply to markdown.
        hyperlinks (bool, optional): Enable hyperlinks. Defaults to ``True``.
        inline_code_lexer: (str, optional): Lexer to use if inline code highlighting is
            enabled. Defaults to None.
        inline_code_theme: (Optional[str], optional): Pygments theme for inline code
            highlighting, or None for no highlighting. Defaults to None.
    )Zparagraph_openZheading_openr   
code_blockZblockquote_openhrr   Zordered_list_openZlist_item_openimageZ
table_openZ
tbody_openZ
thead_openZtr_openZtd_openZth_openz*ClassVar[Dict[str, Type[MarkdownElement]]]ry   >   strongrt   emsr   NrN   TrY   zOptional[JustifyMethod]r   r<   r   r1   )markupro   rR   rU   r   r   r   r*   c           	      C  sP   t  dd}|| _||| _|| _|| _|| _|| _|| _	|pH|| _
d S )NZstrikethroughr   )r
   enabler   parseparsedro   rR   rU   r   r   r   )	r5   r   ro   rR   rU   r   r   r   parserr+   r+   r.   r_   +  s    
zMarkdown.__init__zIterable[Token])tokensr*   c                 c  sJ   |D ]@}|j dk}|jdk}|jr>|s>|s>| |jE dH  q|V  qdS )zFlattens the token stream.r   imgN)r   ra   children_flatten_tokens)r5   r   r)   Zis_fenceZis_imager+   r+   r.   r   ?  s    

zMarkdown._flatten_tokensr   r   r   rA   c                 c  s~  |j | jdd}|jdd}t|||| j| jd}| j}| j}d}t	 }| 
|D ]"}	|	j}
|	j}|	jdk}|	jdk}|	jd	k}|
d
kr||	j|
 qT|
dkr|d|
 qT|
dkr|d|
 qT|
dkr*t|	jdd}| jr|j ddd}|t|d7 }|| n|jt| |	 qT|
dkr| jrF|  n|j }t|ts`J |j ddd}|| ||jj|
 |  |d|
 |j ddd}|| ||j|
 |  |d|
 qT||v rN|
dkrN|
dkrN|r|d|  n>|r|  n.|d|  |	jrD||	j|
 |  qT| j |	jp`t!}|| |	}|sz|r|j| |"| |r|j }|j p|jo|jj#$||}|r^|r|V  |%||j&E dH  nt|r^|j  |	j}|dur||| |j p6|jo6|jj#$||}|r^|rJ|V  |%||j&E dH  |sh|rT|'| |j(}qTdS )zRender markdown to the console.rN   r   N)height)r   r   Fr   r   r   r8   Z	hardbreakr   Z	softbreakrl   Z	link_openr   ri   zmarkdown.link_urlr   Z
link_closezmarkdown.linkz ()r   r   rb   ))r   rU   r   r   r   r   r   inlinesr   r   r   r   ra   Znestingr:   r   rY   r   r   r   r   rS   r   r   r   r/   r[   r   rX   r8   plainr   ry   rK   r6   r   r@   renderrC   r;   r$   )r5   rB   rC   rU   r3   r   Zinline_style_tagsr$   Z_new_line_segmentr)   r   ra   ZenteringZexitingZself_closingr   r   r   Zlink_url_styleZelement_classZshould_renderr8   r+   r+   r.   rE   I  s    


















zMarkdown.__rich_console__)r   NrN   TNN)rF   rG   rH   rL   r\   r`   rk   rv   r   r   r   r   r   r   r   r   r   ry   rI   r   r_   r   rE   r+   r+   r+   r.   r     s8   
      
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-themero   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	--justifyrR   zenable full text justifyz-pz--pagepagezuse pager to scroll output)r   -rtzutf-8)encodingfullrP   )rR   ro   r   r   )fileforce_terminalr   T)r   r   record)b
__future__r   systypingr   r   r   r   r   r   r	   Zmarkdown_itr
   Zmarkdown_it.tokenr   version_infor   Ztyping_extensionsZ
rich.tabler   ri   r   Z_loopr   _stackr   rB   r   r   r   r   Z
containersr   Zjupyterr   Zpanelr   Zruler   segmentr   rU   r   r   ru   r    r8   r!   r"   r#   rK   rM   r\   r`   rk   rv   r   r   r   r   r   r   r   r   r   r   r   r   rF   argparseArgumentParserr   add_argumentr   
parse_argsargsZrich.consoler   stdinreadZmarkdown_bodyopenZmarkdown_filerR   ro   r   r   r(   r   iopydocStringIOZfileior   r   printZpagergetvaluer+   r+   r+   r.   <module>   s   $
;	##",(0 ;
(


