ó
    ‰*£hÎ  ã                   óþ   • S SK r S SKJr  S SKJrJrJrJrJrJ	r	J
r
  S SKJr  S SKJr  S SKJrJr  SrSrS	r\ R*                  " S
R-                  \\\5      5      rS r " S S\5      r " S S\5      r " S S\5      rg)é    N)Úwarn)ÚAliasÚBoolÚStrictÚStringÚIntegerÚMatchPatternÚTyped)ÚSerialisable)ÚElement)ÚescapeÚunescapez&"(?P<font>.+)"z&K(?P<color>[A-F0-9]{6})z&(?P<size>\d+\s?)z{0}|{1}|{2}c                 óú   • [         R                  " S[         R                  [         R                  -  5      nUR	                  U 5      n UR                  5       nU$ ! [         a    [        S5        SSSS.n U$ f = f)z­
Split the combined (decoded) string into left, center and right parts

# See http://stackoverflow.com/questions/27711175/regex-with-multiple-optional-groups for discussion
zN
    (&L(?P<left>.+?))?
    (&C(?P<center>.+?))?
    (&R(?P<right>.+?))?
    $z3Cannot parse header or footer so it will be ignoredÚ )ÚleftÚrightÚcenter)ÚreÚcompileÚVERBOSEÚDOTALLÚmatchÚ	groupdictÚAttributeErrorr   )ÚtextÚ
ITEM_REGEXÚmÚpartss       Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/openpyxl/worksheet/header_footer.pyÚ_split_stringr       s}   € ô —’ð 	ô �*‰*”r—y‘yÑ
 ó	"€Jð 	×Ñ˜Ó€Að5Ø—‘“ˆð €Løô ó 5ÜÐFÔGØ B°Ñ4‰Ø€Lð5ús   Á	A ÁA:Á9A:c                   ót   • \ rS rSrSr\" SS9r\" SS9r\" SS9r	Sr
\" S\
S9rSS jrS	 rS
 r\S 5       rSrg)Ú_HeaderFooterParté5   ae  
Individual left/center/right header/footer part

Do not use directly.

Header & Footer ampersand codes:

* &A   Inserts the worksheet name
* &B   Toggles bold
* &D or &[Date]   Inserts the current date
* &E   Toggles double-underline
* &F or &[File]   Inserts the workbook name
* &I   Toggles italic
* &N or &[Pages]   Inserts the total page count
* &S   Toggles strikethrough
* &T   Inserts the current time
* &[Tab]   Inserts the worksheet name
* &U   Toggles underline
* &X   Toggles superscript
* &Y   Toggles subscript
* &P or &[Page]   Inserts the current page number
* &P+n   Inserts the page number incremented by n
* &P-n   Inserts the page number decremented by n
* &[Path]   Inserts the workbook path
* &&   Escapes the ampersand character
* &"fontname"   Selects the named font
* &nn   Selects the specified 2-digit font point size

Colours are in RGB Hex
T©Ú
allow_nonez^[A-Fa-f0-9]{6}$)r%   ÚpatternNc                 ó4   • Xl         X l        X0l        X@l        g ©N)r   ÚfontÚsizeÚcolor)Úselfr   r)   r*   r+   s        r   Ú__init__Ú_HeaderFooterPart.__init__]   s   € ØŒ	ØŒ	ØŒ	Ø�
ó    c                 ó¤  • / nU R                   (       a*  UR                  SR                  U R                   5      5        U R                  (       a*  UR                  SR                  U R                  5      5        U R                  (       a*  UR                  SR                  U R                  5      5        SR                  XR                  /-   5      $ )z9
Convert to Excel HeaderFooter miniformat minus position
z&"{0}"z&{0} z&K{0}r   )r)   ÚappendÚformatr*   r+   Újoinr   )r,   Úfmts     r   Ú__str__Ú_HeaderFooterPart.__str__d   sƒ   € ð ˆØ�9�9Ø�J‰J�y×'Ñ'¨¯	©	Ó2Ô3Ø�9�9Ø�J‰J�w—~‘~ d§i¡iÓ0Ô1Ø�:�:Ø�J‰J�w—~‘~ d§j¡jÓ1Ô2Ø�x‰x˜Ÿy™y˜kÑ)Ó*Ð*r/   c                 ó,   • [        U R                  5      $ r(   )Úboolr   ©r,   s    r   Ú__bool__Ú_HeaderFooterPart.__bool__q   s   € Ü�D—I‘I‹Ðr/   c                 óš   ^• Sm[        U4S j[        R                  U5       5       5      n[        R                  SU5      US'   U " S0 UD6$ )z#
Convert from miniformat to object
)r)   r+   r*   c              3   óh   >#   • U  H'  n[        TU5        H  u  p#U(       d  M  X#4v •  M     M)     g 7fr(   )Úzip)Ú.0r   ÚkÚvÚkeyss       €r   Ú	<genexpr>Ú-_HeaderFooterPart.from_str.<locals>.<genexpr>|   s4   øé € ð 5Ò&@˜UÜ! $¨×.‘d�a´!ó �1•&Ù.ñ Ò&@ùs   ƒ2¤2r   r   © )ÚdictÚFORMAT_REGEXÚfindallÚsub)Úclsr   ÚkwrB   s      @r   Úfrom_strÚ_HeaderFooterPart.from_strv   sO   ø€ ð
 )ˆÜô 5¤l×&:Ñ&:¸4Ô&@ó 5ó 5ˆô "×%Ñ% b¨$Ó/ˆˆ6‰
á‰y�R‰yÐr/   )r+   r)   r*   r   )NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r)   r   r*   ÚRGBr	   r+   r-   r5   r:   ÚclassmethodrL   Ú__static_attributes__rE   r/   r   r"   r"   5   s[   † ññ> ˜TÑ"€DÙ˜TÑ"€DÙ˜dÑ#€DØ€CÙ D°#Ñ6€Eôò+òð
 ñ
ó ó
r/   r"   c                   ó|   • \ rS rSrSr\" \S9r\" \S9r\	" S5      r
\" \S9rSrSS jrS rS	 rS
 r\S 5       rSrg)ÚHeaderFooterItemé„   z
Header or footer item

)Úexpected_typer   )ÚLÚCÚRNc                 óv   • Uc
  [        5       nXl        Uc
  [        5       nX0l        Uc
  [        5       nX l        g r(   )r"   r   r   r   )r,   r   r   r   s       r   r-   ÚHeaderFooterItem.__init__’   s8   € Ø‰<Ü$Ó&ˆDØŒ	Ø‰>Ü&Ó(ˆFØŒØ‰=Ü%Ó'ˆEØ�
r/   c                 ó2  ^• SSSSSSSSS	.m[         R                  " S
R                  T Vs/ s H(  nSR                  [         R                  " U5      5      PM*     sn5      5      nU4S jn/ n[        U R                  U R                  U R                  U R                  /5       H>  u  pVUR                  c  M  UR                  SR                  U[        U5      5      5        M@     SR                  U5      nUR                  X45      n[	        U5      $ s  snf )z!
Pack parts into a single string
z&Az&Nz&Dz&Zz&Pz&Tz&Fz&G)z&[Tab]z&[Pages]z&[Date]z&[Path]z&[Page]z&[Time]z&[File]z
&[Picture]Ú|z({0})c                 ó0   >• U R                  S5      nTU   $ )zJ
Callback for re.sub
Replace expanded control with mini-format equivalent
r   )Úgroup)r   rI   Ú	TRANSFORMs     €r   ÚreplaceÚ)HeaderFooterItem.__str__.<locals>.replaceª   s   ø€ ð
 —+‘+˜a“.ˆCØ˜S‘>Ð!r/   z&{0}{1}r   )r   r   r3   r2   r   r>   Ú_HeaderFooterItem__keysr   r   r   r   r1   ÚstrrI   )r,   r@   Ú
SUBS_REGEXrd   ÚtxtÚkeyÚpartrc   s          @r   r5   ÚHeaderFooterItem.__str__ž   sô   ø€ ð  $°À$Ø $°À$ÐSWØ#'ñ)ˆ	ô
 —Z’Z §¡Ù3<ó*>Ú3<¨að +2¯.©.¼¿ºÀ1»Ö*FÙ3<ñ*>ó !?ó @ˆ
õ	"ð ˆÜØ�K‰K˜$Ÿ)™) T§[¡[°$·*±*Ð=ö?‰IˆCà�y‰yÓ$Ø—
‘
˜:×,Ñ,¨S´#°d³)Ó<Ö=ñ?ð �g‰g�c‹lˆØ�n‰n˜WÓ*ˆÜ�c‹{Ðùò%*>s   ¬/Dc                 óZ   • [        U R                  U R                  U R                  /5      $ r(   )Úanyr   r   r   r9   s    r   r:   ÚHeaderFooterItem.__bool__¼   s    € Ü�D—I‘I˜tŸ{™{¨D¯J©JÐ7Ó8Ð8r/   c                 ó<   • [        U5      n[        U 5      Ul        U$ )z
Return as XML node
)r   rg   r   )r,   ÚtagnameÚels      r   Úto_treeÚHeaderFooterItem.to_treeÁ   s   € ô �WÓˆÜ�d“)ˆŒØˆ	r/   c                 óä   • UR                   (       a_  [        UR                   5      n[        U5      nUR                  5        H!  u  pEUc  M
  [        R                  U5      X4'   M#     U " S0 UD6nU$ g )NrE   )r   r   r    Úitemsr"   rL   )rJ   Únoder   r   r@   rA   r,   s          r   Ú	from_treeÚHeaderFooterItem.from_treeÊ   sa   € à�9�9Ü˜DŸI™IÓ&ˆDÜ! $Ó'ˆEØŸ™ž‘�Ø“=Ü0×9Ñ9¸!Ó<�E“Hñ &ñ ‘<˜‘<ˆDØˆKð r/   )r   r   r   )NNN)rN   rO   rP   rQ   rR   r
   r"   r   r   r   Úcentrer   rf   r-   r5   r:   rs   rT   rx   rU   rE   r/   r   rW   rW   „   s`   † ññ
 Ð0Ñ1€DÙÐ!2Ñ3€FÙ�8‹_€FÙÐ 1Ñ2€Eà€Fô	òò<9ò
ð ñó ór/   rW   c                   óÄ   • \ rS rSrSr\" SS9r\" SS9r\" SS9r\" SS9r	\
" \SS9r\
" \SS9r\
" \SS9r\
" \SS9r\
" \SS9r\
" \SS9rSr          SS jrS	 rS
rg)ÚHeaderFooteréÖ   ÚheaderFooterTr$   )rY   r%   )Ú	oddHeaderÚ	oddFooterÚ
evenHeaderÚ
evenFooterÚfirstHeaderÚfirstFooterNc                 ó  • Xl         X l        X0l        X@l        Uc
  [	        5       nXPl        Uc
  [	        5       nX`l        Uc
  [	        5       nXpl        Uc
  [	        5       nX€l        U	c
  [	        5       n	X�l	        U
c
  [	        5       n
X l
        g r(   )ÚdifferentOddEvenÚdifferentFirstÚscaleWithDocÚalignWithMarginsrW   r   r€   r�   r‚   rƒ   r„   )r,   r†   r‡   rˆ   r‰   r   r€   r�   r‚   rƒ   r„   s              r   r-   ÚHeaderFooter.__init__ç   s�   € ð !1ÔØ,ÔØ(ÔØ 0ÔØÑÜ(Ó*ˆIØ"ŒØÑÜ(Ó*ˆIØ"ŒØÑÜ)Ó+ˆJØ$ŒØÑÜ)Ó+ˆJØ$ŒØÑÜ*Ó,ˆKØ&ÔØÑÜ*Ó,ˆKØ&Õr/   c                 ó†   • U R                   U R                  -    Vs/ s H  n[        X5      PM     nn[        U5      $ s  snf r(   )Ú	__attrs__Ú__elements__Úgetattrrn   )r,   Úattrr   s      r   r:   ÚHeaderFooter.__bool__  s<   € Ø15·±À$×BSÑBSÒ1SÓTÒ1S¨”˜Ö$Ñ1SˆÐTÜ�5‹zÐùò Us   œ>)
r‰   r‡   r†   r‚   r�   r„   rƒ   r€   r   rˆ   )
NNNNNNNNNN)rN   rO   rP   rQ   rq   r   r†   r‡   rˆ   r‰   r
   rW   r   r€   r�   r‚   rƒ   r„   r�   r-   r:   rU   rE   r/   r   r|   r|   Ö   s¯   † à€Gá tÑ,ÐÙ TÑ*€NÙ 4Ñ(€LÙ tÑ,ÐÙÐ$4ÀÑF€IÙÐ$4ÀÑF€IÙÐ%5À$ÑG€JÙÐ%5À$ÑG€JÙÐ&6À4ÑH€KÙÐ&6À4ÑH€Kàg€Lð #'Ø $Ø"Ø"&ØØØ Ø Ø!Ø!ô!'õHr/   r|   )r   Úwarningsr   Úopenpyxl.descriptorsr   r   r   r   r   r	   r
   Ú!openpyxl.descriptors.serialisabler   Úopenpyxl.xml.functionsr   Úopenpyxl.utils.escaper   r   ÚFONT_PATTERNÚCOLOR_PATTERNÚ
SIZE_REGEXr   r2   rG   r    r"   rW   r|   rE   r/   r   Ú<module>r™      s‹   ðó
 
Ý ÷÷ ñ õ ;õ +ß 2ð !€Ø+€Ø!€
Ø�zŠz˜-×.Ñ.¨|¸]Ø/9ó;ó €òô,L˜ô Lô^O�vô Oôd7�<õ 7r/   