ó
öŔ\c           @   sU  d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d l	 m
 Z
 d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z m Z d d l m Z d d l m Z d d l m Z m Z e r#d d l m Z m  Z  m! Z! m" Z" m# Z# d d l$ m% Z% n  e j& e'  Z( d e f d     YZ) d   Z* d S(   sĆ   
    sphinx.builders.manpage
    ~~~~~~~~~~~~~~~~~~~~~~~

    Manual pages builder.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
i˙˙˙˙(   t   path(   t   OptionParser(   t
   FileOutput(   t   string_types(   t   addnodes(   t   Builder(   t   NoUri(   t   __(   t   logging(   t   boldt	   darkgreen(   t   inline_all_toctrees(   t   make_filename(   t   ManualPageWritert   ManualPageTranslator(   t   Anyt   Dictt   Listt   Sett   Union(   t   Sphinxt   ManualPageBuilderc           B   sb   e  Z d  Z d Z d Z e d  Z e Z g  Z	 d   Z
 d   Z d d  Z d   Z d   Z RS(	   s4   
    Builds groff output in manual page format.
    t   mans#   The manual pages are in %(outdir)s.c         C   s&   |  j  j s" t j t d   n  d  S(   NsB   no "man_pages" config value found; no manual pages will be written(   t   configt	   man_pagest   loggert   warningR   (   t   self(    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyt   init0   s    c         C   s   d S(   Ns   all manpages(    (   R   (    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyt   get_outdated_docs6   s    c         C   s   | d k r d St   d  S(   Nt   tokent    (   R   (   R   t   docnamet   typ(    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyt   get_target_uri:   s    c         G   s  t  |   } t d |  j j d | f d t  j   } t j t t	 d   d t xŞ|  j
 j D]} | \ } } } } }	 | |  j j k rŤ t j t	 d  |  qb n  t | t  rŐ | rĚ | g } qŐ g  } n  d | |	 f }
 t j t |
  d d t t d	 t j |  j |
  d
 d  } |  j j |  } t   } t |  | | | t | g  } t j d d t |  j j | | |   x* | j t j  D] } | j | j  qW| | _ | | j _ | | j _ | | j _  |	 | j _! | j" | |  qb Wt j d  d  S(   Nt   defaultst
   componentst   read_config_filess   writing... t   nonls7   "man_pages" config value references unknown document %ss   %s.%ss    { t   destination_patht   encodings   utf-8s   } R   (#   R   R   t   envt   settingst   Truet   get_default_valuesR   t   infoR	   R   R   R   t   all_docsR   t
   isinstanceR   R
   R   R    t   joint   outdirt   get_doctreet   setR   t   resolve_referencest   traverseR   t   pending_xreft   replace_selft   childrent   titlet   subtitlet   authorst   sectiont   write(   R   t   ignoredt	   docwritert   docsettingsR-   R    t   namet   descriptionR;   R<   t
   targetnamet   destinationt   treet   docnamest	   largetreet   pendingnode(    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyR=   @   sH    					c         C   s   d  S(   N(    (   R   (    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyt   finisho   s    N(   t   __name__t
   __module__t   __doc__RA   t   formatR   t   epilogR   t   default_translator_classt   supported_image_typesR   R   t   NoneR"   R=   RI   (    (    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyR   %   s   			/c         C   sO   |  j  t  |  j d d   d   |  j d t d   i d d 6t d 6t d 6S(   NR   c         S   s8   |  j  t |  j  j   d |  j |  j f g  d f g S(   Ns   %s %si   (   t
   master_docR   t   projectt   lowert   release(   R   (    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyt   <lambda>y   s   t   man_show_urlst   builtint   versiont   parallel_read_safet   parallel_write_safe(   t   add_builderR   t   add_config_valueRQ   t   FalseR+   (   t   app(    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyt   setupt   s    	N(+   RL   t   osR    t   docutils.frontendR   t   docutils.ioR   t   sixR   t   sphinxR   t   sphinx.buildersR   t   sphinx.environmentR   t   sphinx.localeR   t   sphinx.utilR   t   sphinx.util.consoleR	   R
   t   sphinx.util.nodesR   t   sphinx.util.osutilR   t   sphinx.writers.manpageR   R   R^   t   typingR   R   R   R   R   t   sphinx.applicationR   t	   getLoggerRJ   R   R   R`   (    (    (    s6   lib/python2.7/site-packages/sphinx/builders/manpage.pyt   <module>
   s&   (O