
    hZ                        S SK r S SKJrJrJrJrJrJrJrJ	r	  SSK
Jr  \(       a  SSKJr  SSKJrJr  SSKJr  / SQrS	rS
r\ R,                  " S5      r\ R,                  " S\-   S-   5      r\ R,                  " S5      r\ R,                  " S5      r\ R,                  " S5      rSSS\\   SSS\\   4S jrSSS\\   SSS\\   4S jrS\S\S\	\S   \\\\4   \\   4   4   4S jr S\S\\   S\\\\4      4S jr!S S!S\S\4S" jr"S S!S\S\4S# jr#S S!S\S\4S$ jr$S S!S\S\4S% jr%S+S S!S\S\\   S&\&S\4
S' jjr'S,S( jr(S,S) jr)S,S* jr*g)-    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                    UR                  5       nUR                  S5      nUR                  S5      n[        XE5      u  pgU(       d  g Uc   e/ nUR                  S5      n	U	R                  5        HV  n
[        R                  U
5      nU(       d    g [        UR                  S5      U5      nU(       d    g UR                  U5        MX     USUS./nUR                  SUS.5        U$ )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                 hC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\mistune/plugins/table.pyparse_tabler4   +   s    
%%'CWW\"FGGM"E"61MED77< D!d#288A;/C " $?@H	X>?J    c                 n   UR                  S5      nUR                  S5      n[        X45      u  pVU(       d  g Uc   e/ nUR                  S5      nUR                  5        H(  n	[        X5      n
U
(       d    g UR	                  U
5        M*     USUS./nUR                  SUS.5        UR                  5       $ )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"61MED77>"D!4(C	 " $?@H	X>?557Nr5   r*   r+   NNc           	          [         R                  U 5      n[         R                  U5      n[        U5      [        U5      :w  a  g[        U5       Hi  u  pE[        R                  U5      (       a  SX4'   M%  [        R                  U5      (       a  SX4'   ME  [        R                  U5      (       a  SX4'   Me  S X4'   Mk     [        U5       VVs/ s H  u  pFSUR                  5       X4   SS.S.PM      nnnS	US
.nX4$ s  snnf )Nr;   centerleftright
table_cellTr+   headr   r0   attrsr   r   )	
CELL_SPLITsplitlen	enumerateALIGN_CENTERr%   
ALIGN_LEFTALIGN_RIGHTstrip)	r*   r+   headersr-   ivr0   r   r,   s	            r3   r"   r"   Y   s    v&Ge$F
7|s6{"&!a   FIa  FIq!!FIFI " !))GA tzz|	[_>`a)   "x8E=s   
%C:r0   r-   c           	          [         R                  U 5      n[        U5      [        U5      :w  a  g [        U5       VV s/ s H  u  p0SU R	                  5       X   SS.S.PM      nnn SUS.$ s  sn nf )Nr@   FrA   rC   	table_rowr   )rE   rF   rG   rH   rL   )r0   r-   cellsrN   r   s        r3   r&   r&   q   su    T"E
5zS[  !''GA tzz|	[`>ab'    X66	s   %A*rendererr   c                     SU-   S-   $ )Nz<table>
z	</table>
 rS   r0   s     r3   render_tablerW   }       ,,r5   c                     SU-   S-   $ )Nz<thead>
<tr>
z</tr>
</thead>
rU   rV   s     r3   render_table_headrZ      s    t#&999r5   c                     SU-   S-   $ )Nz<tbody>
z	</tbody>
rU   rV   s     r3   render_table_bodyr\      rX   r5   c                     SU-   S-   $ )Nz<tr>
z</tr>
rU   rV   s     r3   render_table_rowr^      s    d?Y&&r5   rB   c                 j    U(       a  SnOSnSU-   nU(       a  USU-   S-   -  nUS-   U-   S-   U-   S-   $ )	Nthtdz  <z style="text-align:">z</z>
rU   )rS   r0   r+   rB   taghtmls         r3   render_table_cellrf      sN    3;D%-33#:t#c)E11r5   c                 .   U R                   R                  S[        [        SS9  U R                   R                  S[        [
        SS9  U R                  (       a  U R                  R                  S:X  a  U R                  R                  S[        5        U R                  R                  S[        5        U R                  R                  S[        5        U R                  R                  S[        5        U R                  R                  S	[        5        g
g
g
)a9  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nptablere   r   r   rQ   r@   N)r   registerTABLE_PATTERNr4   NP_TABLE_PATTERNr:   rS   NAMErW   rZ   r\   r^   rf   mds    r3   r   r      s     HHg}k+NHHi!1=U	{{r{{''61
Wl3
\+<=
\+<=
[*:;
\+<= 2{r5   c                     U R                   R                  U R                   R                  SSS9  U R                   R                  U R                   R                  SSS9  g)z$Enable table plugin in block quotes.r   rh   ri   rk   N)r   insert_ruleblock_quote_rulesrp   s    r3   r   r      sH    HH33W[QHH33Y{Sr5   c                     U R                   R                  U R                   R                  SSS9  U R                   R                  U R                   R                  SSS9  g)zEnable table plugin in list.r   rh   ri   rk   N)r   rs   
list_rulesrp   s    r3   r   r      sH    HH,,gkJHH,,iLr5   )NF)rq   r   r   N)+retypingr   r   r   r   r   r   r	   r
   helpersr   block_parserr   corer   r   markdownr   __all__rm   rn   compiler$   rE   rI   rJ   rK   strintr4   r:   r"   r&   rW   rZ   r\   r^   boolrf   r   r   r   rU   r5   r3   <module>r      s   		 	 	 (*/# 7: 0  ZZ12
ZZ 11G;<
zz-(ZZ%
jj&} 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-> - - -: :c :c :- -c -c -'~ 'S 'S '
2 
2c 
2(3- 
2^b 
2or 
2>4TMr5   