a
    b                     @   sB   d dl Z d dlZd dlmZ e dZdd ZG dd deZdS )    N)HeaderFooterz[\\*?:/\[\]]c                    s|    fdd| D }|rxd | } tdt  dtj}|| }|rxdd |D }d}|rht|}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   g/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/openpyxl/workbook/child.py
<listcomp>       z(avoid_duplicate_name.<locals>.<listcomp>,z
(?P<title>z)(?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   matchZsheet_title_regexmatchescountsZ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}ZSheetc                 C   s   || _ |p| j| _t | _d S N)_parent_default_titletitler   )selfparentr$   r   r   r	   __init__-   s    z_WorkbookChild.__init__c                 C   s   d | jj| jS )Nz<{0} "{1}">)r   	__class____name__r$   r%   r   r   r	   __repr__3   s    z_WorkbookChild.__repr__c                 C   s   | j S r!   )r"   r*   r   r   r	   r&   7   s    z_WorkbookChild.parentc                 C   s   | j jS r!   )r"   encodingr*   r   r   r	   r,   <   s    z_WorkbookChild.encodingc                 C   s   | j S r!   )_WorkbookChild__titler*   r   r   r	   r$   A   s    z_WorkbookChild.titlec                 C   s   | j s
dS |stdt|drTt|tsTz|d}W n tyR   tdY n0 t|}|rzd	|
d}t|| jdur| j|krt| jj|}t|dkrt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&   Z
sheetnameslenwarningswarnr-   )r%   r   mmsgr   r   r	   r$   F   s&    



c                 C   s   | j jS r!   r   	oddHeaderr*   r   r   r	   r?   h   s    z_WorkbookChild.oddHeaderc                 C   s   || j _d S r!   r>   r%   r   r   r   r	   r?   m   s    c                 C   s   | j jS r!   r   	oddFooterr*   r   r   r	   rB   r   s    z_WorkbookChild.oddFooterc                 C   s   || j _d S r!   rA   r@   r   r   r	   rB   w   s    c                 C   s   | j jS r!   r   
evenHeaderr*   r   r   r	   rD   |   s    z_WorkbookChild.evenHeaderc                 C   s   || j _d S r!   rC   r@   r   r   r	   rD      s    c                 C   s   | j jS r!   r   
evenFooterr*   r   r   r	   rF      s    z_WorkbookChild.evenFooterc                 C   s   || j _d S r!   rE   r@   r   r   r	   rF      s    c                 C   s   | j jS r!   r   firstHeaderr*   r   r   r	   rH      s    z_WorkbookChild.firstHeaderc                 C   s   || j _d S r!   rG   r@   r   r   r	   rH      s    c                 C   s   | j jS r!   r   firstFooterr*   r   r   r	   rJ      s    z_WorkbookChild.firstFooterc                 C   s   || j _d S r!   rI   r@   r   r   r	   rJ      s    c                 C   s   | j | jS r!   )_pathr   _idr*   r   r   r	   path   s    z_WorkbookChild.path)NN)r)   
__module____qualname__r-   rL   rK   r"   r#   r'   r+   propertyr&   r,   r$   setterr?   rB   rD   rF   rH   rJ   rM   r   r   r   r	   r   %   sR   




!











r   )	r   r:   Z openpyxl.worksheet.header_footerr   r   r6   r   objectr   r   r   r   r	   <module>   s
   
