³ò
Ï‘RMc        	   @   sË  d  d k  Z  d  d k Z d  d k l Z e i Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ	 d	 e	 f d
 „  ƒ  YZ
 d e f d „  ƒ  YZ e ƒ  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e i f d „  ƒ  YZ d  e f d! „  ƒ  YZ d" e f d# „  ƒ  YZ d d d d d d$ „ Z d% „  Z d S(&   iÿÿÿÿN(   t   extendabletypet   AmbigousOptionErrorc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR      s   t   NoMatchingOptionFoundc           B   s   e  Z RS(    (   R   R   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   
   s   t   ConfigErrorc           B   s   e  Z RS(    (   R   R   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR      s   t   ConflictConfigErrorc           B   s   e  Z RS(    (   R   R   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR      s   t   Configc           B   sì   e  Z e Z d d  „ Z d „  Z d „  Z e 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 d „  Z d d „ Z e d „ Z RS(   c         K   s>   | |  _  h  |  _ | |  _ h  |  _ g  |  _ |  i | ƒ d  S(   N(   t   _cfgimpl_descrt   _cfgimpl_value_ownerst   _cfgimpl_parentt   _cfgimpl_valuest   _cfgimpl_warningst   _cfgimpl_build(   t   selft   descrt   parentt	   overrides(    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __init__   s    					c         C   s’   x~ |  i  i D]p } t | t ƒ o* | i ƒ  |  i | i <d |  i | i <q t | t ƒ o  t	 | d |  ƒ|  i | i <q q W|  i
 | ƒ d  S(   Nt   defaultR   (   R   t	   _childrent
   isinstancet   Optiont
   getdefaultR   t   _nameR	   t   OptionDescriptionR   t   override(   R   R   t   child(    (    s&   /64/home/arigo/u/pypy/config/config.pyR      s     $c         C   sI   xB | i  ƒ  D]4 \ } } |  i | ƒ \ } } | i | | d ƒ q Wd  S(   NR   (   t	   iteritemst   _cfgimpl_get_home_by_patht	   setoption(   R   R   t   namet   valuet
   homeconfig(    (    s&   /64/home/arigo/u/pypy/config/config.pyR   '   s     c         C   sð   t  i |  i ƒ } |  i | _ h  | _ } | | _ h  | _ } x¨ |  i i D]š } t | t	 ƒ oJ |  i | i
 | | i
 <| o d | | i
 <qè |  i | i
 | | i
 <qN t | t ƒ o* |  i | i
 i | d | ƒ| | i
 <qN qN W| S(   NR   R   (   R   t   __new__t	   __class__R   R	   R
   R   R   R   R   R   R   t   copy(   R   t
   as_defaultR   t   resultt   ownerst   vR   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR$   ,   s     	 c         C   sl   |  i  o& t |  | ƒ | j o t d ƒ ‚ n | i d ƒ o | |  i | <d  Sn |  i | | d ƒ d  S(   Ns'   trying to change a frozen option objectt	   _cfgimpl_t   user(   t   _cfgimpl_frozent   getattrt	   TypeErrort
   startswitht   __dict__R   (   R   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __setattr__?   s     c         C   s˜   d | j o& |  i  | ƒ \ } } t | | ƒ Sn | i d ƒ o t d |  i | f ƒ ‚ n | |  i j o t d |  i | f ƒ ‚ n |  i | S(   Nt   .R)   s   %s object has no attribute %s(   R   R,   R.   t   AttributeErrorR#   R   (   R   R   R!   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __getattr__G   s    c         C   s~   | i  d ƒ o |  i | =d  Sn d |  i | <t |  i | ƒ } t | t ƒ o t d ƒ ‚ n t | d d  ƒ |  i	 | <d  S(   NR)   R   s   can't option subgroup(
   R.   R/   R	   R,   R   R   R   R2   t   NoneR   (   R   R   t   opt(    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __delattr__T   s    
c         C   sÅ   | |  i  j o t d | f ƒ ‚ n t |  i | ƒ } |  i | i } | d j oK t |  | ƒ } | | j p | d j o d  Sn t d | | f ƒ ‚ n | i |  | | ƒ | |  i | <d  S(   Ns   unknown option %sR   t	   suggesteds)   cannot override value to %s for option %s(   s   defaultR7   (   s   defaultR7   (   R   R2   R,   R   R	   R   R   R   (   R   R   R    t   whoR   t   oldownert   oldvalue(    (    s&   /64/home/arigo/u/pypy/config/config.pyR   `   s    c         K   s1   x* | i  ƒ  D] \ } } |  i | | ƒ q Wd  S(   N(   t   itemst   suggestoption(   R   t   kwargsR   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   suggestn   s     c         C   s1   y |  i  | | d ƒ Wn t j
 o n Xd  S(   NR7   (   R   R   (   R   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR<   r   s    c      	   K   s,  g  } |  i  ƒ  D] } | | i d ƒ q ~ } xõ | i ƒ  D]ç \ } } | i d ƒ } g  } | D]) } | t | ƒ | j o | | qc qc ~ }	 t |	 ƒ d j o? d i |	 d ƒ }
 |  i |
 ƒ \ } }
 | i |
 | d ƒ q= t |	 ƒ d j o t d | f ƒ ‚ q= t d | f ƒ ‚ q= Wd  S(   NR1   i   i    R*   s&   more than one option that ends with %ss"   there is no option that matches %s(	   t   getpathst   splitR   t   lent   joinR   R   R   R   (   R   R=   t   _[1]t   pt	   all_pathst   keyR    t   key_pt   _[2]t
   candidatesR   R!   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   setz   s    0 =c         C   sA   | i  d ƒ } x! | d  D] } t |  | ƒ }  q W|  | d f S(   s   returns tuple (config, name)R1   iÿÿÿÿ(   R@   R,   (   R   t   patht   step(    (    s&   /64/home/arigo/u/pypy/config/config.pyR   Š   s
     c         C   s%   x |  i  d  j	 o |  i  }  q W|  S(   N(   R
   R4   (   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   _cfgimpl_get_toplevel‘   s     c         C   s   |  i  ƒ  i i | ƒ d  S(   N(   RM   R   t   append(   R   t   warning(    (    s&   /64/home/arigo/u/pypy/config/config.pyt   add_warning–   s    c         C   s   |  i  ƒ  i S(   N(   RM   R   (   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   get_warnings™   s    c         C   s   t  |  i d <t  S(   NR+   (   t   TrueR/   (   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   _freeze_œ   s    c         C   s   |  i  i |  ƒ S(   N(   R   t   getkey(   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyRT       s    c         C   s   t  |  i ƒ  ƒ S(   N(   t   hashRT   (   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __hash__£   s    c         C   s   |  i  ƒ  | i  ƒ  j S(   N(   RT   (   R   t   other(    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __eq__¦   s    c         C   s   |  | j S(   N(    (   R   RW   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __ne__©   s    c         c   sI   xB |  i  i D]4 } t | t ƒ o | i t |  | i ƒ f Vq q Wd  S(   N(   R   R   R   R   R   R,   (   R   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __iter__¬   s     t    c   	   	   C   s  g  } g  } |  i  i D] } | | i | f q ~ } | i ƒ  x˜ | D] \ } } |  i i | d  ƒ d j o qG n t |  | ƒ } t | t	 ƒ o | i
 | d ƒ } n d | | | f } | o | i | ƒ qG qG W| o | o d Sn | i d d | |  i  i f ƒ d i | ƒ S(   NR   s       s   %s    %s = %sR[   i    s   %s[%s]s   
(   R   R   R   t   sortR	   t   getR4   R,   R   R   t   __str__RN   t   insertRB   (	   R   t   indentt   linesRC   R   t   childrenR   R    t   substr(    (    s&   /64/home/arigo/u/pypy/config/config.pyR^   ±   s$    )
  c         C   s   |  i  i d | ƒ S(   s9   returns a list of all paths in self, recursively
        t   include_groups(   R   R?   (   R   Rd   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR?   Å   s    N(   R   R   t   FalseR+   R4   R   R   R   R$   R0   R3   R6   R   R>   R<   RJ   R   RM   RP   RQ   RS   RT   RV   RX   RY   RZ   R^   R?   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR      s0   																				R   c           B   sP   e  Z e Z e d  „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   R   t   doct   cmdline(   R   R   Rf   Rg   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   Ñ   s    		c         C   s   t  d ƒ ‚ d  S(   Ns   abstract base class(   t   NotImplementedError(   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   validateÖ   s    c         C   s   |  i  S(   N(   R   (   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   Ù   s    c         C   sb   |  i  } | d j o | d  j o n+ |  i | ƒ p t d | | f ƒ ‚ n | | i | <d  S(   NR   s   invalid value %s for option %s(   R   R4   Ri   R   R   (   R   t   configR    R8   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   Ü   s    	c         C   s   | S(   N(    (   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRT   ä   s    c         C   s   | S(   N(    (   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   convert_from_cmdlineç   s    c         C   sS   t  | |  ƒ } | i d |  i d d d d |  i d | d |  i i ƒ  | Œ } d  S(   Nt   helps	    %defaultt   actiont   callbackt   typet   metavar(   t   ConfigUpdatet
   add_optionRf   t   opt_typeR   t   upper(   R   t   argnamest   parserRj   Rn   t   option(    (    s&   /64/home/arigo/u/pypy/config/config.pyt   add_optparse_optionê   s
    (   R   R   R    t   __metaclass__t   DEFAULT_OPTION_NAMER   Ri   R   R   RT   Rk   Rx   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   Î   s   					t   ChoiceOptionc           B   s>   e  Z d  Z d d d e d „ Z d „  Z d „  Z d „  Z RS(   t   stringc         C   sr   t  t |  ƒ i | | | ƒ | |  _ | |  _ | d  j o
 h  } n | |  _ | d  j o
 h  } n | |  _ d  S(   N(   t   superR{   R   t   valuesR   R4   t	   _requirest	   _suggests(   R   R   Rf   R~   R   t   requirest   suggestsRg   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   õ   s    		
	
c   
      C   s÷   |  i  } xt |  i i | g  ƒ D]] \ } } | i ƒ  } | i | ƒ \ } } | d j o
 d }	 n d }	 | i | | |	 ƒ q WxT |  i i | g  ƒ D]= \ } } | i ƒ  } | i | ƒ \ } } | i | | ƒ q– Wt t	 |  ƒ i | | | ƒ d  S(   NR   t   required(
   R   R   R]   RM   R   R   R€   R<   R}   R{   (
   R   Rj   R    R8   R   RK   t   reqvaluet   toplevelR!   t   who2(    (    s&   /64/home/arigo/u/pypy/config/config.pyR     s    	 
 c         C   s   | d  j p | |  i j S(   N(   R4   R~   (   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRi     s    c         C   s
   | i  ƒ  S(   N(   t   strip(   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRk     s    N(	   R   R   Rs   R4   Rz   R   R   Ri   Rk   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR{   ò   s   		c         C   sT   |  i  d ƒ o d |  t d ƒ Sn |  i  d ƒ o d |  t d ƒ Sn d |  S(   Nt   withoutt   withs   no-(   R.   RA   (   t   optname(    (    s&   /64/home/arigo/u/pypy/config/config.pyt   _getnegation  s
    t
   BoolOptionc           B   s>   e  Z d d d d e e d  „ Z d „  Z d „  Z d „  Z RS(   c	   	      C   sP   t  t |  ƒ i | | d | ƒ| |  _ | |  _ | |  _ | |  _ | |  _ d  S(   NRg   (   R}   RŒ   R   R   R€   R   t   negationt
   _validator(	   R   R   Rf   R   R   R‚   t	   validatorRg   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR      s    				c         C   s   t  | t ƒ S(   N(   R   t   bool(   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRi   *  s    c   
      C   sI  |  i  } | o- |  i d  j	 o | i ƒ  } |  i | ƒ n | o |  i d  j	 oo xl |  i D]] \ } } | i ƒ  } | i | ƒ \ } } | d j o
 d }	 n d }	 | i | | |	 ƒ q^ Wn | o_ |  i d  j	 oO xL |  i D]= \ } } | i ƒ  } | i | ƒ \ } } | i | | ƒ qä Wn t	 t
 |  ƒ i | | | ƒ d  S(   NR   Rƒ   (   R   RŽ   R4   RM   R   R   R   R€   R<   R}   RŒ   (
   R   Rj   R    R8   R   R…   RK   R„   R!   R†   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   -  s(    	
 

 c   
      C   s  t  | |  t ƒ } | i d |  i d d d d | | Œ } |  i p d  Sn g  } | D]4 } | i d ƒ o | d t | i d ƒ ƒ qW qW ~ } t | ƒ d j o8 g  }	 | D]  } |	 d t | i d ƒ ƒ q² ~	 } n t  | |  t	 ƒ } | i d d | f d d d | | Œ } d  S(	   NRl   s	    %defaultRm   Rn   s   --t   -i    s    unset option set by %s %%default(
   t   BoolConfigUpdateRR   Rr   Rf   R   R.   R‹   t   lstripRA   Re   (
   R   Ru   Rv   Rj   Rn   Rw   RC   t   argnamet   no_argnamesRH   (    (    s&   /64/home/arigo/u/pypy/config/config.pyRx   C  s     

71N(	   R   R   R4   Rz   RR   R   Ri   R   Rx   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRŒ     s   		t	   IntOptionc           B   s/   e  Z d  Z d e d „ Z d „  Z d „  Z RS(   t   intc         C   s)   t  t |  ƒ i | | | ƒ | |  _ d  S(   N(   R}   R–   R   R   (   R   R   Rf   R   Rg   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   Y  s    c         C   s,   y t  | ƒ Wn t j
 o t Sn Xt S(   N(   R—   R-   Re   RR   (   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRi   ]  s
    	c         C   sQ   y& t  t |  ƒ i | t | ƒ | ƒ Wn$ t j
 o } t | i Œ  ‚ n Xd  S(   N(   R}   R–   R   R—   R-   R   t   args(   R   Rj   R    R8   t   e(    (    s&   /64/home/arigo/u/pypy/config/config.pyR   d  s    &N(   R   R   Rs   R4   Rz   R   Ri   R   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR–   V  s   	t   FloatOptionc           B   s/   e  Z d  Z d e d „ Z d „  Z d „  Z RS(   t   floatc         C   s)   t  t |  ƒ i | | | ƒ | |  _ d  S(   N(   R}   Rš   R   R   (   R   R   Rf   R   Rg   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   n  s    c         C   s,   y t  | ƒ Wn t j
 o t Sn Xt S(   N(   R›   R-   Re   RR   (   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRi   r  s
    	c         C   sQ   y& t  t |  ƒ i | t | ƒ | ƒ Wn$ t j
 o } t | i Œ  ‚ n Xd  S(   N(   R}   Rš   R   R›   R-   R   R˜   (   R   Rj   R    R8   R™   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   y  s    &N(   R   R   Rs   R4   Rz   R   Ri   R   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRš   k  s   	t	   StrOptionc           B   s/   e  Z d  Z d e d „ Z d „  Z d „  Z RS(   R|   c         C   s)   t  t |  ƒ i | | | ƒ | |  _ d  S(   N(   R}   Rœ   R   R   (   R   R   Rf   R   Rg   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   ƒ  s    c         C   s   t  | t ƒ S(   N(   R   t   str(   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRi   ‡  s    c         C   sK   y  t  t |  ƒ i | | | ƒ Wn$ t j
 o } t | i Œ  ‚ n Xd  S(   N(   R}   Rœ   R   R-   R   R˜   (   R   Rj   R    R8   R™   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   Š  s     N(   R   R   Rs   R4   Rz   R   Ri   R   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRœ   €  s   	t   ArbitraryOptionc           B   s2   e  Z d d d  „ Z d „  Z d „  Z d „  Z RS(   c         C   sZ   t  t |  ƒ i | | d d  ƒ| |  _ | |  _ | d  j	 o | d  j p t ‚ n d  S(   NRg   (   R}   Rž   R   R4   R   t   defaultfactoryt   AssertionError(   R   R   Rf   R   RŸ   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   ’  s
    		c         C   s   t  S(   N(   RR   (   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRi   ™  s    c         O   s   d  S(   N(    (   R   R˜   R=   (    (    s&   /64/home/arigo/u/pypy/config/config.pyRx   œ  s    c         C   s%   |  i  d  j	 o |  i  ƒ  Sn |  i S(   N(   RŸ   R4   R   (   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   Ÿ  s    N(   R   R   R4   R   Ri   Rx   R   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRž   ‘  s   		R   c           B   sG   e  Z e Z d Z d  „  Z d „  Z d „  Z d „  Z	 e
 d d „ Z RS(   c         C   s)   | |  _  | |  _ | |  _ |  i ƒ  d  S(   N(   R   Rf   R   t   _build(   R   R   Rf   Rb   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   ª  s    			c         C   s+   x$ |  i  D] } t |  | i | ƒ q
 Wd  S(   N(   R   t   setattrR   (   R   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR¡   °  s    
 c         C   s=   t  g  } |  i D]" } | | i t | | i ƒ ƒ q ~ ƒ S(   N(   t   tupleR   RT   R,   R   (   R   Rj   RC   R   (    (    s&   /64/home/arigo/u/pypy/config/config.pyRT   ´  s    
c         C   s   d  S(   N(    (   R   Ru   Rv   Rj   (    (    s&   /64/home/arigo/u/pypy/config/config.pyRx   ¸  s    c         C   sð   | d j o
 g  } n g  } xÌ |  i D]Á } | i } | i d ƒ o q' n t |  | ƒ } t | t ƒ o_ | o! | i d i | | g ƒ ƒ n | i | ƒ | | i	 d | d | ƒ 7} | i
 ƒ  q' | i d i | | g ƒ ƒ q' W| S(   s…   returns a list of all paths in self, recursively
        
            currpath should not be provided (helps with recursion)
        t   _cfgimplR1   Rd   t   currpathN(   R4   R   R   R.   R,   R   R   RN   RB   R?   t   pop(   R   Rd   R¥   t   pathsRw   t   attrR    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR?   »  s$    

 	!
!N(   R   R   R    Ry   R4   Rg   R   R¡   RT   Rx   Re   R?   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   ¥  s   				t   OptHelpFormatterc           B   s    e  Z d Z d  „  Z d „  Z RS(   c         C   sÐ  |  i  p t ‚ |  i  i } d } d  } | i d j oO t | i t ƒ o< | i } | i ƒ  } t | i	 t
 ƒ o | i	 i } qð ni | i | i ƒ } | d  j o nF t | t ƒ o+ | t j o | i d j o
 d } qð n d | } | i d j o | i } n | d  j	 o  d | i d i | ƒ f } n d } d	 | i j o_ | o | o
 d
 } n d } d | | | f } | d j o
 d } n | i i d	 | ƒ Sn | o | i d | Sn | i S(   NR[   Rn   t
   store_trueR   s   default: %st   choices   %s=%st   |s   %defaults   , s   [%s%s%s]s   []s    [%s](   Rv   R    t   defaultsR4   Rm   R   Rn   Rq   t   help_defaultRw   R{   R~   R]   t   destR   RR   Ro   t   choicesRp   RB   Rl   t   replace(   R   Rw   t   dflst   deflR°   Rn   t   valt   sep(    (    s&   /64/home/arigo/u/pypy/config/config.pyt   expand_default×  s@    #	
 

c         C   s@   t  i i |  | ƒ } |  i d  j	 o | d |  i d Sn | S(   Ns   
s   

(   t   optparset   TitledHelpFormattert   format_usaget   extra_useageR4   (   R   t   usageR&   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR¹     s    N(   R   R   R4   Rº   R¶   R¹   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR©   Ô  s   	*Rq   c           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   Rj   Rw   (   R   Rj   Rw   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR     s    	c         C   s   |  i  i | ƒ S(   N(   Rw   Rk   (   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRk     s    c   
      O   s—   y2 |  i  | ƒ } |  i i |  i i | d d ƒWn^ t j
 oR } d d  k } x$ |  i i ƒ  D] }	 | i |	 IJqa Wt	 i
 | i d ƒ ‚ n Xd  S(   NR8   Rg   iÿÿÿÿi    (   Rk   Rj   R   Rw   R   R   t   sysRQ   t   stderrR·   t   OptionValueErrorR˜   (
   R   Rw   t   opt_strR    Rv   R˜   R=   R™   R¼   RO   (    (    s&   /64/home/arigo/u/pypy/config/config.pyt   __call__  s    # c         C   sh   t  |  i |  i i ƒ } |  i i |  i i } | d  j o | d j o d SqZ d } n d | | f S(   NR   R[   s   ???s   %s: %s(   R,   Rj   Rw   R   R	   R4   (   R   R   t   owner(    (    s&   /64/home/arigo/u/pypy/config/config.pyR®      s    
(   R   R   R   Rk   RÀ   R®   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRq   
  s   			R’   c           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s&   t  t |  ƒ i | | ƒ | |  _ d  S(   N(   R}   R’   R   t   which_value(   R   Rj   Rw   RÂ   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR   ,  s    c         C   s   |  i  S(   N(   RÂ   (   R   R    (    (    s&   /64/home/arigo/u/pypy/config/config.pyRk   0  s    c         C   sN   t  |  i |  i i ƒ } |  i i |  i i } | |  i j o | Sn d Sd  S(   NR[   (   R,   Rj   Rw   R   R	   RÂ   (   R   R   RÁ   (    (    s&   /64/home/arigo/u/pypy/config/config.pyR®   3  s
    (   R   R   R   Rk   R®   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pyR’   +  s   		c            s  h  ‰ ‡  ‡ f d †  } ˆ  d  j o\ | d  j o
 g  } n | d  j o
 h  } n t ƒ  } | | _ t i d | | | Ž ‰  n | d  j o |  i d t ƒ } n h  } xR| D]J}	 |	 i d ƒ on |	 d  }	 |  i |	 ƒ \ }
 } t	 |
 | ƒ } g  } | i ƒ  D] } | |	 d | q~ } | i
 | ƒ q± |	 | j o q± n t | |	 <|  i |	 ƒ \ }
 } t	 |
 i | ƒ } | i t j o  d |	 i d d ƒ f f } n* | i d  j o q± n | i i d	 ƒ } | |	 |
 i i ƒ } | i | | |
 ƒ q± Wˆ  S(
   Nc            sr   |  i  d ƒ } t | ƒ d j  o ˆ  Sn | d } ˆ i | d  ƒ } | d  j o ˆ  i | ƒ } ˆ | <n | S(   NR1   i   iþÿÿÿ(   R@   RA   R]   R4   t   add_option_group(   R   Rf   t   stepst   grpnamet   grp(   Rv   t   grps(    s&   /64/home/arigo/u/pypy/config/config.pyt	   get_group?  s    
t	   formatterRd   s   .*iþÿÿÿR1   s   --%sR‘   t    (   R4   R©   Rº   R·   t   OptionParserR?   RR   t   endswithR   R,   t   extendR   Rg   Rz   R±   R@   Rf   Rx   (   Rj   t
   useoptionsRv   t
   parserargst   parserkwargsRº   RÈ   RÉ   t   seenRK   t   homeconfR   t   subconfRC   R   Rb   Rw   t   chunksRÆ   (    (   Rv   RÇ   s&   /64/home/arigo/u/pypy/config/config.pyt   to_optparse<  sJ    


			 
(
 c         C   sF   |  i  ƒ  } t g  } | D] } | | t |  | ƒ f q ~ ƒ } | S(   N(   R?   t   dictR,   (   Rj   R§   RC   RK   t   options(    (    s&   /64/home/arigo/u/pypy/config/config.pyt	   make_dictp  s    6(   t   pyR·   t   pypy.tool.pairtypeR    t   SUPPRESS_USAGEt	   ExceptionR   R2   R   R   R   t   objectR   Rz   R   R{   R‹   RŒ   R–   Rš   Rœ   Rž   R   R¸   R©   Rq   R’   R4   RÕ   RØ   (    (    (    s&   /64/home/arigo/u/pypy/config/config.pys   <module>   s0   	¸	$&	7/6!3
