σ
]c           @@  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   Z d e f d     YZ d S(	   i    (   t   absolute_importN(   t   unicodet	   safe_repr(   t   HeaderFooters   [\\*?:/\[\]]c   
      C@  sι   g  |  D]$ } | j    | j    k r | ^ q } | rε d j |   }  t j d t j |  t j  } | j |   } | rε g  | D]$ \ } } | j   r t |  ^ q } d }	 | rΙ t	 |  }	 n  d j
 | |	 d  } qε n  | S(   s   
    Naive check to see whether name already exists.
    If name does exist suggest a name using an incrementer
    Duplicates are case insensitive
    u   ,s   (?P<title>%s)(?P<count>\d*),?i    u   {0}{1}i   (   t   lowert   joint   ret   compilet   escapet   It   findallt   isdigitt   intt   maxt   format(
   t   namest   valuet   nt   matcht   sheet_title_regext   matchest   tt   idxt   countst   highest(    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyt   avoid_duplicate_name   s    1"1t   _WorkbookChildc           B@  sR  e  Z d  Z d Z d Z d Z d Z d 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 RS(   t    s   {0}t   Sheetc         C@  s+   | |  _  | p |  j |  _ t   |  _ d  S(   N(   t   _parentt   _default_titlet   titleR   (   t   selft   parentR   (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyt   __init__0   s    	c         C@  s   d j  |  j j t |  j   S(   Ns   <{0} "{1}">(   R   t	   __class__t   __name__R   R   (   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyt   __repr__6   s    c         C@  s   |  j  S(   N(   R   (   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR!   :   s    c         C@  s
   |  j  j S(   N(   R   t   encoding(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR&   ?   s    c         C@  s   |  j  S(   N(   t   _WorkbookChild__title(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR   D   s    c         C@  s  |  j  s d S| s" t d   n  t | d  ry t | t  sy y | j d  } Wqv t k
 rr t d   qv Xqy 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(
   s¬   
        Set a sheet title, ensuring it is valid.
        Limited to 31 characters, no special characters.
        Duplicate titles will be incremented numerically
        Ns&   Title must have at least one charactert   decodet   asciis    Worksheet titles must be unicodes*   Invalid character {0} found in sheet titlei    i   sT   Title is more than 31 characters. Some applications may not be able to read the file(   R   t
   ValueErrort   hasattrt
   isinstanceR   R(   t   UnicodeDecodeErrort   INVALID_TITLE_REGEXt   searchR   t   groupR   t   NoneR   R!   t
   sheetnamest   lent   warningst   warnR'   (   R    R   t   mt   msg(    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR   I   s&    	c         C@  s
   |  j  j S(   N(   R   t	   oddHeader(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR8   k   s    c         C@  s   | |  j  _ d  S(   N(   R   R8   (   R    R   (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR8   p   s    c         C@  s
   |  j  j S(   N(   R   t	   oddFooter(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR9   u   s    c         C@  s   | |  j  _ d  S(   N(   R   R9   (   R    R   (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR9   z   s    c         C@  s
   |  j  j S(   N(   R   t
   evenHeader(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR:      s    c         C@  s   | |  j  _ d  S(   N(   R   R:   (   R    R   (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR:      s    c         C@  s
   |  j  j S(   N(   R   t
   evenFooter(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR;      s    c         C@  s   | |  j  _ d  S(   N(   R   R;   (   R    R   (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR;      s    c         C@  s
   |  j  j S(   N(   R   t   firstHeader(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR<      s    c         C@  s   | |  j  _ d  S(   N(   R   R<   (   R    R   (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR<      s    c         C@  s
   |  j  j S(   N(   R   t   firstFooter(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR=      s    c         C@  s   | |  j  _ d  S(   N(   R   R=   (   R    R   (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR=   ’   s    c         C@  s   |  j  j |  j  S(   N(   t   _pathR   t   _id(   R    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyt   path§   s    N(   R$   t
   __module__R'   R1   R?   R>   R   R   R"   R%   t   propertyR!   R&   R   t   setterR8   R9   R:   R;   R<   R=   R@   (    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyR   (   s0   	"(   t
   __future__R    R   R4   t   openpyxl.compatR   R   t    openpyxl.worksheet.header_footerR   R   R.   R   t   objectR   (    (    (    s6   lib/python2.7/site-packages/openpyxl/workbook/child.pyt   <module>   s   	