ó
Å1@]c           @   sò  d  d l  Z  d  d l Z d  d l Z d  d l Z d d l m Z d d l m Z m Z e j	 d d k rr e
 Z n e Z d „  e d „ Z d	 d
 „  e d „ Z d d. d „  ƒ  YZ e j d ƒ Z d „  Z e j d ƒ Z d „  Z i d d 6d d 6d d 6d d 6d d 6d d 6d d 6Z e j d ƒ Z e j d ƒ Z e j d  ƒ Z e j d! ƒ Z e j d" ƒ Z e d# „ Z e j d$ ƒ Z d% „  Z e j d& ƒ Z e j d' ƒ Z  e j d( ƒ Z! e j d) ƒ Z" d* „  Z# d+ „  Z$ e j d, ƒ Z% d- „  Z& d S(/   iÿÿÿÿNi   (   t	   TomlError(   t
   rfc3339_ret   parse_rfc3339_rei    i   c         C   s   | S(   N(    (   t   tt   xt   v(    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   <lambda>
   t    c         C   s4   t  |  j ƒ  d | d | d t |  d t |  ƒ ƒ ƒS(   Nt	   translatet   object_pairs_hookt   filenamet   name(   t   loadst   readt   getattrt   repr(   t   finR   R	   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   load
   s    s   <string>c         C   s   | S(   N(    (   R   R   R   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyR      R   c            s  t  |  t ƒ r! |  j d ƒ }  n  |  j d d ƒ }  ˆ ƒ  } ˆ ƒ  } | } t |  d ˆ ƒ} t | d ˆ ƒ} ‡ ‡ f d †  ‰  ‡  ‡ ‡ f d †  ‰ xÄ| D]¼\ }	 }
 ‰ |	 d k rÿ |
 \ } } | | k ræ ˆ  d	 j | ƒ ƒ n  ˆ | d ˆ ƒ| | <q |	 d
 k } | } xb |
 d  D]V } t  | j | ƒ t ƒ rQ| | d \ } } q| j	 | d  ˆ ƒ  f ƒ \ } } qWˆ ƒ  } |
 d } | | k rÊ| r´| ˆ ƒ  f g | | <qY| ˆ ƒ  f | | <q t  | | t ƒ r| sðˆ  d ƒ n  | | j | ˆ ƒ  f ƒ q | r ˆ  d ƒ n  | | \ } } | d  k	 rIˆ  d ƒ n  | | f | | <q W‡  ‡ ‡ f d †  ‰ ˆ | | ƒ S(   Ns   utf-8s   
s   
R
   R	   c            s!   t  |  ˆ d ˆ d ˆ  ƒ ‚ d  S(   Ni    i   (   R    (   t   msg(   R
   t   pos(    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   error   s    c            sõ   |  \ } } ‰  } | d k r: ˆ  j  d ƒ r: ˆ  d ‰  n  | d k r¡ ˆ  ry t ‡  f d †  ˆ  d Dƒ ƒ ry ˆ d ƒ n  g  ˆ  D] } ˆ | d | ƒ^ q€ ‰  nD | d k rå | g  ˆ  D]" } | ˆ ˆ  | d | ƒf ^ q· ƒ ‰  n  ˆ | | ˆ  ƒ S(	   Nt   strs   
i   t   arrayc         3   s/   |  ]% \ } } } } | ˆ  d  d  k Vq d S(   i    N(    (   t   .0t   kR   R   t   p(   t   value(    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pys	   <genexpr>"   s    s   array-type-mismatchR	   t   table(   t
   startswitht   any(   R   R	   t   kindt   textR   t   itemR   (   R   t   process_valueR   (   R   s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyR!      s    &(8t   kvs2   duplicate_keys. Key "{0}" was used more than once.t   table_arrayiÿÿÿÿt   table_type_mismatcht   duplicate_tablesc            s©   |  d  k r ˆ ƒ  }  n  xŠ | D]‚ } | |  k r> ˆ  d ƒ n  | | } t | t ƒ r† g  | D] \ } } ˆ | | ƒ ^ q^ |  | <q ˆ | d | d ƒ |  | <q W|  S(   Nt   key_table_conflicti    i   (   t   Nonet
   isinstancet   list(   t   scopet   tablesR   R   t   sct   tbl(   R   t   merge_tablesR	   (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyR.   K   s    
/(   R(   t   bytest   decodet   replacet   _Sourcet   _p_tomlt   formatt   getR)   t
   setdefaultR'   t   append(   t   sR
   R   R	   t   rootR+   R*   t   srct   astR   R   R   R   t   is_table_arrayt   curR   t   dt	   old_scopet
   next_table(    (   R   R
   R.   R	   R   R!   R   s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyR      sP    		%	
R2   c           B   s¤   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s1   | |  _  d |  _ d  |  _ | |  _ g  |  _ d  S(   Ni   (   i   i   (   R8   t   _posR'   t   _lastt	   _filenamet   backtrack_stack(   t   selfR8   R
   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   __init__[   s
    				c         C   s   |  j  S(   N(   RB   (   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   lastb   s    c         C   s   |  j  S(   N(   RA   (   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyR   e   s    c         C   s   |  j  d  ƒ S(   N(   t   _expectR'   (   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   failh   s    c         C   sA   |  j  r= |  j  d |  _ |  d |  _  |  j |  j ƒ |  j Sd  S(   Ni    i   (   R8   RB   t   _advanceR'   (   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   consume_dotk   s    	c         C   s   |  j  |  j ƒ  ƒ S(   N(   RH   RK   (   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt
   expect_dots   s    c         C   s   |  j  s d |  _ t St S(   NR   (   R8   RB   t   Truet   False(   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   consume_eofv   s    		c         C   s   |  j  |  j ƒ  ƒ S(   N(   RH   RO   (   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt
   expect_eof|   s    c         C   sF   |  j  j | ƒ rB |  j  t | ƒ |  _  | |  _ |  j | ƒ t St S(   N(   R8   R   t   lenRB   RJ   RM   RN   (   RE   R8   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   consume   s    	c         C   s   |  j  |  j | ƒ ƒ S(   N(   RH   RR   (   RE   R8   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   expect‡   s    c         C   s^   | j  |  j ƒ } | rZ |  j t | j d ƒ ƒ |  _ | |  _ |  j | j d ƒ ƒ | Sd  S(   Ni    (   t   matchR8   RQ   t   groupRB   RJ   R'   (   RE   t   ret   m(    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt
   consume_reŠ   s    	c         C   s   |  j  |  j | ƒ ƒ S(   N(   RH   RX   (   RE   RV   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt	   expect_re“   s    c         C   s    |  j  j |  j |  j f ƒ d  S(   N(   RD   R7   R8   RA   (   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt	   __enter__–   s    c         C   sA   | d  k r |  j j ƒ  n |  j j ƒ  \ |  _ |  _ | t k S(   N(   R'   RD   t   popR8   RA   R    (   RE   t   typeR   t	   traceback(    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   __exit__™   s    c         C   s   |  j  |  j f |  j d <d  S(   Niÿÿÿÿ(   R8   RA   RD   (   RE   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   commit    s    c         C   s3   | s/ t  d |  j d |  j d |  j ƒ ‚ n  | S(   NR   i    i   (   R    RA   RC   (   RE   t   r(    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyRH   £   s    )c         C   sv   | j  d ƒ } | d k rE |  j d |  j d t | ƒ f |  _ n- |  j d | j d ƒ t | ƒ | f |  _ d  S(   Ns   
iÿÿÿÿi    i   (   t   rfindRA   RQ   t   count(   RE   R8   t
   suffix_pos(    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyRJ   ¨   s    *N(   t   __name__t
   __module__R'   RF   RG   R   RI   RK   RL   RO   RP   RR   RS   RX   RY   RZ   R^   R_   RH   RJ   (    (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyR2   Z   s"   																s!   (?:[ \t]|#[^\n]*\n|#[^\n]*\Z|\n)*c         C   s   |  j  t ƒ d  S(   N(   RY   t   _ews_re(   R8   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   _p_ews°   s    s   [ \t]*c         C   s   |  j  t ƒ d  S(   N(   RY   t   _ws_re(   R8   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   _p_ws´   s    s   t   bs   
t   ns   R`   s   	R   t   "s   \s   t   fs   [^"\\\000-\037]*s   u([0-9a-fA-F]{4})s   U([0-9a-fA-F]{8})s   [btnfr\"\\]s   
[ 	
]*c         C   s  g  } xö t  rþ | j |  j | ƒ j d ƒ ƒ |  j d ƒ sA Pn  |  j t ƒ rS q	 |  j t ƒ sq |  j t ƒ rÎ t	 |  j
 ƒ  j d ƒ d ƒ } d | k o¦ d k  n r¸ |  j ƒ  n  | j t | ƒ ƒ q	 |  j t ƒ | j t |  j
 ƒ  j d ƒ ƒ q	 Wd j | ƒ S(   Ni    s   \i   i   i Ø  i à  R   (   RM   R7   RY   RU   RR   RX   t   _newline_esc_ret   _short_uni_ret   _long_uni_ret   intRG   RI   t   _chrt   _escapes_ret   _escapest   join(   R8   t   contentt   resR   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   _p_basicstr_content¿   s    	$s   [0-9a-zA-Z-_]+c         C   s¿   |  2 |  j  d ƒ t |  t ƒ } |  j  d ƒ | SWd  QX|  j d ƒ r© |  j d ƒ r€ |  j t ƒ j d ƒ } |  j  d ƒ n% |  j t ƒ j d ƒ } |  j  d ƒ | S|  j t ƒ j d ƒ S(   NRl   s   's   ''i    s   '''(	   RS   Rx   t   _basicstr_reRR   RY   t   _litstr_ml_reRU   t
   _litstr_ret   _key_re(   R8   R`   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   _p_keyÒ   s    
sH   [+-]?(?:0|[1-9](?:_?\d)*)(?:\.\d(?:_?\d)*)?(?:[eE][+-]?(?:\d(?:_?\d)*))?s&   (?:""?(?!")|[^"\\\000-\011\013-\037])*s   [^'\000\010\012-\037]*s(   (?:(?:|'|'')(?:[^'\000-\010\013-\037]))*c      	   C   s½  |  j  ƒ  } |  j d ƒ r1 d |  j ƒ  t | f S|  j d ƒ rV d |  j ƒ  t | f S|  j d ƒ r¿ |  j d ƒ r“ t |  t ƒ } |  j d ƒ n t |  t ƒ } |  j d ƒ d | | | f S|  j d ƒ r:|  j d	 ƒ r|  j	 t
 ƒ j d
 ƒ } |  j d ƒ n% |  j	 t ƒ j d
 ƒ } |  j d ƒ d | | | f S|  j t ƒ rt|  j ƒ  } d | j d
 ƒ t | ƒ | f S|  j t ƒ r |  j ƒ  j d
 ƒ } | j d d ƒ } d | k sÎd | k sÎd | k räd | t | ƒ | f Sd | t | d ƒ | f Sn  |  j d ƒ r¤g  } |  ` xX t rvt |  ƒ | j t |  d | ƒƒ |  j ƒ  t |  ƒ |  j d ƒ |  j ƒ  qWWd  QXt |  ƒ |  j d ƒ d d  | | f S|  j d ƒ r¯t |  ƒ | ƒ  } |  j d ƒ sŸt |  ƒ } t |  ƒ |  j d ƒ t |  ƒ t |  d | ƒ| | <t |  ƒ xj |  j d ƒ rŽt |  ƒ t |  ƒ } t |  ƒ |  j d ƒ t |  ƒ t |  d | ƒ| | <t |  ƒ q%W|  j d ƒ n  d d  | | f S|  j ƒ  d  S(   Nt   truet   boolt   falseRl   s   ""s   """R   s   's   ''i    s   '''t   datetimet   _R   t   .t   et   Et   floatRq   i
   t   [R	   t   ,t   ]R   t   {t   }t   =R   (   R   RR   RG   RM   RN   Rx   t   _basicstr_ml_reRS   Ry   RY   Rz   RU   R{   RX   R   R   t	   _float_reR1   R†   Rq   Rg   R7   t   _p_valueR_   R'   Ri   R}   RI   (   R8   R	   R   R`   RW   t   itemsR   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyR   ç   s|    $	




	





c         C   s  |  j  ƒ  } |  j d ƒ rÆ |  j d ƒ } t |  ƒ t |  ƒ g } t |  ƒ x: |  j d ƒ r‰ t |  ƒ | j t |  ƒ ƒ t |  ƒ qP W|  j d ƒ | r­ |  j d ƒ n  | r¹ d n d | | f St |  ƒ } t |  ƒ |  j d ƒ t |  ƒ t |  d | ƒ} d | | f | f S(	   NR‡   Rƒ   R‰   R#   R   RŒ   R	   R"   (   R   RR   Ri   R}   R7   RS   R   (   R8   R	   R   t   is_arrayt   keyst   keyR   (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   _p_stmt2  s(    




s   (?:[ \t]*(?:#[^\n]*)?\n)+[ \t]*c      	   C   s‹   g  } t  |  ƒ |  [ | j t |  d | ƒƒ x: t rl |  j ƒ  |  j t ƒ | j t |  d | ƒƒ q3 WWd  QXt  |  ƒ |  j ƒ  | S(   NR	   (   Rg   R7   R”   RM   R_   RY   t   _stmtsep_reRP   (   R8   R	   t   stmts(    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyR3   J  s    
	
#

(    ('   t   stringRV   t   sysR   t   coreR    t   utilsR   R   t   version_infot   unichrRr   t   chrt   dictR   R   R2   t   compileRf   Rg   Rh   Ri   Rt   Ry   Ro   Rp   Rs   Rn   Rx   R|   R}   RŽ   R   R{   Rz   R   R”   R•   R3   (    (    (    s8   lib/python2.7/site-packages/pip/_vendor/pytoml/parser.pyt   <module>   s<   0	MU		&		K	