U o^@sBddlZddlZddlmZedZddZGdddeZdS)N) HeaderFooterz [\\*?:/\[\]]cs|fdd|D}|rxd|}tdtdtj}||}|rxdd|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 cs g|]}|kr|qS)lower).0nvaluerq/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/openpyxl/openpyxl/workbook/child.py sz(avoid_duplicate_name..,z (?Pz)(?P<count>\d*),?c�����������������S���s ���g�|�]\}}|��rt|qS�r���)isdigitint)r���tidxr���r���r ���r ������s������r���z{0}{1}���)joinrecompileescapeIfindallmaxformat)namesr���matchZsheet_title_regexmatchescountsZhighestr���r���r ���avoid_duplicate_name���s����  r���c�������������������@���s ��e�Zd�ZdZdZdZdZdZd$ddZdd�Z e d d �Z e d d �Z e d d�Z e jdd�Z e dd�Zejdd�Ze dd�Zejdd�Ze dd�Zejdd�Ze dd�Zejdd�Ze dd�Zejdd�Ze dd �Zejd!d �Ze d"d#�ZdS�)%_WorkbookChild�Nz{0}ZSheetc�����������������C���s���||�_�|p|�j|�_t�|�_d�S�N)_parent_default_titletitler���)selfparentr#���r���r���r ���__init__-���s���� z_WorkbookChild.__init__c�����������������C���s���d�|�jj|�jS�)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�jS�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 dS�|stdt|drVt|tsVz|d}W�n�tk rT���tdY�nX�t|}|r|d | d}t||�j dk r|�j |krt |�j j|}t|dkrtd �||�_dS�) 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 characterdecodeasciizWorksheet 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!��� ValueErrorhasattr isinstancestrr-���UnicodeDecodeErrorINVALID_TITLE_REGEXsearchr���groupr#���r���r%���Z sheetnameslenwarningswarnr,���)r$���r���mmsgr���r���r ���r#���F���s&����     c�����������������C���s���|�j�jS�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�jS�r ���r��� oddFooterr)���r���r���r ���rA���r���s����z_WorkbookChild.oddFooterc�����������������C���s ���||�j�_d�S�r ���r@���r?���r���r���r ���rA���w���s����c�����������������C���s���|�j�jS�r ���r��� evenHeaderr)���r���r���r ���rC���|���s����z_WorkbookChild.evenHeaderc�����������������C���s ���||�j�_d�S�r ���rB���r?���r���r���r ���rC������s����c�����������������C���s���|�j�jS�r ���r��� evenFooterr)���r���r���r ���rE������s����z_WorkbookChild.evenFooterc�����������������C���s ���||�j�_d�S�r ���rD���r?���r���r���r ���rE������s����c�����������������C���s���|�j�jS�r ���r��� firstHeaderr)���r���r���r ���rG������s����z_WorkbookChild.firstHeaderc�����������������C���s ���||�j�_d�S�r ���rF���r?���r���r���r ���rG������s����c�����������������C���s���|�j�jS�r ���r��� firstFooterr)���r���r���r ���rI������s����z_WorkbookChild.firstFooterc�����������������C���s ���||�j�_d�S�r ���rH���r?���r���r���r ���rI������s����c�����������������C���s���|�j�|�jS�r ���)_pathr���_idr)���r���r���r ���path���s����z_WorkbookChild.path)NN)r(��� __module__ __qualname__r,���rK���rJ���r!���r"���r&���r*���propertyr%���r+���r#���setterr>���rA���rC���rE���rG���rI���rL���r���r���r���r ���r���%���sR���     !            r���) r���r9���Z openpyxl.worksheet.header_footerr���r���r5���r���objectr���r���r���r���r ���<module>���s ���