
    fh                     d    d dl Z d dlZd dlmZ 	  e j        d          Zd Z G d d          ZdS )    N)HeaderFooterz[\\*?:/\[\]]c                 Z   fd| D             }|rd                     |           } t          j        dt          j                   dt          j                  }|                    |           }|r8d |D             }d}|rt          |          }d                    |dz             S )	z
    Naive check to see whether name already exists.
    If name does exist suggest a name using an incrementer
    Duplicates are case insensitive
    c                 h    g | ].}|                                                                  k    ,|/S  )lower).0nvalues     N/var/www/histauto/venv/lib/python3.11/site-packages/openpyxl/workbook/child.py
<listcomp>z(avoid_duplicate_name.<locals>.<listcomp>   s3    <<<1ekkmm!;!;Q!;!;!;    ,z
(?P<title>z)(?P<count>\d*),?c                 Z    g | ](\  }}|                                 t          |          )S r   )isdigitint)r   tidxs      r   r   z(avoid_duplicate_name.<locals>.<listcomp>   s/    HHH8As#++--Hc#hhHHHr   r   z{0}{1}   )joinrecompileescapeIfindallmaxformat)namesr
   matchsheet_title_regexmatchescountshighests    `     r   avoid_duplicate_namer#      s     =<<<<<<E 
9		%  J'XBIe4D4D'X'X'XZ\Z^__#++E22 	9HHwHHHFG &f++$$UGaK88ELr   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dS )_WorkbookChild Nz{0}Sheetc                 V    || _         |p| j        | _        t                      | _        d S N)_parent_default_titletitler   )selfparentr,   s      r   __init__z_WorkbookChild.__init__-   s*    1d1
(NNr   c                 L    d                     | j        j        | j                  S )Nz<{0} "{1}">)r   	__class____name__r,   r-   s    r   __repr__z_WorkbookChild.__repr__3   s    ##DN$;TZHHHr   c                     | j         S r)   )r*   r3   s    r   r.   z_WorkbookChild.parent7   
    |r   c                     | j         j        S r)   )r*   encodingr3   s    r   r8   z_WorkbookChild.encoding<   s    |$$r   c                     | j         S r)   )_WorkbookChild__titler3   s    r   r,   z_WorkbookChild.titleA   r6   r   c                 F   | j         sdS |st          d          t          |d          rIt          |t                    s4	 |                    d          }n# t          $ r t          d          w xY wt                              |          }|r7d	                    |
                    d                    }t          |          | j        %| j        |k    rt          | j        j        |          }t          |          dk    rt!          j        d	           || _        dS )
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strr<   UnicodeDecodeErrorINVALID_TITLE_REGEXsearchr   groupr,   r#   r.   
sheetnameslenwarningswarnr:   )r-   r
   mmsgs       r   r,   z_WorkbookChild.titleF   s1    | 	F 	GEFFF5(## 	EeS)) EE!LL11EE) E E E$%CDDDE  &&u-- 	">EEaggajjQQCS//!:!djE&9&9()?GGEu::??Mpqqqs   A A1c                     | j         j        S r)   r   	oddHeaderr3   s    r   rO   z_WorkbookChild.oddHeaderh        **r   c                     || j         _        d S r)   rN   r-   r
   s     r   rO   z_WorkbookChild.oddHeaderm       &+###r   c                     | j         j        S r)   r   	oddFooterr3   s    r   rV   z_WorkbookChild.oddFooterr   rP   r   c                     || j         _        d S r)   rU   rR   s     r   rV   z_WorkbookChild.oddFooterw   rS   r   c                     | j         j        S r)   r   
evenHeaderr3   s    r   rZ   z_WorkbookChild.evenHeader|        ++r   c                     || j         _        d S r)   rY   rR   s     r   rZ   z_WorkbookChild.evenHeader       ',$$$r   c                     | j         j        S r)   r   
evenFooterr3   s    r   r`   z_WorkbookChild.evenFooter   r[   r   c                     || j         _        d S r)   r_   rR   s     r   r`   z_WorkbookChild.evenFooter   r]   r   c                     | j         j        S r)   r   firstHeaderr3   s    r   rd   z_WorkbookChild.firstHeader        ,,r   c                     || j         _        d S r)   rc   rR   s     r   rd   z_WorkbookChild.firstHeader       (-%%%r   c                     | j         j        S r)   r   firstFooterr3   s    r   rj   z_WorkbookChild.firstFooter   re   r   c                     || j         _        d S r)   ri   rR   s     r   rj   z_WorkbookChild.firstFooter   rg   r   c                 @    | j                             | j                  S r)   )_pathr   _idr3   s    r   pathz_WorkbookChild.path   s    z  ***r   )NN)r2   
__module____qualname__r:   rn   rm   r*   r+   r/   r4   propertyr.   r8   r,   setterrO   rV   rZ   r`   rd   rj   ro   r   r   r   r%   r%   %   s9       G
CEGN+ + + +I I I   X % % X%   X \  \B + + X+ , , , + + X+ , , , , , X, - - - , , X, - - - - - X- . . . - - X- . . . + + X+ + +r   r%   )r   rI    openpyxl.worksheet.header_footerr   r   rD   r#   r%   r   r   r   <module>ru      s    
			  9 9 9 9 9 9 !bj11   ,A+ A+ A+ A+ A+ A+ A+ A+ A+ A+r   