ó
    �®žj^  ã                  ó°   • S SK Jr  S SKJrJrJrJr  S SKJrJ	r	  S SK
JrJrJr  \(       a  S SKJr   S SKJrJrJrJrJr   " S S5      rg	! \ a     Nf = f)
é    )Úannotations)ÚTYPE_CHECKINGÚCallableÚListÚOptional)Ú	TableCellÚ	TableData)ÚMACROS_ESCAPEDÚTABLE_MACROS_IGNOREÚTABLE_MACROS_RULE)ÚAny)ÚLatexCharsNodeÚLatexEnvironmentNodeÚLatexMacroNodeÚLatexWalkerÚLatexWalkerParseErrorc                  óX   • \ rS rSr\(       a  SS jr            SS jrS	S jrSrg)
ÚTableHelperMixiné   c                ó   • g ©N© )ÚselfÚnodess     Ú^/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/backend/latex/utils/table.pyÚ_nodes_to_textÚTableHelperMixin._nodes_to_text"   s   € °Só    c                óR  • UR                   S:X  a  U" 5         g UR                   S:X  a¹  [        US5      (       a–  UR                  b‰  X!R                  S  nU" U5      n[        U5      S:¼  aR   [	        US   5      n	US   n
U
(       a0   [        U
SS	9nUR                  5       u  n  nUR                  U5        U" U	S9  g UR                  U5        g UR                  U5        g UR                   S:X  a¹  [        US5      (       a–  UR                  b‰  X!R                  S  nU" U5      n[        U5      S:¼  aR   [	        US   5      nUS   n
U
(       a0   [        U
SS	9nUR                  5       u  n  nUR                  U5        U" US9  g UR                  U5        g UR                  U5        g UR                   [        ;   a  g UR                   [        ;   a  g UR                   S:X  a  U" 5         g UR                   [        ;   a  UR                  U5        g UR                  U5        g ! [
        [        4 a    Sn	 GN¿f = f! [         a    UR                  [        U
S
95         GN¬f = f! [
        [        4 a    Sn GN8f = f! [         a    UR                  [        U
S
95         GN%f = f)NÚ\ÚmulticolumnÚposé   r   é   é   T)Útolerant_parsing©Úchars)Úcol_spanÚmultirow)Úrow_spanÚ&)Ú	macronameÚhasattrr"   ÚlenÚintÚ
ValueErrorÚ	TypeErrorr   Úget_latex_nodesÚextendr   Úappendr   r   r   r
   )r   ÚnÚsource_latexÚcurrent_cell_nodesÚfinish_cell_fnÚfinish_row_fnÚparse_brace_args_fnÚ	remainingÚargsÚnum_colsÚcontent_textÚwÚparsedÚ_Únum_rowss                  r   Ú_process_table_macro_nodeÚ*TableHelperMixin._process_table_macro_node$   sm  € ð �;‰;˜$ÓÙ�Oà�[‰[˜MÓ)Ü�q˜%× Ñ  Q§U¡UÑ%6Ø(¯©¨Ð1�	Ù*¨9Ó5�Ü�t“9 “>ð%Ü#& t¨A¡w£<˜ð $(¨¡7�LÞ#ðÜ +¨LÈ4Ñ P˜AØ+,×+<Ñ+<Ó+>™L˜F A qØ.×5Ñ5°fÔ=ñ
 #¨HÓ5à&×-Ñ-¨aÕ0à"×)Ñ)¨!Õ,à�[‰[˜JÓ&Ü�q˜%× Ñ  Q§U¡UÑ%6Ø(¯©¨Ð1�	Ù*¨9Ó5�Ü�t“9 “>ð%Ü#& t¨A¡w£<˜ð $(¨¡7�LÞ#ðÜ +¨LÈ4Ñ P˜AØ+,×+<Ñ+<Ó+>™L˜F A qØ.×5Ñ5°fÔ=ñ
 #¨HÓ5à&×-Ñ-¨aÕ0à"×)Ñ)¨!Õ,à�[‰[Ô-Ó-ØØ�[‰[Ô/Ó/ØØ�[‰[˜CÓÙÕØ�[‰[œNÓ*Ø×%Ñ% aÕ(à×%Ñ% aÕ(øôi '¬	Ð2ó %Ø#$›ð%ûô  5ó Ø.×5Ñ5Ü .°\Ñ B÷ðûô" '¬	Ð2ó %Ø#$›ð%ûô  5ó Ø.×5Ñ5Ü .°\Ñ B÷ðúsH   Á-H% Â/H> Ä6I' Å/J  È%H;È:H;È>"I$É#I$É'I=É<I=Ê "J&Ê%J&c           
     ó†  ^ ^^^^• / m/ m/ mUR                  5       nSS jnSSUUU 4S jjjmUUUU4S jnUR                  c  g UR                   GH  n[        U[        5      (       a  T R	                  UUTTUU5        M1  [        U[
        5      (       a†  UR                  nSU;   aa  UR                  S5      n[        U5       H?  u  p‰U	(       a  TR                  [        U	S95        U[        U5      S-
  :  d  M8  T" 5         MA     M¹  TR                  U5        MÌ  [        US5      (       a  UR                  S:X  a	  T" 5         Mö  TR                  U5        GM
     U" 5         T(       d  g [        T5      n
T(       a  [        S T 5       5      OS	n/ n[        T5       H—  u  p�[        U5       Hƒ  nU[        U5      :  a  XÞ   n[        US
S5      (       a  M*  O[!        SS	S	S	S	S9nX�l        Xïl        [        USS5      n[        USS5      nUU-   Ul        UU-   Ul        UR                  U5        M…     M™     [+        X«US9$ )Nc                óF  • / nSnU[        U 5      :  a�  X   S:X  ao  SnUS-   nUS-  nU[        U 5      :  a=  US:”  a7  X   S:X  a  US-  nOX   S:X  a  US-  nUS-  nU[        U 5      :  a  US:”  a  M7  UR                  XUS-
   5        OUS-  nU[        U 5      :  a  M�  U$ )Nr   Ú{r$   Ú})r/   r5   )Útextr=   ÚiÚdepthÚstarts        r   Úparse_brace_argsÚ7TableHelperMixin._parse_table.<locals>.parse_brace_argst   s¼   € ØˆDØˆAØ”c˜$“i“-Ø‘7˜c“>Ø�EØ ™E�EØ˜‘F�AØœc $›i›-¨E°A«IØ™7 c›>Ø! Q™J™EØ!™W¨›^Ø! Q™J˜EØ˜Q™˜ð œc $›i›-¨E°A­Ið —K‘K ¨Q°©UÐ 3Õ4à˜‘F�Að ”c˜$“i•-ð ˆKr   r$   c           	     ó,  >• TR                  T5      R                  5       n[        USSSSS9nXl        Xl        TR                  U5        TR                  5         [        U S-
  5       H(  n[        SSSSSS9nSUl        TR                  U5        M*     g )Nr   ©rJ   Ústart_row_offset_idxÚend_row_offset_idxÚstart_col_offset_idxÚend_col_offset_idxr$   Ú T)	r   Ústripr   Ú	_col_spanÚ	_row_spanr5   ÚclearÚrangeÚ_is_placeholder)	r)   r+   rJ   ÚcellrB   Úplaceholderr8   Úcurrent_rowr   s	         €€€r   Úfinish_cellÚ2TableHelperMixin._parse_table.<locals>.finish_cell‡   s    ø€ Ø×&Ñ&Ð'9Ó:×@Ñ@ÓBˆDÜØØ%&Ø#$Ø%&Ø#$ñˆDð &ŒNØ%ŒNØ×Ñ˜tÔ$Ø×$Ñ$Ô&ä˜8 a™<Ö(�Ü'ØØ)*Ø'(Ø)*Ø'(ñ�ð /3�Ô+Ø×"Ñ" ;Ö/ò )r   c                 óx   >• T (       a  T" 5         T(       a  TR                  TS S  5        TR                  5         g r   )r5   rZ   )r8   r_   r`   Úrowss   €€€€r   Ú
finish_rowÚ1TableHelperMixin._parse_table.<locals>.finish_row    s*   ø€ Þ!Ù”ÞØ—‘˜K©˜NÔ+Ø×ÑÕr   r,   r'   Úspecials_charsc              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr   )r/   )Ú.0Úrows     r   Ú	<genexpr>Ú0TableHelperMixin._parse_table.<locals>.<genexpr>Ë   s   é € Ð0ª4 C”s˜3—x�xª4ùs   ‚r   r\   FrV   rQ   rX   rY   )rC   r>   Útable_cells)rJ   ÚstrÚreturnÚlist)r$   r$   )r)   r0   r+   r0   )Úlatex_verbatimÚnodelistÚ
isinstancer   rD   r   r(   ÚsplitÚ	enumerater5   r/   r.   rf   Úmaxr[   Úgetattrr   rR   rT   rS   rU   r	   )r   Únoder7   rN   rd   r6   rJ   ÚpartsrK   ÚpartrC   r>   Ú
flat_cellsri   Újr]   r)   r+   r8   r_   r`   rc   s   `                 @@@@r   Ú_parse_tableÚTableHelperMixin._parse_tablem   s  ü€ ØˆØˆØ#%Ðà×*Ñ*Ó,ˆô	÷&	0ó 	0÷2	 ð 	 ð �=‰=Ñ Øà—•ˆAÜ˜!œ^×,Ñ,Ø×.Ñ.ØØ Ø&ØØØ$öô ˜Aœ~×.Ñ.Ø—w‘w�Ø˜$“;Ø ŸJ™J s›O�EÜ#,¨UÖ#3™˜ÞØ.×5Ñ5´nÈ4Ñ6PÔQØœs 5›z¨A™~Õ-Ù'žMó	 $4ð '×-Ñ-¨aÖ0ä˜1Ð.×/Ñ/°A×4DÑ4DÈÓ4KÙ–Mà&×-Ñ-¨a×0ñ3 ñ6 	ŒæØä�t“9ˆÞ48”3Ñ0©4Ó0Ô0¸aˆàˆ
Ü –o‰FˆAÜ˜8–_�Ø”s˜3“x“<Ø™6�DÜ˜tÐ%6¸×>Ñ>Ù ð ?ô %ØØ-.Ø+,Ø-.Ø+,ñ�Dð -.Ô)Ø,-Ô)ä" 4¨°aÓ8�Ü" 4¨°aÓ8�Ø*+¨h©,�Ô'Ø*+¨h©,�Ô'à×!Ñ! $Ö'ó- %ñ &ô2  (È:ÑVÐVr   r   N)r   r   rn   rm   )r6   r   r7   rm   r8   r   r9   zCallable[..., None]r:   zCallable[[], None]r;   zCallable[[str], List[str]])rw   r   rn   zTableData | None)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   rD   r|   Ú__static_attributes__r   r   r   r   r      sV   † Þä8ðG)àðG)ð ðG)ð !ð	G)ð
 ,ðG)ð *ðG)ð 8ôG)÷RzWr   r   N)Ú
__future__r   Útypingr   r   r   r   Údocling_core.types.doc.documentr   r	   Údocling.backend.latex.constantsr
   r   r   r   Úpylatexenc.latexwalkerr   r   r   r   r   ÚImportErrorr   r   r   r   Ú<module>r‰      sV   ðõ #ç :Ó :ç @÷ñ ö Ýð		÷õ ÷HWò HWøð	 ó 	Ùð	ús   ³A ÁAÁA