
\c           @   s  d  Z  d d l m Z d d l m Z m Z m Z d d l Z	 d d l	 m
 Z
 d d l m Z m Z d d l m Z d d l m Z e r d d	 l m Z d d
 l m Z n  e j e  Z d e f d     YZ d e f d     YZ d e f d     YZ d S(   s   
    sphinx.writers.manpage
    ~~~~~~~~~~~~~~~~~~~~~~

    Manual page writer, extended for Sphinx custom nodes.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
i(   t   nodes(   t	   MACRO_DEFt   Writert
   TranslatorN(   t   addnodes(   t   admonitionlabelst   _(   t   logging(   t   format_date(   t   Any(   t   Buildert   ManualPageWriterc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  j |   | |  _ d  S(   N(   R   t   __init__t   builder(   t   selfR   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR   "   s    c         C   s`   t  |  j  } | j   |  j j |  j |  j  } | |  _ |  j j |  | j   |  _ d  S(   N(	   t   NestedInlineTransformt   documentt   applyR   t   create_translatort   visitort	   walkaboutt   astextt   output(   R   t	   transformR   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt	   translate'   s    
	(   t   __name__t
   __module__R   R   (    (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR   !   s   	R   c           B   s    e  Z d  Z d   Z d   Z RS(   s  
    Flatten nested inline nodes:

    Before:
        <strong>foo=<emphasis>1</emphasis>
        &bar=<emphasis>2</emphasis></strong>
    After:
        <strong>foo=</strong><emphasis>var</emphasis>
        <strong>&bar=</strong><emphasis>2</emphasis>
    c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR   <   s    c            s   d     x |  j  j    D] } t   f d   | D  r | j j |  } x} t | d  D]h } | j |    |  r | j j | d |  qa | j d | | j	  } | j j | d |  qa Wq q Wd  S(   Nc         S   s   t  |  t j t j t j f  S(   N(   t
   isinstanceR    t   literalt   emphasist   strong(   t   node(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt	   is_inlineB   s    c         3   s   |  ] }   |  Vq d  S(   N(    (   t   .0t   subnode(   R    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pys	   <genexpr>G   s    i   t    (
   R   t   traverset   anyt   parentt   indext   reversedt   removet   insertt	   __class__t
   attributes(   R   R   t   posR"   t   newnode(    (   R    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR   @   s    	(   R   R   t   __doc__R   R   (    (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR   1   s   
	t   ManualPageTranslatorc           B   s  e  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   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#   Z% d$   Z& d%   Z' d&   Z( d'   Z) d(   Z* d)   Z+ d*   Z, d+   Z- d,   Z. d-   Z/ d.   Z0 d/   Z1 d0   Z2 d1   Z3 d2   Z4 d3   Z5 d4   Z6 d5   Z7 d6   Z8 d7   Z9 d8   Z: d9   Z; d:   Z< d;   Z= d<   Z> d=   Z? d>   Z@ d?   ZA d@   ZB dA   ZC dB   ZD dC   ZE dD   ZF dE   ZG dF   ZH dG   ZI dH   ZJ dI   ZK dJ   ZL dK   ZM dL   ZN dM   ZO dN   ZP dO   ZQ dP   ZR RS(Q   s   
    Custom translator.
    c         O   s  t  j |  | |  | |  _ d |  _ d |  _ |  j j j |  j d <|  j j j	 |  j d <|  j j j
 r |  j j j
 |  j d <n  |  j j j |  j d <|  j d j   |  j d <| j j r | j j |  j d <n1 t | j j p t d	  d
 | j j |  j d <| j j |  j d <| j j |  j d <| j j |  j d <t j j j d k  rf|  j j t  n  x3 t j   D]% \ } } |  j |  |  j j  | <qsWd  S(   Ni    it   titlet   subtitlet   authort   manual_sectiont   title_uppert   dates	   %b %d, %Yt   languaget	   copyrightt   versiont   manual_groupi   (   i    i   (!   t   BaseTranslatorR   R   t   in_productionlistt   section_levelR   t   settingsR1   t   _docinfoR2   t   authorst   sectiont   uppert   configt   todayR   t	   today_fmtR   R7   R8   R9   t   projectt   sphinxt   utilt   docutilst   __version_info__t   bodyt   appendR   R   t   itemst	   deunicodet   labels(   R   R   t   argst   kwdst   labelt   translation(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR   W   s*    			c         C   s   d } | |  j  S(   Nsz   .TH "%(title_upper)s" "%(manual_section)s" "%(date)s" "%(version)s" "%(manual_group)s"
.SH NAME
%(title)s \- %(subtitle)s
(   R?   (   R   t   tmpl(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   header}   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_start_of_file   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_start_of_file   s    c         C   s   |  j  |  d  S(   N(   t   visit_definition_list(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt
   visit_desc   s    c         C   s   |  j  |  d  S(   N(   t   depart_definition_list(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc   s    c         C   s   |  j  |  |  j |  d  S(   N(   t   visit_definition_list_itemt
   visit_term(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_signature   s    c         C   s   |  j  |  d  S(   N(   t   depart_term(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_signature   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_signature_line   s    c         C   s   |  j  j d  d  S(   Nt    (   RK   RL   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_signature_line   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_addname   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_addname   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_type   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_type   s    c         C   s   |  j  j d  d  S(   Ns    -> (   RK   RL   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_returns   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_returns   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_name   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_name   s    c         C   s   |  j  j d  d |  _ d  S(   Nt   (i   (   RK   RL   t   first_param(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_parameterlist   s    c         C   s   |  j  j d  d  S(   Nt   )(   RK   RL   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_parameterlist   s    c         C   s)   |  j  s |  j j d  n	 d |  _  d  S(   Ns   , i    (   Rm   RK   RL   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_parameter   s    	c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_parameter   s    c         C   s   |  j  j d  d  S(   Nt   [(   RK   RL   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_optional   s    c         C   s   |  j  j d  d  S(   Nt   ](   RK   RL   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_optional   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_annotation   s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_annotation   s    c         C   s   |  j  |  d  S(   N(   t   visit_definition(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_desc_content   s    c         C   s   |  j  |  d  S(   N(   t   depart_definition(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_desc_content   s    c         C   s   |  j  |  d  S(   N(   t   visit_paragraph(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_versionmodified   s    c         C   s   |  j  |  d  S(   N(   t   depart_paragraph(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_versionmodified   s    c         C   s9   | j  t j  r% |  j j d  n t j |  |  d  S(   Ns   
(   R$   R    R   RK   RL   R;   R]   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR]      s    c         C   s   t  j  d  S(   N(   R    t   SkipNode(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_comment  s    c         C   s   |  j    t j |  |  d  S(   N(   t
   ensure_eolR;   t   visit_footnote(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR     s    
c         C   s   |  j    t | j  d k r | j d j   } | d t d  f k r |  j j d |  j |  j   d  t	 j
  q n |  j j d  d  S(   Ni   i    t	   Footnotess   .SH s   
s   .sp
(   R   t   lent   childrenR   R   RK   RL   RN   RB   R    R   (   R   R   t   rubtitle(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_rubric  s    
c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_rubric  s    c         C   s   |  j  | d  d  S(   Nt   seealso(   t   visit_admonition(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_seealso  s    c         C   s   |  j  |  d  S(   N(   t   depart_admonition(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_seealso"  s    c         C   ss  |  j    g  } |  j d 7_ |  j j d  x | D] } | j | d  q6 Wt d   | D  } d  } x | D] } | d r | d j |  } |  j j |  j d d  |  j j |  j |   |  j j |  j d d  |  j j d  n- | d  k	 r&|  j j d d	 t	 |   n  | j
 |   |  j j d
  qt W|  j j d  |  j d 8_ t j  d  S(   Ni   s   .sp
.nf
t	   tokennamec         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R!   t   name(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pys	   <genexpr>.  s    R   i    s    ::= s   %s     Rb   s   
s   
.fi
(   R   R<   RK   RL   t   maxt   Nonet   ljustt   defsRN   R   R   R    R   (   R   R   t   namest
   productiont   maxlent   lastname(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_productionlist&  s,    

!c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_production?  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_productionC  s    c         C   s[   d | j  k r4 |  j j t d  | d d  n  |  j j t d  d  t j  d  S(   Nt   alts   [image: %s]s   
s   [image](   R,   RK   RL   R   R    R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_imageH  s    %c         C   s  |  j  j |  j d d  |  j |  |  j  j |  j d d  | j d d  } | j d  s | j d  s | j d  s | j d	  r	|  j j j r	| j	   | k r	| j d  r | d
 } n  |  j  j
 d |  j d d | |  j d d d g  q	n  t j  d  S(   Nt	   referencei    i   t   refuriR#   s   mailto:s   http:s   https:s   ftp:i   s    <R   t   >(   RK   RL   R   t
   visit_Textt   gett
   startswithR   RC   t   man_show_urlsR   t   extendR    R   (   R   R   t   uri(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_referenceP  s    	c         C   s5   t  j | j d d   } |  j |  t  j  d  S(   NR1   t   #(   R    t   TextR   R   R   (   R   R   t   text(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_number_referencef  s    c         C   s   |  j    |  j j d  d  S(   Ns   .sp
.ce
(   R   RK   RL   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_centeredl  s    
c         C   s   |  j  j d  d  S(   Ns   
.ce 0
(   RK   RL   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_centeredq  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_compact_paragraphu  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_compact_paragraphy  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_download_reference}  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_download_reference  s    c         C   s   t  j  d  S(   N(   R    R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_toctree  s    c         C   s   t  j  d  S(   N(   R    R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_index  s    c         C   s   t  j  d  S(   N(   R    R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_tabular_col_spec  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_glossary  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_glossary  s    c         C   sX   |  j    |  j j d j d   | j d j D  d  |  j j d  t j  d  S(   Ns   , c         s   s   |  ] } | j    Vq d  S(   N(   R   (   R!   t   n(    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pys	   <genexpr>  s   i    t   .s   
(   R   RK   RL   t   joinR   R    R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt
   visit_acks  s
    
c         C   s   |  j  |  d  S(   N(   t   visit_bullet_list(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_hlist  s    c         C   s   |  j  |  d  S(   N(   t   depart_bullet_list(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_hlist  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_hlistcol  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_hlistcol  s    c         C   s   |  j  |  S(   N(   t   visit_emphasis(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_literal_emphasis  s    c         C   s   |  j  |  S(   N(   t   depart_emphasis(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_literal_emphasis  s    c         C   s   |  j  |  S(   N(   t   visit_strong(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_literal_strong  s    c         C   s   |  j  |  S(   N(   t   depart_strong(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_literal_strong  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_abbreviation  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_abbreviation  s    c         C   s   |  j  |  S(   N(   R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_manpage  s    c         C   s   |  j  |  S(   N(   R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_manpage  s    c         C   sN   t  | j t j  r: | j j d  r: |  j j d  n t j |  |  d  S(   Nt   literal_blocks   .sp
(	   R   R&   R    t	   containerR   RK   RL   R;   t   visit_caption(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR     s    'c         C   sN   t  | j t j  r: | j j d  r: |  j j d  n t j |  |  d  S(   NR   s   
(	   R   R&   R    R   R   RK   RL   R;   t   depart_caption(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR     s    'c         C   s   t  | j t j  r) |  j j d  d  St  | j t j  r |  j d k rY t j	  q |  j d k r |  j j d |  j
 | j   j     t j	  q n  t j |  |  S(   Ns   .IP "i    i   s   .SH %s
(   R   R&   R   R   RK   RL   R    RA   R=   R   RN   R   RB   R;   t   visit_title(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR     s    c         C   s9   t  | j t j  r) |  j j d  d  St j |  |  S(   Ns   "
(   R   R&   R   R   RK   RL   R;   t   depart_title(   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR     s    c         C   sD   d | j  d d  j   k r7 |  j j | j    n  t j  d  S(   Nt   manpaget   formatR#   (   R   t   splitRK   RL   R   R    R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt	   visit_raw  s    c         C   s   t  j  d  S(   N(   R    R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt
   visit_meta  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_inline  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_inline  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt
   visit_math	  s    c         C   s   d  S(   N(    (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_math  s    c         C   s   |  j  |  d  S(   N(   R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   visit_math_block  s    c         C   s   |  j  |  d  S(   N(   R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   depart_math_block  s    c         C   s   t  d | j j   d  S(   Ns   Unknown node: (   t   NotImplementedErrorR+   R   (   R   R   (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   unknown_visit  s    (S   R   R   R/   R   RU   RV   RW   RY   R[   R^   R`   Ra   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Rn   Rp   Rq   Rr   Rt   Rv   Rw   Rx   Rz   R|   R~   R   R]   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyR0   R   s   	&																																																																														(   R/   RI   R    t   docutils.writers.manpageR   R   R   R;   t   sphinx.util.docutilsRG   R   t   sphinx.localeR   R   t   sphinx.utilR   t   sphinx.util.i18nR   t   Falset   typingR	   t   sphinx.buildersR
   t	   getLoggerR   t   loggerR   t   objectR   R0   (    (    (    s5   lib/python2.7/site-packages/sphinx/writers/manpage.pyt   <module>
   s   !