
\c           @   s  d  Z  d d l Z d d l Z d d l 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 m Z d d l m Z d d l m Z m Z 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* m+ Z+ m, Z, m- Z- d d l m. Z. d d l/ m0 Z0 d d l1 m2 Z2 d d l3 m4 Z4 d d l5 m6 Z6 n  e j7 e8  Z9 e j: d  Z; e j: d e j<  Z= d e f d     YZ> d e> f d     YZ? d e f d     YZ@ d e  f d      YZA d! e f d"     YZB d# e  f d$     YZC d% e f d&     YZD d'   ZE eF d(  ZG d) e  f d*     YZH d+   ZI d, e  f d-     YZJ d. e f d/     YZK d0   ZL d S(1   s   
    sphinx.domains.std
    ~~~~~~~~~~~~~~~~~~

    The standard domain.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iN(   t   copy(   t   nodes(   t
   directives(   t   ViewList(   t	   iteritems(   t   addnodes(   t   RemovedInSphinx30Warning(   t   ObjectDescription(   t   Domaint   ObjType(   t   _t   __(   t   XRefRole(   t   ws_ret   loggingt   docname_join(   t   SphinxDirective(   t   clean_astextt   make_refnode(   t   Anyt   Callablet   Dictt   Iteratort   Listt   Tuplet   Typet   Union(   t	   Directive(   t   Sphinx(   t   Builder(   t   BuildEnvironment(   t   RoleFunctions    ((?:/|--|-|\+)?[^\s=]+)(=?\s*.*)s   `(\w+)`t   GenericObjectc           B   s,   e  Z d  Z d Z d Z d   Z d   Z RS(   sM   
    A generic x-ref directive registered with Sphinx.add_object_type().
    t    c         C   sZ   |  j  r$ |  j  |  j | |  } n2 | j   | t j | |  7} t j d |  } | S(   NR!   (   t
   parse_nodet   envt   clearR   t	   desc_nameR   t   sub(   t   selft   sigt   signodet   name(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   handle_signature9   s    	
c         C   s   d |  j  | f } | d j |  |  j j j |  |  j r |  j j d  } | d k r |  j |  j   } |  j | d j   | f } n d } |  j | f } |  j d j | | | d d  f  n  |  j
 j | f |  j
 j d	 d
 |  j  | f <d  S(   Ns   %s-%st   idst   :ii   t   singlet   entriesR!   t   stdt   objects(   t   objtypet   appendt   statet   documentt   note_explicit_targett   indextemplatet   findt   stript	   indexnodet   NoneR#   t   docnamet
   domaindata(   R'   R*   R(   R)   t
   targetnamet   colont	   indextypet
   indexentry(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   add_target_and_indexD   s    	!N(   t   __name__t
   __module__t   __doc__R7   R;   R"   R+   RB   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR    2   s
   	t   EnvVarc           B   s   e  Z e d   Z RS(   s   environment variable; %s(   RC   RD   R
   R7   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRF   W   s   t   EnvVarXRefRolec           B   s   e  Z d  Z d   Z RS(   sQ   
    Cross-referencing role for environment variables (adds an index entry).
    c   	      C   s   | s | g g  f S| d } d | j  d  } t j   } d | | d d  f d t d  | | d d  f g | d <t j d d d | g } | j |  | | | g g  f S(	   Nt	   reftargets   index-%st   indexR.   R!   s   environment variable; %sR/   R,   (   t   new_serialnoR   RI   R;   R
   R   t   targetR6   (	   R'   R5   R#   t   nodet   is_reft   varnamet   tgtidR:   t
   targetnode(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   result_nodes`   s    
&(   RC   RD   RE   RQ   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRG   [   s   t   Targetc           B   s;   e  Z d  Z d Z e Z d Z d Z e Z	 i  Z
 d   Z RS(   s@   
    Generic target for user-defined cross-reference types.
    R!   i   i    c         C   se  t  j d |  j d j    } d |  j | f } t j d d d | g } |  j j j	 |  | g } |  j
 r|  j
 | f } d } | j d  } | d k r | |  j   } | | d	 j   } n  t j d
 | | | d d  f g  } | j d |  n  |  j }	 d |  j k r7|  j j d d	  \ }
 }	 n  |  j j | f |  j j d d |	 | f <| S(   Nt    i    s   %s-%sR!   R,   R.   R-   ii   R/   R0   R1   (   R   R&   t	   argumentsR9   R*   R   RK   R4   R5   R6   R7   R8   R   RI   R;   t   insertt   splitR#   R<   R=   (   R'   t   fullnameR>   RL   t   retRA   R@   R?   t   inodeR*   R
   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   run|   s(    			*(   RC   RD   RE   R7   t   Falset   has_contentt   required_argumentst   optional_argumentst   Truet   final_argument_whitespacet   option_specRZ   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRR   p   s   t	   Cmdoptionc           B   s    e  Z d  Z d   Z d   Z RS(   s;   
    Description of a command-line option (.. option).
    c   	      C   s  d } d } x | j  d  D] } | j   } t j |  } | st t j t d  | d |  j j |  j	 f q n  | j
   \ } } | r | t j d d  7} n  | t j | |  7} | t j | |  7} | s | } | g | d <n | d j |  | d 7} q W| st  n  | S(   s/   Transform an option description into RST nodes.i    R!   s   , sn   Malformed option description %r, should look like "opt", "-opt args", "--opt args", "/opt args" or "+opt args"t   locationt   allnamesi   (   RV   R9   t   option_desc_ret   matcht   loggert   warningR   R#   R<   t   linenot   groupsR   t   desc_addnameR%   R3   t
   ValueError(	   R'   R(   R)   t   countt	   firstnamet   potential_optiont   mt   optnamet   args(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR+      s.    	c         C   sR  |  j  j j d  } xz | j d g   D]f } | j d d  } | j d  s\ d | } n  | rs d | | } n  d | } | d j |  q( W|  j j j |  x | j d g   D] } |  j  j	 | d d	 f |  j  j
 d
 d | | f <| | k r |  j d j d t d  | r%| d p(d | f | d d	 d d  f  q q Wd  S(   Ns   std:programRd   t   /t   -s   -arg-t	   cmdoptiont   namesR,   i    R0   t   progoptionsR/   t   pairs   %scommand line option; %sRS   R!   (   R#   t   ref_contextt   gett   replacet
   startswithR3   R4   R5   R6   R<   R=   R:   R
   R;   (   R'   Rn   R(   R)   t   currprogramRq   R>   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRB      s"    
2(   RC   RD   RE   R+   RB   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRb      s   	t   Programc           B   s5   e  Z d  Z e Z d Z d Z e Z i  Z	 d   Z
 RS(   sI   
    Directive to name the program for which options are documented.
    i   i    c         C   sX   t  j d |  j d j    } | d k rD |  j j j d d   n | |  j j d <g  S(   NRt   i    R;   s   std:program(   R   R&   RT   R9   R#   Ry   t   popR;   (   R'   t   program(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRZ      s
    (   RC   RD   RE   R[   R\   R]   R^   R_   R`   Ra   RZ   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR~      s   t   OptionXRefRolec           B   s   e  Z d    Z RS(   c         C   s    | j  j d  | d <| | f S(   Ns   std:program(   Ry   Rz   (   R'   R#   t   refnodet   has_explicit_titlet   titleRK   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   process_link   s    (   RC   RD   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR      s   c         C   s   t  j d |   d  g } | S(   Ns    +: +(   t   reRV   R;   (   t   linet   parts(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   split_term_classifiers   s    c         C   sC  t  j d d |  } | | _ | | _ |  j j d t    } |  j d d } | j   }	 | d  k r~ t  j
 d |	  } n  | | k r d t t |   } n  | j |  |  j | f | d |	 j   f <t j   }
 d |	 | d | f g |
 d	 <| j | j |
 _ |
 _ | j |
  | d
 j |  | d j |  | S(   NR!   t   gloss_entriesR0   R1   s   term-t   termR.   t   mainR/   R,   Rv   (   R   R   t   sourceR   t	   temp_datat
   setdefaultt   setR=   t   astextR;   t   make_idt   strt   lent   addR<   t   lowerR   RI   R3   (   R#   t	   textnodest	   index_keyR   Ri   t   new_idR   R   R1   t   termtextR:   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   make_glossary_term   s&    		t   Glossaryc           B   s?   e  Z d  Z e Z d Z d Z e Z i e	 j
 d 6Z d   Z RS(   s[   
    Directive to create a glossary with cross-reference targets for :term:
    roles.
    i    t   sortedc      	   C   s  t  j   } |  j j | _ g  } t } t } g  } xt |  j |  j j  D]\ } \ } } | s | r | r | d d j d | |  n  t } qL n  | r| d j	   r| j
 d  r qL n  | r+| s | j |  j j j d d d | d	 |  n  | j | | | f g t   f  t } q2| r_| j |  j j j d d
 d | d	 |  n  | r| d d j | | | f  q2| j |  j j j d d d | d	 |  n~ | st } t |  t | j    }	 n  | r| d d j | |	 | |  n+ | j |  j j j d d d | d	 |  t } qL Wg  }
 x/| D]'\ } } g  } g  } g  } x | D] \ } } } t |  } |  j j | d |  \ } } t |  j | | d | |  } | | _ | j |  | j | j    | j |  qnW| j |  t j   } | rD|  j j | | j d d |  n  | j |  |
 j | t j d |  f  qIWd |  j k r|
 j d d    n  t j   } | d j d  | j d   |
 D  | | 7} | | g S(   Nii   R!   i    s   .. i   s,   glossary term must be preceded by empty lineR   R   s3   glossary terms must not be separated by empty liness4   glossary seems to be misformatted, check indentationR   t   keyc         S   s   t  j d |  d d j    S(   Nt   NFDi    (   t   unicodedatat	   normalizeR   (   t   x(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   <lambda>y  s    t   classest   glossaryc         s   s   |  ] } | d  Vq d S(   i   N(    (   t   .0t   item(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pys	   <genexpr>~  s    (   R   R   R4   R5   R_   t   zipt   contentt   itemsR3   t   isspaceR|   t   reportert   system_messageR   R[   R   t   lstripR   t   inline_textR   R#   t	   rawsourcet   extendR   R   t
   definitiont   nested_parset   definition_list_itemt   optionst   sortt   definition_list(   R'   RL   R/   t   in_definitiont	   was_emptyt   messagesR   R   Ri   t
   indent_lenR   t   termsR   t	   termtextst	   termnodest   system_messagesR   R   t   sysmsgR   t   defnodet   dlist(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRZ     s    +	"		!	"	
	
	
(   RC   RD   RE   R_   R\   R]   R^   R[   R`   R   t   flagRa   RZ   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR     s   c      
   C   s  g  } d } x t  j |   D] } | j   | k rc |  | | j   !} | j t j | |   n  t j | j d  d d d d d | j d  } | t j	 | j d  | j d  d d	 g 7} | j |  | j
   } q W| t |   k  r| j t j |  | |  |   n  | S(
   Ni    i   t   reftypet   tokent	   refdomainR0   RH   R   t   xref(   t   token_ret   finditert   startR3   R   t   TextR   t   pending_xreft   groupt   literalt   endR   (   t   textt   retnodest   posRp   t   txtR   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   token_xrefs  s    -1$t   ProductionListc           B   s5   e  Z d  Z e Z d Z d Z e Z i  Z	 d   Z
 RS(   s0   
    Directive to list grammar productions.
    i   i    c   
      C   sp  |  j  j d d } t j   } g  } d } x6|  j d j d  D]} | d k rg d | k rg qC n  | d 7} y | j d d  \ } } Wn t k
 r Pn Xt j   } | j   | d <| d rAt	 j
 d | d  }	 |	 |  j j j k r| d	 j |	  n  |  j j j | |  |  j  j |	 f | d
 | d f <n  | j t |   | j |  qC W| g | S(   NR0   R1   i    s   
R-   i   t	   tokennames   grammar-token-%sR,   R   (   R#   R=   R   t   productionlistRT   RV   Rl   t
   productionR9   R   R   R4   R5   R,   R3   t   note_implicit_targetR<   R   R   (
   R'   R1   RL   R   t   it   ruleR*   t   tokenst   subnodet   idname(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRZ     s.    

#(   RC   RD   RE   R[   R\   R]   R^   R_   R`   Ra   RZ   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR     s   t   StandardDomainc           B   se  e  Z d  Z d Z d Z i e e d  d d d d 6e e d  d d d d 6e e d	  d
 d d d d 6e e d  d  d 6e e d  d  d 6e e d  d d d d 6Z i e d 6e	 d 6e	 d 6e
 d 6e d 6e d 6Z i e d e  d 6e   d 6e   d 6e d e d e j d e  d 6e d e d e j d e  d
 6e d e d e  d 6e d e  d 6e d e d e j  d 6Z i i  d 6i  d 6i  d 6i  d 6i d d  e d!  f d 6d" d  e d#  f d$ 6d% d  e d&  f d% 6d' 6i dN d 6dO d$ 6dP d% 6d( 6Z i d) d 6d* d
 6d+ d 6d, d 6d- d 6d. d 6d/ d0 6Z i dR e j 6dS e j 6dT e j 6Z d4   Z d5   Z d6   Z d7   Z d8   Z  d9   Z! d:   Z" d;   Z# d<   Z$ d=   Z% d>   Z& d?   Z' d@   Z( dA   Z) dB   Z* dC   Z+ dD   Z, dE   Z- dF   Z. e/ dG  Z0 dH   Z1 dI   Z2 dJ   Z3 dK   Z4 dL   Z5 dM   Z6 RS(U   ss   
    Domain for all objects that don't fit into another domain or are added
    via the application interface.
    R0   t   Defaults   glossary termR   t
   searchpriois   grammar tokenR   s   reference labelt   reft   keywordt   labels   environment variablet   envvars   program optiont   optionRu   R5   t   docR   R   R   t   warn_danglingt	   lowercaset   innernodeclasst   numrefRw   R1   t	   citationst   citation_refst   genindexR!   t   Indexs   py-modindexs   Module Indext   modindext   searchs   Search Paget   labelst
   anonlabelss    term not in glossary: %(target)ss`   undefined label: %(target)s (if the link has no caption the label must precede a section header)s   undefined label: %(target)ss   unknown keyword: %(target)ss   unknown document: %(target)ss   unknown option: %(target)ss   citation not found: %(target)st   citationt   figuret   tables
   code-blockc         C   s_   t  t |   j |  t |  j  |  _ x0 t | j j j  D] \ } } | |  j | <q> Wd  S(   N(   t   superR   t   __init__R    t   enumerable_nodesR   t   appt   registry(   R'   R#   RL   t   settings(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR     s    "c         C   s  xJ t  |  j d j    D]/ \ } \ } } | | k r |  j d | =q q WxJ t  |  j d j    D]/ \ } \ } } | | k rg |  j d | =qg qg WxM t  |  j d j    D]2 \ } \ } } } | | k r |  j d | =q q Wxc t  |  j d j    D]H \ } } | | g k r0|  j d | =q| | k r| j |  qqWxM t  |  j d j    D]2 \ } \ } } } | | k rj|  j d | =qjqjWxJ t  |  j d j    D]/ \ } \ } } | | k r|  j d | =qqWd  S(   NRw   R1   R   R   R   R   (   t   listt   dataR   t   remove(   R'   R<   R   t   fnt   _lRi   t   docnames(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt	   clear_doc  s(    ,,/&/,c         C   s  xB | d j    D]0 \ } } | d | k r | |  j d | <q q WxB | d j    D]0 \ } } | d | k rV | |  j d | <qV qV WxB | d j    D]0 \ } } | d | k r | |  j d | <q q Wxd | d j    D]R \ } } |  j d j | g   } x* | D]" } | | k r| j |  qqWq WxB | d j    D]0 \ } } | d | k rG| |  j d | <qGqGWxB | d j    D]0 \ } } | d | k r| |  j d | <qqWd  S(   NRw   i    R1   R   R   R   R   (   R   R   R   R3   (   R'   R  t	   otherdataR   R   R   R<   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   merge_domaindata.  s(    c         C   s=   |  j  | | |  |  j | | |  |  j | | |  d  S(   N(   t   note_citationst   note_citation_refst   note_labels(   R'   R#   R<   R5   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   process_docF  s    c         C   s   x | j  t j  D] } | | d <| d j   } | |  j d k r | j |  j d | d  } t j t d  | | d | d d d d	 n  | | d
 d | j	 f |  j d | <q Wd  S(   NR<   i    R   s+   duplicate citation %s, other instance in %sRc   t   typeR   t   subtypeR   R,   (
   t   traverseR   R   R   R   t   doc2pathRg   Rh   R   R   (   R'   R#   R<   R5   RL   R   t   path(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR  L  s    
c         C   st   xm | j  t j  D]Y } | d d k r | d d k r | d } |  j d j | g   } | j |  q q Wd  S(   NR   R0   R   R   RH   R   (   R  R   R   R   R   R3   (   R'   R#   R<   R5   RL   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR  W  s
     
c         C   s  |  j  d |  j  d } } xt | j  D]\ } } | sC q+ n  | j | } | d  k rb q+ n  | j | }	 |	 j d k r d |	 k r | j j |	 d  }	 |	 d d } n  |	 j d k s+ d |	 k s+ |	 j j d	  r q+ n  | | k r#t	 j
 t d
  | | j | | d  d |	 n  | | f | | <|	 j d k rUt |	 d  }
 nz |  j |	  r|  j |	  }
 |
 sq+ qnM |	 j t j  r+ |	 j t j  d } | j d  r+ | d }
 qq+ n q+ | | |
 f | | <q+ Wd  S(   NR   R   RK   t   refidRv   i    t   footnotet   refurit   desc_s(   duplicate label %s, other instance in %sRc   t   sectiont   rubrict   caption(   R  R  (   R   R   t	   nametypest   nameidsR;   R,   t   tagnameRz   R|   Rg   Rh   R   R  R   t   is_enumerable_nodet   get_numfig_titleR  R   t   toctree(   R'   R#   R<   R5   R   R   R*   t   explicitt   labelidRL   t   sectnamet   n(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR  _  sB    
	c         C   su   xn t  |  j d  D]Y \ } \ } } } | |  j d k r t j t d  | d d d d d | | f q q Wd  S(	   NR   R   s    Citation [%s] is not referenced.R
  R   R  R   Rc   (   R   R   Rg   Rh   R   (   R'   R*   R<   R  Ri   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   check_consistency  s
    )c         K   s   | j  d t j  } | d d d t | }	 t j | |  }
 |
 j d  d  k	 r} |
 d j d  |
 d j d |  n  | | k r | |	 d <nV t j	 d  } | | d <| | d	 <| j
 | |  |	 d
 <| r |	 d
 c d | 7<n  |	 j |
  |	 S(   Nt	   nodeclassR!   t   internalR   R0   s   std-R  t
   refdocnamet   refsectnameR  t   #(   R   R   t	   referenceR_   t   inlineRz   R;   R3   R   R   t   get_relative_uri(   R'   t   fromdocnamet   builderR<   R  R  t   rolenameR   R!  t   newnodet	   innernodet   contnode(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   build_reference_node  s"    

c   	      C   s   | d k r |  j  } n | d k r0 |  j } ni | d k rH |  j } nQ | d k r` |  j } n9 | d k rx |  j } n! | d k r |  j } n	 |  j } | | | | | | | |  S(   NR   R   R   R   R   R   (   t   _resolve_ref_xreft   _resolve_numref_xreft   _resolve_keyword_xreft   _resolve_doc_xreft   _resolve_option_xreft   _resolve_citation_xreft   _resolve_obj_xref(	   R'   R#   R)  R*  t   typRK   RL   R.  t   resolver(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   resolve_xref  s    	c         C   s   | d r8 |  j  d j | d  \ } }	 | j   }
 n" |  j  d j | d  \ } }	 }
 | sd d  S|  j | | | |	 |
 d  S(   Nt   refexplicitR   R!   R   R   (   R!   R!   (   R!   R!   R!   (   R   Rz   R   R;   R/  (   R'   R#   R)  R*  R7  RK   RL   R.  R<   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR0    s    
c         C   s  | |  j  d k r8 |  j  d j | d  \ } }	 }
 n% |  j  d j | d  \ } }	 d  }
 | sg d  S| j |  j j |	  } |  j |  } | d  k r d  S| d k r | j j t k r t	 j
 t d  d | | Sy/ |  j | | | | |  } | d  k r
| SWn1 t k
 r>t	 j
 t d  | |	 d | | SXy | d r[| j   } n | j j j | d  } |
 d  k rd	 | k rt	 j
 t d
  | d | | Sd j t t |   } d	 | k sd | k r|
 r| j d |
 d |  } q| j d |  } n
 | | } Wn` t k
 rQ} t	 j
 t d  | | d | | St k
 r~t	 j
 t d  | d | | SX|  j | | | |	 | d d t j d | S(   NR   R!   R   R  s(   numfig is disabled. :numref: is ignored.Rc   s    no number is assigned for %s: %sR:  s   {name}s   the link has no caption: %st   .t   numberR*   s   invalid numfig_format: %s (%r)s   invalid numfig_format: %sR   R!  R   (   R!   R!   R!   (   R!   R!   (   R   Rz   R;   t   get_doctreeR,   t   get_enumerable_node_typet   configt   numfigR[   Rg   Rh   R   t   get_fignumberRl   R   t   numfig_formatt   joint   mapR   t   formatt   KeyErrort	   TypeErrorR/  R   t   number_reference(   R'   R#   R)  R*  R7  RK   RL   R.  R<   R  t   fignamet   target_nodet   figtypet	   fignumberR   t   fignumt   newtitlet   exc(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR1    sX    %
	c         C   sB   |  j  d j | d  \ } }	 }
 | s, d  St | | | |	 |  S(   NR   R!   (   R!   R!   R!   (   R   Rz   R;   R   (   R'   R#   R)  R*  R7  RK   RL   R.  R<   R  R
   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR2    s
    "c         C   s   | j  d |  } t | | d  }	 |	 | j k r8 d  S| d rQ | j   }
 n t | j |	  }
 t j |
 |
 d d g } t	 | | |	 d  |  Sd  S(   Nt   refdocRH   R:  R   R   (
   Rz   R   t   all_docsR;   R   R   t   titlesR   R'  R   (   R'   R#   R)  R*  R7  RK   RL   R.  RP  R<   R  R-  (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR3    s    
c         C   s   | j  d  } | j   } |  j d j  | | f d  \ }	 }
 |	 s g  } x} t j |  r t j | d  \ } } | j |  d j |  } |  j d j  | | f d  \ }	 }
 |	 rO PqO qO Wd  Sn  t	 | | |	 |
 |  S(   Ns   std:programRw   R!   i   Rt   (   R!   R!   (   R!   R!   (
   Rz   R9   R   R   R   RV   R3   RC  R;   R   (   R'   R#   R)  R*  R7  RK   RL   R.  t   prognameR<   R  t   commandst
   subcommand(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR4  $  s     %c         C   s   d d l  m } |  j d j | d  \ }	 }
 } |	 sS d | k rO | d 2n  d  Sy t | | |	 |
 |  SWn1 | k
 r t | t j  s | d 2n    n Xd  S(   Ni(   t   NoUriR   R!   i    R,   (   R!   R!   i    (	   t   sphinx.environmentRV  R   Rz   R;   R   t
   isinstanceR   t   Element(   R'   R#   R)  R*  R7  RK   RL   R.  RV  R<   R  Ri   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR5  :  s    "c         C   s   |  j  |  p g  } xT | D]@ }	 |	 | f |  j d k r |  j d |	 | f \ }
 } Pq q Wd \ }
 } |
 sv d  St | | |
 | |  S(   NR1   R!   (   R!   R!   (   t   objtypes_for_roleR   R;   R   (   R'   R#   R)  R*  R7  RK   RL   R.  t   objtypesR2   R<   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR6  Q  s    c      	   C   s  g  } | j    } xa d D]Y }	 |  j | | | |	 |	 d k rC | n | | |  }
 |
 r | j d |	 |
 f  q q Wx |  j D] } | | f } | d k r | | f } n  | |  j d k r |  j d | \ } } | j d |  j |  t | | | | |  f  q q W| S(   NR   R   s   std:R   R1   (   R   R   (   R   R9  R3   t   object_typesR   t   role_for_objtypeR   (   R'   R#   R)  R*  RK   RL   R.  t   resultst   ltargett   rolet   resR2   R   R<   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   resolve_any_xref_  s$    c   	      c   s  x; |  j  j D]- } | t |  j  j |  d | d d f Vq Wx t |  j d  D]n \ \ } } } | r d j | | g  } | | d | d | d d f VqR | | d | d | d d f VqR WxT t |  j d	  D]? \ \ } } } | | | | d | d |  j | j d
 f Vq WxD t |  j d  D]/ \ } } | | d d | d | d d f Vq/Wt	 |  j d  } xO t |  j d  D]: \ } } | | k r| | d | d | d d f VqqWd  S(   NR   R!   iRw   R;  Ru   i    i   R1   R   R   i   R   R   (
   R#   RQ  R   RR  R   R   RC  R\  t   attrsR   (	   R'   R   t   progR   t   infoRW   R
  R*   t   non_anon_labels(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   get_objectsu  s     +&"#& ' c         C   s   | j  S(   N(   t   lname(   R'   R
  t   primary(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   get_type_name  s    c         C   s   | j  |  j k S(   N(   t	   __class__R   (   R'   RL   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR    s    c         C   sn   |  j  |  rj |  j j | j d  \ } } | r= | |  Sx* | D] } | j d k rD t |  SqD Wn  d S(   s?   Get the title of enumerable nodes to refer them using its titleR  R   N(   NN(   R  R   (   R  R   Rz   Rk  R;   R  R   (   R'   RL   R
   t   title_getterR   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR    s    
c         C   s   d   } t  | t j  r d St  | t j  r] | j d  rV | | t j  rV d Sd Sn" |  j j | j d  \ } } | Sd S(   s   Get type of enumerable nodes.c            s   t    f d   |  D  S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   RX  (   R   t   child(   t   cls(    s1   lib/python2.7/site-packages/sphinx/domains/std.pys	   <genexpr>  s    (   t   any(   RL   Rn  (    (   Rn  s1   lib/python2.7/site-packages/sphinx/domains/std.pyt	   has_child  s    R  t   literal_blocks
   code-blockN(   NN(	   RX  R   R  t	   containerRz   Rq  R;   R   Rk  (   R'   RL   Rp  RK  R
   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR>    s    	!c         C   s#   t  j d t d d |  j |  S(   s?   Get figure type of nodes.

        .. deprecated:: 1.8
        sZ   StandardDomain.get_figtype() is deprecated. Please use get_enumerable_node_type() instead.t
   stackleveli   (   t   warningst   warnR   R>  (   R'   RL   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   get_figtype  s    	c         C   s   | d k r | j  d k r" t   S| | j k r: t  q d | d d } | | j | k rs | j | j d  S| j | j |  SnE y% | d d } | j | | | SWn t t f k
 r t  n Xd  S(   NR  t   latexR%  R,   i    R!   (   R*   t   tuplet   toc_secnumbersRl   Rz   t   toc_fignumbersRF  t
   IndexError(   R'   R#   R*  RK  R<   RJ  t
   anchornamet	   figure_id(    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyRA    s    	c         C   s   | j  d  d k r | j  d  } t j | j  d   } | rU | j d |  n  | j   } | r d j d j |  | g  Sd  Sn d  Sd  S(   NR   R   s   std:programRH   i    R;  Rt   (   Rz   R   RV   RU   R   RC  R;   (   R'   RL   RS  t   commandR   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   get_full_qualified_name  s    (   R   R!   (   s   py-modindexR!   (   R   R!   N(   R   N(   R   N(   s
   code-blockN(7   RC   RD   RE   R*   R   R	   R
   R\  R~   Rb   RF   R   R   R   R   R_   RG   R   R   R'  t   rolest   initial_datat   dangling_warningsR;   R   R   Rr  R   R   R  R  R	  R  R  R  R   R/  R9  R0  R1  R2  R3  R4  R5  R6  Rb  Rg  R[   Rj  R  R  R>  Rv  RA  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyR     s   









								)					=													c         C   s-   |  j  t  i d d 6d d 6t d 6t d 6S(   Nt   builtint   versioni   t   env_versiont   parallel_read_safet   parallel_write_safe(   t
   add_domainR   R_   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   setup  s    (M   RE   R   R   Rt  R    t   docutilsR   t   docutils.parsers.rstR   t   docutils.statemachineR   t   sixR   t   sphinxR   t   sphinx.deprecationR   t   sphinx.directivesR   t   sphinx.domainsR   R	   t   sphinx.localeR
   R   t   sphinx.rolesR   t   sphinx.utilR   R   R   t   sphinx.util.docutilsR   t   sphinx.util.nodesR   R   R[   t   typingR   R   R   R   R   R   R   R   R   t   sphinx.applicationR   t   sphinx.buildersR   RW  R   t   sphinx.util.typingR   t	   getLoggerRC   Rg   t   compileRe   t   UR   R    RF   RG   RR   Rb   R~   R   R   R;   R   R   R   R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/std.pyt   <module>
   sV   :%&:	r	(  +