
    MhZ                        d dl Z d dlmZmZmZmZmZmZmZm	Z	 ddl
mZ erddlmZ ddlmZmZ ddlmZ g dZd	Zd
Z e j        d          Z e j        dez   dz             Z e j        d          Z e j        d          Z e j        d          Zdddee         dddee         fdZdddee         dddee         fdZdedede	ed         eeeef         ee         f         f         fdZ dedee         deeeef                  fdZ!d d!dedefd"Z"d d!dedefd#Z#d d!dedefd$Z$d d!dedefd%Z%d.d d!dedee         d'e&def
d(Z'd/d+Z(d/d,Z)d/d-Z*dS )0    N)TYPE_CHECKINGAnyDictListMatchOptionalTupleUnion   )PREVENT_BACKSLASH)BlockParser)BaseRenderer
BlockState)Markdown)tabletable_in_quotetable_in_listz^ {0,3}\|(?P<table_head>.+)\|[ \t]*\n {0,3}\|(?P<table_align> *[-:]+[-| :]*)\|[ \t]*\n(?P<table_body>(?: {0,3}\|.*\|[ \t]*(?:\n|$))*)\n*zv^ {0,3}(?P<nptable_head>\S.*\|.*)\n {0,3}(?P<nptable_align>[-:]+ *\|[-| :]*)\n(?P<nptable_body>(?:.*\|.*(?:\n|$))*)\n*z^ {0,3}\|(.+)\|[ \t]*$z *z\| *z
^ *:-+: *$z	^ *:-+ *$z	^ *-+: *$blockr   mstater   returnc                 
   |                                 }|                    d          }|                    d          }t          ||          \  }}|sd S |J g }|                    d          }	|	                                D ]^}
t                              |
          }|s d S t          |                    d          |          }|s d S |                    |           _|d|dg}|                    d|d           |S )N
table_headtable_align
table_body   typechildrenr   )	endgroup_process_thead
splitlines
TABLE_CELLmatch_process_rowappendappend_token)r   r   r   posheaderaligntheadalignsrowsbodytextm2rowr   s                 U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mistune/plugins/table.pyparse_tabler4   +   s   
%%''CWW\""FGGM""E"6511ME6 tD77<  D!!  d## 	44288A;;// 	44C$??@H	X>>???J    c                    |                     d          }|                     d          }t          ||          \  }}|sd S |J g }|                     d          }|                                D ],}	t          |	|          }
|
s d S |                    |
           -|d|dg}|                    d|d           |                                S )Nnptable_headnptable_alignnptable_bodyr   r   r   )r!   r"   r#   r&   r'   r(   r    )r   r   r   r*   r+   r,   r-   r.   r/   r0   r2   r   s               r3   parse_nptabler:   D   s    WW^$$FGGO$$E"6511ME6 tD77>""D!!  4(( 	44C$??@H	X>>???5577Nr5   r*   r+   NNc                    t                               |           }t                               |          t          |          t                    k    rdS t                    D ]j\  }}t                              |          rd|<   %t                              |          rd|<   Et                              |          rd|<   ed |<   kfdt          |          D             }d|d}|fS )Nr;   centerleftrightc                 X    g | ]&\  }}d |                                 |         ddd'S )
table_cellTr+   headr   r0   attrsstrip.0ir0   r-   s      r3   
<listcomp>z"_process_thead.<locals>.<listcomp>i   sL       At tzz||q	[_>`>`aa  r5   r   r   )
CELL_SPLITsplitlen	enumerateALIGN_CENTERr%   
ALIGN_LEFTALIGN_RIGHT)r*   r+   headersrJ   vr   r,   r-   s          @r3   r"   r"   Y   s   v&&Ge$$F
7||s6{{""z&!!  1a   	 F1IIa   	F1IIq!! 	F1IIF1II    ))  H "x88E&=r5   r0   r-   c                     t                               |           }t          |          t                    k    rd S fdt          |          D             }d|dS )Nc                 X    g | ]&\  }}d |                                 |         ddd'S )rA   FrB   rD   rF   rH   s      r3   rK   z _process_row.<locals>.<listcomp>v   sL       At tzz||q	[`>a>abb  r5   	table_rowr   )rL   rM   rN   rO   )r0   r-   cellsr   s    `  r3   r&   r&   q   sr    T""E
5zzS[[  t    ''  H  X666r5   rendererr   c                     d|z   dz   S )Nz<table>
z	</table>
 rY   r0   s     r3   render_tabler]   }       ,,r5   c                     d|z   dz   S )Nz<thead>
<tr>
z</tr>
</thead>
r[   r\   s     r3   render_table_headr`      s    t#&999r5   c                     d|z   dz   S )Nz<tbody>
z	</tbody>
r[   r\   s     r3   render_table_bodyrb      r^   r5   c                     d|z   dz   S )Nz<tr>
z</tr>
r[   r\   s     r3   render_table_rowrd      s    d?Y&&r5   FrC   c                 V    |rd}nd}d|z   }|r|d|z   dz   z  }|dz   |z   dz   |z   dz   S )	Nthtdz  <z style="text-align:">z</z>
r[   )rY   r0   r+   rC   taghtmls         r3   render_table_cellrl      sZ     3;D 4%-33#:t#c)E11r5   mdr   c                    | j                             dt          t          d           | j                             dt          t
          d           | j        r| j        j        dk    r| j                            dt                     | j                            dt                     | j                            dt                     | j                            dt                     | j                            d	t                     d
S d
S d
S )a]  A mistune plugin to support table, spec defined at
    https://michelf.ca/projects/php-markdown/extra/#table

    Here is an example:

    .. code-block:: text

        First Header  | Second Header
        ------------- | -------------
        Content Cell  | Content Cell
        Content Cell  | Content Cell

    :param md: Markdown instance
    r   	paragraphbeforenptablerk   r   r   rW   rA   N)r   registerTABLE_PATTERNr4   NP_TABLE_PATTERNr:   rY   NAMEr]   r`   rb   rd   rl   rm   s    r3   r   r      s     Hg}k+NNNHi!1=UUU	{ >r{'611
Wl333
\+<===
\+<===
[*:;;;
\+<=====> >11r5   c                     | j                             | j         j        dd           | j                             | j         j        dd           dS )z$Enable table plugin in block quotes.r   ro   rp   rr   N)r   insert_ruleblock_quote_rulesrw   s    r3   r   r      sL    H3W[QQQH3Y{SSSSSr5   c                     | j                             | j         j        dd           | j                             | j         j        dd           dS )zEnable table plugin in list.r   ro   rp   rr   N)r   ry   
list_rulesrw   s    r3   r   r      sL    H,gkJJJH,iLLLLLr5   )NF)rm   r   r   N)+retypingr   r   r   r   r   r   r	   r
   helpersr   block_parserr   corer   r   markdownr   __all__rt   ru   compiler$   rL   rP   rQ   rR   strintr4   r:   r"   r&   r]   r`   rb   rd   boolrl   r   r   r   r[   r5   r3   <module>r      s   					 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ( ' ' ' ' ' $******////////###### 7
6
6: 0  RZ122
RZ 11G;<<
rz-((RZ%%
bj&&} s L XVY]    2 5: l xX[}    *3 s uU:5FdSVX[S[n^bcf^gNgHh5h/i    0	7s 	7DI 	7(4S>2J 	7 	7 	7 	7-> - - - - - -: :c :c : : : :- -c -c - - - -'~ 'S 'S ' ' ' '
2 
2 
2c 
2(3- 
2^b 
2or 
2 
2 
2 
2> > > >4T T T TM M M M M Mr5   