
    Mwg                     `    d dl Z d dlZd dlmZ 	  e j                  d      Zd Z G d d      Zy)    N)HeaderFooterz[\\*?:/\[\]]c                    | D cg c]&  }|j                         |j                         k(  s%|( }}|rdj                  |       } t        j                  dt        j                  |       dt        j
                        }|j                  |       }|rR|D cg c]!  \  }}|j                         st        |      # }}}d}	|rt        |      }	dj                  ||	dz         }|S c c}w c c}}w )z
    Naive check to see whether name already exists.
    If name does exist suggest a name using an incrementer
    Duplicates are case insensitive
    ,z
(?P<title>z)(?P<count>\d*),?r   z{0}{1}   )lowerjoinrecompileescapeIfindallisdigitintmaxformat)
namesvaluenmatchsheet_title_regexmatchestidxcountshighests
             N/var/www/horilla/myenv/lib/python3.12/site-packages/openpyxl/workbook/child.pyavoid_duplicate_namer      s     <1ekkm!;Q<E<		% JJBIIe4D3EEW'XZ\Z^Z^_#++E2/6H8As#++-c#hHFHGf+$$UGaK8EL = Is   &C'C'C,1C,c                      e Zd ZdZdZdZdZdZddZd Z	e
d        Ze
d        Ze
d	        Zej                  d
        Ze
d        Zej                  d        Ze
d        Zej                  d        Ze
d        Zej                  d        Ze
d        Zej                  d        Ze
d        Zej                  d        Ze
d        Zej                  d        Ze
d        Zy)_WorkbookChild Nz{0}Sheetc                 Z    || _         |xs | j                  | _        t               | _        y N)_parent_default_titletitler   )selfparentr&   s      r   __init__z_WorkbookChild.__init__-   s%    1d11
(N    c                 b    dj                  | j                  j                  | j                        S )Nz<{0} "{1}">)r   	__class____name__r&   r'   s    r   __repr__z_WorkbookChild.__repr__3   s#    ##DNN$;$;TZZHHr*   c                     | j                   S r#   )r$   r.   s    r   r(   z_WorkbookChild.parent7       ||r*   c                 .    | j                   j                  S r#   )r$   encodingr.   s    r   r3   z_WorkbookChild.encoding<   s    ||$$$r*   c                     | j                   S r#   )_WorkbookChild__titler.   s    r   r&   z_WorkbookChild.titleA   r1   r*   c                    | j                   sy|st        d      t        |d      r"t        |t              s	 |j                  d      }t        j                  |      }|r+dj                  |j                  d            }t        |      | j                  /| j                  |k7  r t        | j                  j                  |      }t        |      dkD  rt!        j"                  d	       || _        y# t        $ r t        d      w xY w)
z
        Set a sheet title, ensuring it is valid.
        Limited to 31 characters, no special characters.
        Duplicate titles will be incremented numerically
        Nz&Title must have at least one characterdecodeasciizWorksheet titles must be strz*Invalid character {0} found in sheet titler      zTTitle is more than 31 characters. Some applications may not be able to read the file)r$   
ValueErrorhasattr
isinstancestrr7   UnicodeDecodeErrorINVALID_TITLE_REGEXsearchr   groupr&   r   r(   
sheetnameslenwarningswarnr5   )r'   r   mmsgs       r   r&   z_WorkbookChild.titleF   s     ||EFF5(#eS)E!LL1E  &&u->EEaggajQCS/!::!djjE&9()?)?GEu:?MMpq * E$%CDDEs   C1 1Dc                 .    | j                   j                  S r#   r   	oddHeaderr.   s    r   rJ   z_WorkbookChild.oddHeaderh         ***r*   c                 &    || j                   _        y r#   rI   r'   r   s     r   rJ   z_WorkbookChild.oddHeaderm       &+#r*   c                 .    | j                   j                  S r#   r   	oddFooterr.   s    r   rQ   z_WorkbookChild.oddFooterr   rK   r*   c                 &    || j                   _        y r#   rP   rM   s     r   rQ   z_WorkbookChild.oddFooterw   rN   r*   c                 .    | j                   j                  S r#   r   
evenHeaderr.   s    r   rU   z_WorkbookChild.evenHeader|         +++r*   c                 &    || j                   _        y r#   rT   rM   s     r   rU   z_WorkbookChild.evenHeader       ',$r*   c                 .    | j                   j                  S r#   r   
evenFooterr.   s    r   r[   z_WorkbookChild.evenFooter   rV   r*   c                 &    || j                   _        y r#   rZ   rM   s     r   r[   z_WorkbookChild.evenFooter   rX   r*   c                 .    | j                   j                  S r#   r   firstHeaderr.   s    r   r_   z_WorkbookChild.firstHeader         ,,,r*   c                 &    || j                   _        y r#   r^   rM   s     r   r_   z_WorkbookChild.firstHeader       (-%r*   c                 .    | j                   j                  S r#   r   firstFooterr.   s    r   re   z_WorkbookChild.firstFooter   r`   r*   c                 &    || j                   _        y r#   rd   rM   s     r   re   z_WorkbookChild.firstFooter   rb   r*   c                 L    | j                   j                  | j                        S r#   )_pathr   _idr.   s    r   pathz_WorkbookChild.path   s    zz  **r*   )NN)r-   
__module____qualname__r5   ri   rh   r$   r%   r)   r/   propertyr(   r3   r&   setterrJ   rQ   rU   r[   r_   re   rj    r*   r   r   r   %   s   G
CEGN+I   % %   \\ B + + , , + + , , , , - - , , - - - - . . - - . . + +r*   r   )r	   rD    openpyxl.worksheet.header_footerr   r
   r?   r   r   ro   r*   r   <module>rq      s9    
  9 !bjj1 ,A+ A+r*   