³ò
Ï‘RMc        
   @   sÔ  d  d k  Z  d  d k l Z l Z l Z l Z l Z l Z d  d k l Z l	 Z	 l
 Z
 l Z d  d k l Z l Z l Z l Z d  d k l Z l Z l Z l Z d  d k l Z l Z d  d k l Z e  i i e ƒ i ƒ  i ƒ  i d d	 ƒ Z d
 „  Z 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 f d „  ƒ  YZ  d e f d „  ƒ  YZ  d „  Z! e" d „ Z# d „  Z$ d S(   iÿÿÿÿN(   t   Restt	   Paragrapht   Strongt   ListItemt   Titlet   Link(   t	   Directivet   Emt   Quotet   Text(   t   ChoiceOptiont
   BoolOptiont	   StrOptiont	   IntOption(   t   FloatOptiont   OptionDescriptiont   Optiont   Config(   t   ArbitraryOptiont   DEFAULT_OPTION_NAME(   t   _getnegationt   doct   configc         C   s'   | o d | |  i  f Sn |  i  Sd  S(   Ns   %s.%s(   t   _name(   t   optt   path(    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyt   get_fullpath   s    c         C   s0   |  t  j o d | i d d ƒ f Sn |  Sd  S(   Ns   --%st   .t   -(   R   t   replace(   t   cmdlinet   fullpath(    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyt   get_cmdline   s    t
   __extend__c           B   s   e  Z d  d „ Z RS(   t    c      	   C   sÅ   t  |  | ƒ } t t | d d d d ƒt d ƒ t t d | d ƒ ƒ t d ƒ t t d ƒ |  i ƒ t t d	 ƒ |  i	 ƒ ƒ } |  i
 d  j	 o2 t |  i
 | ƒ } | i t t d
 ƒ | ƒ ƒ n | S(   Nt	   abovechart   =t	   belowchart   contentss   back to parents   .htmls   Basic Option Informations   name:s   description:s   command-line:(   R   R    R   R   R   R   R   R   R   R   R   t   NoneR    t   add(   t   selfR   R   t   resultR   (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyt   make_rest_doc   s    		 (   t   __name__t
   __module__R+   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR!      s   c           B   s   e  Z d  d „ Z RS(   R"   c   
      C   sw  t  t |  ƒ i | ƒ } | i t t d ƒ d ƒ ƒ | i t t d ƒ g  } |  i D] } | t t | ƒ ƒ qT ~ Œ ƒ |  i d  j	 o) | i t t d ƒ t |  i ƒ ƒ ƒ n g  } x |  i D]… } | |  i
 j o qÃ n |  i
 | } | i t d | f g  } | D]0 \ } }	 | t t | | d ƒ d |	 f ƒ q~ Œ ƒ qÃ W| o  | i t t d ƒ | Œ ƒ n | S(	   Ns   option type:s   choice options   possible values:s   default:s   value '%s' requires:s   .htmls   to be set to '%s's   requirements:(   t   superR
   R+   R(   R   R   t   valuest   strt   defaultR'   t	   _requirest   appendR   (
   R)   R   t   contentt   _[1]t   valt   requirementst   reqt   _[2]R   t   rval(    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR+   *   s$    4)
 E (   R,   R-   R+   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR!   )   s   c           B   s   e  Z d  d „ Z RS(   R"   c         C   sF  t  t |  ƒ i | ƒ } t |  | ƒ } |  i o¸ |  i d  j	 o¨ |  i t j o d | i d d ƒ f } n
 |  i } g  } | i	 ƒ  D]4 } | i
 d ƒ o | d t | i d ƒ ƒ qˆ qˆ ~ d } | i t t d ƒ | ƒ ƒ n | i t t d ƒ d ƒ ƒ |  i d  j	 o) | i t t d	 ƒ t |  i ƒ ƒ ƒ n |  i d  j	 or g  } |  i D]0 \ }	 }
 | t t |	 |	 d
 ƒ d |
 f ƒ q\~ } | o  | i t t d ƒ | Œ ƒ qÀn |  i d  j	 or g  } |  i D]0 \ }	 }
 | t t |	 |	 d
 ƒ d |
 f ƒ qÞ~ } | o  | i t t d ƒ | Œ ƒ qBn | S(   Ns   --%sR   R   s   --i    s   command-line for negation:s   option type:s   boolean options   default:s   .htmls   must be set to '%s's   requirements:s   should be set to '%s's   suggestions:(   R.   R   R+   R   t   negationR   R'   R   R   t   splitt
   startswithR   t   lstripR(   R   R   R1   R0   R2   R   t	   _suggests(   R)   R   R4   R   R   R5   t   argnamet   neg_cmdlineR9   R   R:   R7   t   _[3]t   suggestions(    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR+   A   s2    	;)@$@$(   R,   R-   R+   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR!   @   s   c           B   s   e  Z d  d „ Z RS(   R"   c         C   sq   t  t |  ƒ i | ƒ } | i t t d ƒ d ƒ ƒ |  i d  j	 o) | i t t d ƒ t |  i ƒ ƒ ƒ n | S(   Ns   option type:s   integer options   default:(	   R.   R   R+   R(   R   R   R1   R'   R0   (   R)   R   R4   (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR+   `   s
    )(   R,   R-   R+   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR!   _   s   c           B   s   e  Z d  d „ Z RS(   R"   c         C   sq   t  t |  ƒ i | ƒ } | i t t d ƒ d ƒ ƒ |  i d  j	 o) | i t t d ƒ t |  i ƒ ƒ ƒ n | S(   Ns   option type:s   float options   default:(	   R.   R   R+   R(   R   R   R1   R'   R0   (   R)   R   R4   (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR+   h   s
    )(   R,   R-   R+   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR!   g   s   c           B   s   e  Z d  d „ Z RS(   R"   c         C   sq   t  t |  ƒ i | ƒ } | i t t d ƒ d ƒ ƒ |  i d  j	 o) | i t t d ƒ t |  i ƒ ƒ ƒ n | S(   Ns   option type:s   string options   default:(	   R.   R   R+   R(   R   R   R1   R'   R0   (   R)   R   R4   (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR+   p   s
    )(   R,   R-   R+   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR!   o   s   c           B   s   e  Z d  d „ Z RS(   R"   c         C   sª   t  t |  ƒ i | ƒ } | i t t d ƒ d ƒ ƒ |  i d  j	 o) | i t t d ƒ t |  i ƒ ƒ ƒ n: |  i	 d  j	 o) | i t t d ƒ t |  i	 ƒ ƒ ƒ n | S(   Ns   option type:s"   arbitrary option (mostly internal)s   default:s   factory for the default value:(
   R.   R   R+   R(   R   R   R1   R'   R0   t   defaultfactory(   R)   R   R4   (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR+   x   s    
)(   R,   R-   R+   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR!   w   s   c           B   s   e  Z d  d „ Z RS(   R"   c         C   sï  t  |  | ƒ } t t | d d d d ƒt d ƒ ƒ } | o$ | i t t d | d ƒ ƒ ƒ n | i t d ƒ t t	 d ƒ |  i
 ƒ t t	 d	 ƒ |  i ƒ t d
 ƒ ƒ g  } | } | } t |  ƒ } x#|  i d t ƒ D]} | d | }	 x> |	 i | ƒ o |	 t | ƒ d j p | i ƒ  \ } } qï W|	 G| G| G| GH| i | ƒ \ }
 } t |
 i | ƒ i } | o3 | i t t |	 d |	 d ƒ t | ƒ ƒ ƒ } n' | i t t |	 d |	 d ƒ ƒ ƒ } | i | | f ƒ |	 } | } qØ W| S(   NR#   R$   R%   R&   s   back to parents   .htmls   Basic Option Informations   name:s   description:s   Sub-Optionst   include_groupsR   t   :(   R   R    R   R   R(   R   R   t   joinR   R   R   R   R   t   getpathst   TrueR=   t   lent   popt   _cfgimpl_get_home_by_patht   getattrt   _cfgimpl_descrR   R3   (   R)   R   R   R4   t   stackt   prefixt   currR   t   endingt   subpatht   subt   stepR   t   new(    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR+   „   sD    	  &
(   R,   R-   R+   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyR!   ƒ   s   c         C   s[   t  i | d ƒ } | G| i ƒ  p d GHd Sn d GH| i ƒ  } d | j o d Sn d S(   Ns   .txts	   not foundR"   t   founds   .. internals   Internal Options(   t   configdocdirRG   t   checkt   read(   R   R   t   subdescrt   txtfileR4   (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyt   _get_section_header¨   s    c      
   C   sÀ  t  ƒ  } | o- | i t d |  i f d d d d ƒƒ n g  } t |  ƒ } x¶ | i d t ƒ D]¢ } | i | ƒ \ } } |  i d | } | i d d ƒ d }	 t	 | i
 | ƒ }
 t |
 i | ƒ } | d  j	 o/ t | | |
 ƒ } | i | | | |
 f ƒ qb qb W| i d	 d
 „  ƒ d } | } x’ | D]Š \ } } } }
 | | j o; | i t | d d d d ƒƒ | i t ƒ  ƒ } | } n | i t t | d | d ƒ t |
 i ƒ ƒ ƒ q.W| S(   Ns)   Overview of Command Line Options for '%s'R#   R$   R%   RE   R   i   i    t   keyc         S   s   |  d  |  d i  d ƒ f S(   i    i   R   (   t   strip(   t   x(    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyt   <lambda>Æ   s    R"   RF   s   .html(   R    R(   R   R   R   RH   t   FalseRL   t   rsplitRM   RN   R    R   R'   R]   R3   t   sortR   R   R   R	   R   (   t   descrt   titleR4   t   cmdlinesR   R   t   subconfRU   R   RP   R[   R   t   headert
   currheaderRQ   (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyt   make_cmdline_overviewµ   s:    	 ! 
c      	      s…   y0 d d k  l } l } l } d d k l } Wn t j
 o d Sn Xh  g  ‡  f d † } t | _ h  | _	 | i
 d | ƒ d S(   s>    register a :config: ReST link role for use in documentation. iÿÿÿÿ(   t
   directivest   statest   roles(   t   register_linkroleNc            sÙ  d d k  l } d d k l } d d k l }	 ˆ  i d | d ƒ }
 ˆ  i d | d ƒ } |
 i ƒ  p t ‚ |  d j p t ‚ t	 i
 i | i i i ƒ i ƒ  } | } d } x: t | i | ƒ ƒ } | o Pn | i ƒ  } | d	 7} q´ | ƒ  } | i | ƒ \ } } t | i | ƒ } |	 | i | ƒ } | d  j	 o^ d
 d } xG | i ƒ  D]9 } | i d ƒ o# t | ƒ t | ƒ j  o
 | } qTqTW| } n | | } | G| GH| i | | d | d | ƒ} | g g  f S(   Niÿÿÿÿ(   t   nodes(   t   get_pypy_config(   R    R   s   .txts   .htmlR"   s   ../t   Xiè  s   --t   namet   refuri(   t   docutilsRp   t   pypy.config.pypyoptionRq   t   pypy.config.makerestdocR    RG   RY   t   AssertionErrort   pyR   t   localt   documentt   settingst   _sourcet   dirpathR0   t   reltoRL   RM   RN   R   R'   R<   R=   RJ   t	   reference(   Rs   t   rawtextt   textt   linenot   inlinert   optionsR4   Rp   Rq   R    t   txtt   htmlt	   sourcedirRQ   RP   t   relativeR   t   ht   nR   R   t   shortest_long_optiont   cmdt   targett   reference_node(   t   docdir(    s+   /64/home/arigo/u/pypy/config/makerestdoc.pyt   config_roleÛ   s>    !	
 )

	R   (   t   docutils.parsers.rstRl   Rm   Rn   t   pypy.tool.rest.directiveRo   t   ImportErrorRI   R4   R…   t   register_canonical_role(   R   Rl   Rm   Rn   Ro   R‘   (    (   R   s+   /64/home/arigo/u/pypy/config/makerestdoc.pyt   register_config_roleÓ   s    	!		(%   Ry   t   pypy.tool.rest.rstR    R   R   R   R   R   R   R   R   R	   t   pypy.config.configR
   R   R   R   R   R   R   R   R   R   R   R   Rz   t   __file__R~   RG   RX   R   R    R!   R]   RI   Rk   R–   (    (    (    s+   /64/home/arigo/u/pypy/config/makerestdoc.pys   <module>   s(   ."""*		%	
