ó
    �®žjß  ã                  óÔ   • S SK Jr  S SKrS SKJrJrJrJr  S SKJ	r	J
r
JrJr  S SKJrJrJrJrJr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)
é    )ÚannotationsN)ÚTYPE_CHECKINGÚCallableÚListÚOptional)ÚDocItemLabelÚDoclingDocumentÚ
FormattingÚNodeItem)ÚMACROS_CITATIONÚMACROS_COLOR_INLINEÚMACROS_ESCAPEDÚMACROS_IGNOREDÚMACROS_SPACINGÚMACROS_STRUCTURALÚMACROS_TEXT_FORMATTINGÚMACROS_TEXT_STYLE)ÚAny)ÚLatexCharsNodeÚLatexEnvironmentNodeÚLatexGroupNodeÚLatexMacroNodeÚLatexMathNodec                  ó
  • \ rS rSr% \(       a9  S\S'   S\S'      S           SS jjrSS jrSS jr      SS	 jr	SS
 jr
              SS jr              SS jrSS jrSS jrSS jrSS jrSrg)ÚTextHelperMixiné*   zdict[str, str]Ú_custom_macroszdict[str, int]Ú_custom_macro_num_argsc                ó   • g ©N© )ÚselfÚnodesÚdocÚparentÚ
formattingÚ
text_labels         Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/backend/latex/utils/text.pyÚ_process_nodesÚTextHelperMixin._process_nodes/   s   € ð ó    c                ó   • g r    r!   )r"   Únodes     r(   Ú_extract_macro_argÚ"TextHelperMixin._extract_macro_arg7   s   € ¸r+   c                ó   • g r    r!   )r"   Ú	latex_strs     r(   Ú_expand_macrosÚTextHelperMixin._expand_macros8   s   € ¸r+   c                ó   • g r    r!   )r"   r-   Úfollowing_nodess      r(   Ú_expand_custom_macro_invocationÚ/TextHelperMixin._expand_custom_macro_invocation9   s   € à!r+   c                ó   • g r    r!   )r"   Úlatex_fragments     r(   Ú_parse_latex_fragment_to_textÚ-TextHelperMixin._parse_latex_fragment_to_text<   s   € ÈSr+   c                ón  • UR                   nSU;   a’  UR                  S5      n	U	S   R                  5       n
U
(       a  UR                  U
5        U" 5         U	SS   HE  nUR                  5       nU(       d  M  UR	                  UU=(       d    [
        R                  UUS9  MG     g UR                  U5        g )Nú

r   é   )r%   ÚlabelÚtextr&   )ÚcharsÚsplitÚstripÚappendÚadd_textr   Ú	PARAGRAPH)r"   r-   r$   r%   r&   r'   Útext_bufferÚflush_fnr@   ÚpartsÚ
first_partÚpartÚpart_strippeds                r(   Ú_process_chars_nodeÚ#TextHelperMixin._process_chars_node>   s    € ð �z‰zˆà�T‹>Ø—J‘J˜vÓ&ˆEà˜q™Ÿ™Ó)ˆJÞØ×"Ñ" :Ô.áŒJà˜a˜b›	�Ø $§
¡
£�ß �=Ø—L‘LØ%Ø(×B¬L×,BÑ,BØ*Ø#-ð	 !ó ò "ð ×Ñ˜tÕ$r+   c                ó(  • UR                   (       aK  U R                  U5      (       a5  U R                  UR                   5      nU(       a  UR                  U5        g g UR                   (       a%  U" 5         U R	                  UR                   X#XE5        g g r    )ÚnodelistÚ_is_text_only_groupÚ_nodes_to_textrD   r)   )	r"   r-   r$   r%   r&   r'   rG   rH   Ú
group_texts	            r(   Ú_process_group_nodeÚ#TextHelperMixin._process_group_node_   sl   € ð �=�=˜T×5Ñ5°d×;Ñ;Ø×,Ñ,¨T¯]©]Ó;ˆJÞØ×"Ñ" :Õ.ð à�]�]ÙŒJØ×Ñ §¡¨s¸JÕSð r+   c                óþ   • S[         R                  " U5       S[         R                  " U5       S3n[         R                  " X1[         R                  5      nU(       a  UR	                  S5      R                  5       $ U$ )Nz	\\begin\{z\}(?:\[.*?\])?(.*?)\\end\{z\}r>   )ÚreÚescapeÚsearchÚDOTALLÚgrouprC   )r"   r1   Úenv_nameÚpatternÚmatchs        r(   Ú_extract_verbatim_contentÚ)TextHelperMixin._extract_verbatim_contentq   sd   € Ø¤§	¢	¨(Ó 3Ð4Ð4PÔQS×QZÒQZÐ[cÓQdÐPeÐehÐiˆÜ—	’	˜'¬b¯i©iÓ8ˆÞØ—;‘;˜q“>×'Ñ'Ó)Ð)ØÐr+   c                óz  • SnUR                   [        [        -  ;   a  U R                  U5      nU=(       d    SU4$ UR                   [        ;   az  UR
                  (       ae  UR
                  R                  (       aJ  UR
                  R                  S   nUb.  [        US5      (       a  U R                  UR                  5      U4$ SU4$ UR                   [        ;   a  UR                  5       U4$ UR                   S:X  a  SU4$ UR                   S;   a  SU4$ UR                   S	:X  av  UR
                  (       aa  UR
                  R                  (       aF  UR
                  R                  S   nU(       a&  UR                  5       R                  S
5      nU S3U4$ SU4$ UR                   [        ;   a  UR                   U4$ UR                   U R                  ;   aS  U R                  X5      u  pƒU R                   R#                  UR                   S5      S:”  a  U R%                  U5      U4$ Xƒ4$ UR                   [&        ;   d  UR                   [(        ;   a  SU4$ / n	UR
                  (       a¾  UR
                  R                  (       a£  UR
                  R                   H‰  nUc  M  [        US5      (       a7  U R                  UR                  5      nU(       a  U	R+                  U5        MN  MP  UR                  5       R                  S5      nU(       d  Mx  U	R+                  U5        M‹     SR-                  U	5      U4$ )z>Return ``(text, consumed_following)`` for a single macro node.r   Ú éÿÿÿÿrP   Ú\Ú
)Ú~Ú Úitemz[] z: z{} )Ú	macronamer   r   r.   r   ÚnodeargdÚargnlistÚhasattrrR   rP   r   Úlatex_verbatimrC   r   r   r6   r   Úgetr:   r   r   rD   Újoin)
r"   r-   r5   Úconsumedr@   Útext_argÚargÚopt_textÚ	expansionÚ	arg_partss
             r(   Ú_macro_node_to_textÚ#TextHelperMixin._macro_node_to_textx   s¬  € àˆØ�>‰>Ô4Ô7HÑHÓIØ×*Ñ*¨4Ó0ˆDØ—J˜B Ð)Ð)Ø�>‰>Ô0Ó0Ø�}�} §¡×!7×!7ØŸ=™=×1Ñ1°"Ñ5�ØÑ'¬G°H¸j×,IÑ,IØ ×/Ñ/°×0AÑ0AÓBÀHÐMÐMØ˜�>Ð!Ø�>‰>œ_Ó,Ø×'Ñ'Ó)¨8Ð4Ð4Ø�>‰>˜TÓ!Ø˜(Ð#Ð#Ø�>‰>˜UÓ"Ø˜�?Ð"Ø�>‰>˜VÓ#Ø�}�} §¡×!7×!7Ø—m‘m×,Ñ,¨QÑ/�ÞØ"×1Ñ1Ó3×9Ñ9¸%Ó@�HØ'˜j¨˜O¨XÐ6Ð6Ø˜�>Ð!Ø�>‰>œ^Ó+Ø—N‘N HÐ-Ð-Ø�>‰>˜T×0Ñ0Ó0Ø"&×"FÑ"FØó#ÑˆIð ×*Ñ*×.Ñ.¨t¯~©~¸qÓAÀAÓEØ×:Ñ:¸9ÓEÀxÐPÐPØÐ(Ð(Ø�>‰>œ^Ó+¨t¯~©~ÄÓ/OØ˜�>Ð!Øˆ	Ø�=�=˜TŸ]™]×3×3Ø—}‘}×-Ô-�Ø“?Ü˜s J×/Ñ/Ø#×2Ñ2°3·<±<Ó@˜ÞØ%×,Ñ,¨TÖ2ñ  ð  #×1Ñ1Ó3×9Ñ9¸%Ó@˜ß˜4Ø%×,Ñ,¨TÖ2ñ .ð —‘˜Ó# XÐ.Ð.r+   c                óä  • / nSnU[        U5      :  GaŒ  X   nSn[        U[        5      (       a  UR                  UR                  5        GO:[        U[
        5      (       a+  UR                  U R                  UR                  5      5        Oú[        U[        5      (       a2  U R                  XAUS-   S  5      u  peU(       a  UR                  U5        O³[        U[        5      (       a/  UR                  U R                  UR                  5       5      5        Oo[        U[        5      (       aZ  UR                  S;   a   UR                  UR                  5       5        O*UR                  U R                  UR                  5      5        USU-   -  nU[        U5      :  a  GMŒ  SR                  U5      n[         R"                  " SSU5      n[         R"                  " SSU5      nUR%                  5       $ )	Nr   r>   )ÚequationÚalignÚgatherrb   z +rg   z\n\n+r=   )ÚlenÚ
isinstancer   rD   rA   r   rR   rP   r   rv   r   r2   rm   r   Úenvnamero   rW   ÚsubrC   )r"   r#   Ú
text_partsÚidxr-   Úconsumed_followingr@   Úresults           r(   rR   ÚTextHelperMixin._nodes_to_textª   sŒ  € Øˆ
àˆØ”C˜“JÔØ‘:ˆDØ!"ÐÜ˜$¤×/Ñ/Ø×!Ñ! $§*¡*Ö-Ü˜D¤.×1Ñ1Ø×!Ñ! $×"5Ñ"5°d·m±mÓ"DÕEÜ˜D¤.×1Ñ1Ø+/×+CÑ+CØ  a¡ 	Ð*ó,Ñ(�ö Ø×%Ñ% dÔ+øÜ˜D¤-×0Ñ0Ø×!Ñ! $×"5Ñ"5°d×6IÑ6IÓ6KÓ"LÕMÜ˜DÔ"6×7Ñ7Ø—<‘<Ð#BÓBØ×%Ñ% d×&9Ñ&9Ó&;Õ<à×%Ñ% d×&9Ñ&9¸$¿-¹-Ó&HÔIØ�1Ð)Ñ)Ñ)ˆCð) ”C˜“JÖð, —‘˜Ó$ˆÜ—’˜˜s FÓ+ˆÜ—’˜ &¨&Ó1ˆØ�|‰|‹~Ðr+   c                ó4  • UR                   (       d  gUR                    Hv  n[        U[        5      (       a    g[        U[        5      (       a  UR                  [
        ;   a    gMG  [        U[        5      (       d  M^  U R                  U5      (       a  Mv    g   g)NTF)rP   r}   r   r   ri   r   r   rQ   )r"   r-   Úns      r(   rQ   Ú#TextHelperMixin._is_text_only_groupÉ   ss   € Ø�}�}Øà—”ˆAÜ˜!Ô1×2Ñ2ÙÜ˜Aœ~×.Ñ.Ø—;‘;Ô"3Ó3Ù ñ 4ä˜Aœ~×.Ó.Ø×/Ñ/°×2Ó2Ù ñ ð r+   r!   N)...)r#   r   r$   r   r%   r   r&   r   r'   r   ÚreturnÚNone)r-   r   rˆ   Ústr)r1   rŠ   rˆ   rŠ   )r-   r   r5   r   rˆ   ztuple[str, int])r9   rŠ   rˆ   rŠ   )r-   r   r$   r	   r%   úNodeItem | Noner&   úFormatting | Noner'   úDocItemLabel | NonerG   ú	List[str]rH   úCallable[[], None])r-   r   r$   r	   r%   r‹   r&   rŒ   r'   r�   rG   rŽ   rH   r�   )r1   rŠ   r\   rŠ   rˆ   rŠ   )r-   r   rˆ   Útuple)rˆ   rŠ   )r-   r   rˆ   Úbool)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__annotations__r)   r.   r2   r6   r:   rM   rT   r_   rv   rR   rQ   Ú__static_attributes__r!   r+   r(   r   r   *   s6  ‡ ÞØ&Ó&Ø .Ó.ð Ø!Ø!ð	àð	ð ð	ð ð		ð
 ð	ð ð	ð õ	ô 	<Ü<ð	"Øð	"Ø.1ð	"àô	"ô 	Qð%àð%ð ð%ð  ð	%ð
 &ð%ð (ð%ð ð%ð %ô%ðBTàðTð ðTð  ð	Tð
 &ðTð (ðTð ðTð %ôTô$ô0/ôd÷>r+   r   )Ú
__future__r   rW   Útypingr   r   r   r   Údocling_core.types.doc.documentr   r	   r
   r   Údocling.backend.latex.constantsr   r   r   r   r   r   r   r   r   Úpylatexenc.latexwalkerr   r   r   r   r   ÚImportErrorr   r!   r+   r(   Ú<module>rž      sc   ðõ #ã 	ß :Ó :÷ó ÷	÷ 	ó 	ö Ýð		÷õ ÷mò møð	 ó 	Ùð	ús   ÁA ÁA'Á&A'