o
    *Ÿ•ZM  ã                   @   s`   d dl mZ d dlZd dlZd dlmZmZ d dlmZ 	 e 	d¡Z
dd„ ZG dd	„ d	eƒZdS )
é    )Úabsolute_importN)ÚunicodeÚ	safe_repr)ÚHeaderFooterz[\\*?:/\[\]]c                    sx   ‡ fdd„| D ƒ}|r:d  | ¡} t dt ˆ ¡ tj¡}| | ¡}|r:dd„ |D ƒ}d}|r2t|ƒ}d ˆ |d ¡‰ ˆ 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                    s    g | ]}|  ¡ ˆ   ¡ kr|‘qS © )Úlower)Ú.0Ún©Úvaluer   úI/var/www/html/env/lib/python3.10/site-packages/openpyxl/workbook/child.pyÚ
<listcomp>   ó     z(avoid_duplicate_name.<locals>.<listcomp>ú,z(?P<title>%s)(?P<count>\d*),?c                 S   s    g | ]\}}|  ¡ rt|ƒ‘qS r   )ÚisdigitÚint)r   ÚtÚidxr   r   r   r       r   r   z{0}{1}é   )ÚjoinÚreÚcompileÚescapeÚIÚfindallÚmaxÚformat)Únamesr   ÚmatchÚsheet_title_regexÚmatchesÚcountsÚhighestr   r
   r   Úavoid_duplicate_name   s   

r#   c                   @   s  e Zd ZdZdZdZdZdZd$dd„Zdd„ Z	e
d	d
„ ƒZe
dd„ ƒZe
dd„ ƒZejdd„ ƒZe
dd„ ƒZejdd„ ƒZe
dd„ ƒZejdd„ ƒZe
dd„ ƒZejdd„ ƒZe
dd„ ƒZejdd„ ƒZe
dd„ ƒZejdd„ ƒZe
dd „ ƒZejd!d „ ƒZe
d"d#„ ƒZdS )%Ú_WorkbookChildÚ Nz{0}ÚSheetc                 C   s   || _ |p| j| _tƒ | _d S ©N)Ú_WorkbookChild__parentÚ_default_titleÚtitler   )ÚselfÚparentr*   r   r   r   Ú__init__0   s   z_WorkbookChild.__init__c                 C   s   d  | jjt| jƒ¡S )Nz<{0} "{1}">)r   Ú	__class__Ú__name__r   r*   ©r+   r   r   r   Ú__repr__6   s   z_WorkbookChild.__repr__c                 C   ó   | j S r'   )r(   r0   r   r   r   r,   :   ó   z_WorkbookChild.parentc                 C   ó   | j jS r'   )r(   Úencodingr0   r   r   r   r5   ?   ó   z_WorkbookChild.encodingc                 C   r2   r'   )Ú_WorkbookChild__titler0   r   r   r   r*   D   r3   z_WorkbookChild.titlec                 C   s¸   | j sdS |stdƒ‚t|dƒr(t|tƒs(z| d¡}W n ty'   tdƒ‚w t |¡}|r;d 	| 
d¡¡}t|ƒ‚| jdurL| j|krLt| jj|ƒ}t|ƒdkrWt 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 unicodez*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Ú
isinstancer   r8   ÚUnicodeDecodeErrorÚINVALID_TITLE_REGEXÚsearchr   Úgroupr*   r#   r,   Ú
sheetnamesÚlenÚwarningsÚwarnr7   )r+   r   ÚmÚmsgr   r   r   r*   I   s(   

ÿ


c                 C   r4   r'   ©r   Ú	oddHeaderr0   r   r   r   rI   k   r6   z_WorkbookChild.oddHeaderc                 C   ó   || j _d S r'   rH   ©r+   r   r   r   r   rI   p   ó   c                 C   r4   r'   ©r   Ú	oddFooterr0   r   r   r   rN   u   r6   z_WorkbookChild.oddFooterc                 C   rJ   r'   rM   rK   r   r   r   rN   z   rL   c                 C   r4   r'   ©r   Ú
evenHeaderr0   r   r   r   rP      r6   z_WorkbookChild.evenHeaderc                 C   rJ   r'   rO   rK   r   r   r   rP   „   rL   c                 C   r4   r'   ©r   Ú
evenFooterr0   r   r   r   rR   ‰   r6   z_WorkbookChild.evenFooterc                 C   rJ   r'   rQ   rK   r   r   r   rR   Ž   rL   c                 C   r4   r'   ©r   ÚfirstHeaderr0   r   r   r   rT   “   r6   z_WorkbookChild.firstHeaderc                 C   rJ   r'   rS   rK   r   r   r   rT   ˜   rL   c                 C   r4   r'   ©r   ÚfirstFooterr0   r   r   r   rV   �   r6   z_WorkbookChild.firstFooterc                 C   rJ   r'   rU   rK   r   r   r   rV   ¢   rL   c                 C   s   | j  | j¡S r'   )Ú_pathr   Ú_idr0   r   r   r   Úpath§   s   z_WorkbookChild.path)NN)r/   Ú
__module__Ú__qualname__r7   rX   rW   r(   r)   r-   r1   Úpropertyr,   r5   r*   ÚsetterrI   rN   rP   rR   rT   rV   rY   r   r   r   r   r$   (   sT    




!











r$   )Ú
__future__r   r   rD   Úopenpyxl.compatr   r   Ú openpyxl.worksheet.header_footerr   r   r?   r#   Úobjectr$   r   r   r   r   Ú<module>   s    
