
^Q\                 @   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 j	 d  Z
 d d   Z Gd d	   d	 e  Z d S)
    )absolute_importN)unicode	safe_repr)HeaderFooterz[\\*?:/\[\]]c                s     f d d   |  D } | r d j  |   }  t j d t j    t j  } | j |   } | r d d   | D } d } | r t |  } n  d j   | d    q n    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  |  ]$ } | j      j    k r |  q S )lower).0n)valuer   L/var/www/dbchiro/venv/lib/python3.4/site-packages/openpyxl/workbook/child.py
<listcomp>   s   	 z(avoid_duplicate_name.<locals>.<listcomp>,z(?P<title>%s)(?P<count>\d*),?c             S   s.   g  |  ]$ \ } } | j    r t |   q Sr   )isdigitint)r   tidxr   r   r   r       s   	 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 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)_WorkbookChild__parent_default_titletitler   )selfparentr$   r   r   r   __init__0   s    	z_WorkbookChild.__init__c             C   s   d j  |  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   s   |  j  S)N)r"   )r%   r   r   r   r&   :   s    z_WorkbookChild.parentc             C   s
   |  j  j S)N)r"   encoding)r%   r   r   r   r+   ?   s    z_WorkbookChild.encodingc             C   s   |  j  S)N)_WorkbookChild__title)r%   r   r   r   r$   D   s    z_WorkbookChild.titlec             C   s  | s t  d   n  t | d  rm t | t  sm y | j d  } Wqj t k
 rf t  d   Yqj Xqm n  t j |  } | r d j | j	 d   } t  |   n  |  j
 d k	 r |  j
 | k r t |  j j |  } n  t |  d k rt j d	  n  | |  _ d S)
z
        Set a sheet title, ensuring it is valid.
        Limited to 31 characters, no special characters.
        Duplicate titles will be incremented numerically
        z&Title must have at least one characterdecodeasciiz Worksheet titles must be unicodez*Invalid character {0} found in sheet titler   N   zTTitle is more than 31 characters. Some applications may not be able to read the file)
ValueErrorhasattr
isinstancer   r-   UnicodeDecodeErrorINVALID_TITLE_REGEXsearchr   groupr$   r   r&   Z
sheetnameslenwarningswarnr,   )r%   r
   mmsgr   r   r   r$   I   s"    c             C   s
   |  j  j S)N)r   	oddHeader)r%   r   r   r   r<   h   s    z_WorkbookChild.oddHeaderc             C   s   | |  j  _ d  S)N)r   r<   )r%   r
   r   r   r   r<   m   s    c             C   s
   |  j  j S)N)r   	oddFooter)r%   r   r   r   r=   r   s    z_WorkbookChild.oddFooterc             C   s   | |  j  _ d  S)N)r   r=   )r%   r
   r   r   r   r=   w   s    c             C   s
   |  j  j S)N)r   
evenHeader)r%   r   r   r   r>   |   s    z_WorkbookChild.evenHeaderc             C   s   | |  j  _ d  S)N)r   r>   )r%   r
   r   r   r   r>      s    c             C   s
   |  j  j S)N)r   
evenFooter)r%   r   r   r   r?      s    z_WorkbookChild.evenFooterc             C   s   | |  j  _ d  S)N)r   r?   )r%   r
   r   r   r   r?      s    c             C   s
   |  j  j S)N)r   firstHeader)r%   r   r   r   r@      s    z_WorkbookChild.firstHeaderc             C   s   | |  j  _ d  S)N)r   r@   )r%   r
   r   r   r   r@      s    c             C   s
   |  j  j S)N)r   firstFooter)r%   r   r   r   rA      s    z_WorkbookChild.firstFooterc             C   s   | |  j  _ d  S)N)r   rA   )r%   r
   r   r   r   rA      s    c             C   s   |  j  j |  j  S)N)_pathr   _id)r%   r   r   r   path   s    z_WorkbookChild.path)r)   
__module____qualname__r,   rC   rB   r"   r#   r'   r*   propertyr&   r+   r$   setterr<   r=   r>   r?   r@   rA   rD   r   r   r   r   r    (   s0   r    )
__future__r   r   r8   Zopenpyxl.compatr   r   Z openpyxl.worksheet.header_footerr   r   r4   r   objectr    r   r   r   r   <module>   s   