ó
A¾^Yc           @   sm   d  Z  d Z d d g Z d Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 „  Z	 d
 S(   se    brain-dead simple parser for ini-style files.
(C) Ronny Pfannschmidt, Holger Krekel -- MIT licensed
s   0.2.dev2t	   IniConfigt
   ParseErrors   #;c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s5   t  j |  | | | ƒ | |  _ | |  _ | |  _ d  S(   N(   t	   Exceptiont   __init__t   patht   linenot   msg(   t   selfR   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR      s    		c         C   s   d |  j  |  j d |  j f S(   Ns	   %s:%s: %si   (   R   R   R   (   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyt   __str__   s    (   t   __name__t
   __module__R   R   (    (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR   
   s   	t   SectionWrapperc           B   sD   e  Z d  „  Z d „  Z d e d „ Z d „  Z d „  Z d „  Z	 RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   configt   name(   R   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR      s    	c         C   s   |  j  j |  j | ƒ S(   N(   R   t   lineofR   (   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR      s    c         C   s"   |  j  j |  j | d | d | ƒS(   Nt   convertt   default(   R   t   getR   (   R   t   keyR   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR      s    c         C   s   |  j  j |  j | S(   N(   R   t   sectionsR   (   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyt   __getitem__   s    c         #   sP   ˆ  j  j j ˆ  j g  ƒ } ‡  f d †  } x t | d | ƒD] } | Vq= Wd  S(   Nc            s   ˆ  j  j ˆ  j |  ƒ S(   N(   R   R   R   (   R   (   R   (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR   $   s    R   (   R   R   R   R   t   sorted(   R   t   sectionR   R   (    (   R   s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyt   __iter__"   s    c         c   s$   x |  D] } | |  | f Vq Wd  S(   N(    (   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyt   items)   s    N(
   R	   R
   R   R   t   Nonet   strR   R   R   R   (    (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR      s   				c           B   se   e  Z d	 d  „ Z d „  Z d „  Z d „  Z d	 d „ Z d	 e d „ Z	 d „  Z
 d „  Z d „  Z RS(
   c   	      C   sT  t  | ƒ |  _ | d  k rT t |  j ƒ } z |  j t | ƒ ƒ } Wd  | j ƒ  Xn |  j | j t ƒ ƒ } i  |  _	 i  |  _
 xÏ | D]Ç \ } } } } | d  k r¶ |  j | d ƒ n  | |  j	 | | f <| d  k r| |  j
 k rþ |  j | d | f ƒ n  i  |  j
 | <q… | |  j
 | k r;|  j | d | f ƒ n  | |  j
 | | <q… Wd  S(   Ns   no section header defineds   duplicate section %rs   duplicate name %r(   R   R   R   t   opent   _parset   itert   closet
   splitlinest   Truet   _sourcesR   t   _raise(	   R   R   t   datat   ft   tokensR   R   R   t   value(    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR   /   s(    		c         C   s   t  |  j | | ƒ ‚ d  S(   N(   R   R   (   R   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR"   J   s    c         C   sl  g  } d  } xYt | ƒ D]K\ } } |  j | | ƒ \ } } | d  k	 rq | d  k	 rq | j | | | | f ƒ q | d  k	 rÄ | d  k rÄ | s¢ |  j | d ƒ n  | } | j | | d  d  f ƒ q | d  k r | d  k	 r | sõ |  j | d ƒ n  | j ƒ  } | d \ }	 }
 |	 d  k r0|  j | d ƒ n  |
 rId |
 | f } n  | j | d  | f ƒ q q W| S(   Ns   empty section names   unexpected value continuationiþÿÿÿs   %s
%siÿÿÿÿ(   R   t	   enumeratet
   _parselinet   appendR"   t   pop(   R   t	   line_itert   resultR   R   t   lineR   R#   t   lastt	   last_namet	   last_data(    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR   M   s,    c         C   sb  t  | ƒ r d } n | j ƒ  } | s+ d
 S| d d k rœ | } x' t D] } | j | ƒ d j ƒ  } qH W| d d k rŒ | d d !d  f Sd  | j ƒ  f S| d j ƒ  sNy4 | j d d ƒ \ } } d | k rß t ƒ  ‚ n  WnU t k
 r7y | j d d ƒ \ } } Wq8t k
 r3|  j | d	 | ƒ q8Xn X| j ƒ  | j ƒ  f Sd  | j ƒ  f Sd  S(   Nt    i    t   [iÿÿÿÿt   ]i   t   =t   :s   unexpected line: %r(   NN(	   t   iscommentlinet   rstripR   t   COMMENTCHARSt   splitt   stript   isspacet
   ValueErrorR"   (   R   R-   R   t   reallinet   cR   R&   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR(   i   s0    	c         C   s0   |  j  j | | f ƒ } | d  k	 r, | d Sd  S(   Ni   (   R!   R   R   (   R   R   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR   ‰   s    c         C   s2   y | |  j  | | ƒ SWn t k
 r- | SXd  S(   N(   R   t   KeyError(   R   R   R   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR   Ž   s    c         C   s+   | |  j  k r t | ƒ ‚ n  t |  | ƒ S(   N(   R   R?   R   (   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR   ”   s    c         c   s5   x. t  |  j d |  j ƒD] } t |  | ƒ Vq Wd  S(   NR   (   R   R   R   R   (   R   R   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR   ™   s    c         C   s   | |  j  k S(   N(   R   (   R   t   arg(    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyt   __contains__   s    N(   R	   R
   R   R   R"   R   R(   R   R   R   R   R   RA   (    (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR    .   s   			 		c         C   s   |  j  ƒ  d  } | t k S(   Ni   (   t   lstripR8   (   R-   R>   (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyR6       s    N(
   t   __doc__t   __version__t   __all__R8   R   R   t   objectR   R    R6   (    (    (    s)   /tmp/pip-build-UnxK1c/py/py/_iniconfig.pyt   <module>   s   
r