ó
öĄ\c           @   s   d  Z  d d l m Z d d l m Z e ru d d l m Z m Z d d l m Z d d l	 m
 Z
 d d l m Z n  d e f d     YZ d	   Z d
 S(   s  
    sphinx.environment.collectors.metadata
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    The metadata collector components for sphinx.environment.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
i’’’’(   t   nodes(   t   EnvironmentCollector(   t   Dictt   Set(   t   Sphinx(   t   BuildEnvironmentt   MetadataCollectorc           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s*   metadata collector for sphinx.environment.c         C   s   | j  j | d   d  S(   N(   t   metadatat   popt   None(   t   selft   appt   envt   docname(    (    sE   lib/python2.7/site-packages/sphinx/environment/collectors/metadata.pyt	   clear_doc   s    c         C   s)   x" | D] } | j  | | j  | <q Wd  S(   N(   R   (   R
   R   R   t   docnamest   otherR   (    (    sE   lib/python2.7/site-packages/sphinx/environment/collectors/metadata.pyt   merge_other   s    c   
      C   sP  | j  j | j  j } y | d } Wn t k
 r8 d SX| j t j k	 rO d Sx | D] } t | t j  r g  | D] } | j	   ^ qu | d <qV t | t j
  ræ | j	   | | j j <qV | \ } } | j	   | | j	   <qV Wx] | j   D]O \ } }	 | d k rņ y t |	  }	 Wn t k
 r3d }	 n X|	 | | <qņ qņ W| d =d S(   s   Process the docinfo part of the doctree as metadata.

        Keep processing minimal -- just return what docutils says.
        i    Nt   authorst   tocdepth(   R   (   R   R   R   t
   IndexErrort	   __class__R    t   docinfot
   isinstanceR   t   astextt   TextElementt   __name__t   itemst   intt
   ValueError(
   R
   R   t   doctreet   mdR   t   nodet   authort   namet   bodyt   value(    (    sE   lib/python2.7/site-packages/sphinx/environment/collectors/metadata.pyt   process_doc$   s,    &
(   R   t
   __module__t   __doc__R   R   R%   (    (    (    sE   lib/python2.7/site-packages/sphinx/environment/collectors/metadata.pyR      s   		c         C   s&   |  j  t  i d d 6t d 6t d 6S(   Nt   builtint   versiont   parallel_read_safet   parallel_write_safe(   t   add_env_collectorR   t   True(   R   (    (    sE   lib/python2.7/site-packages/sphinx/environment/collectors/metadata.pyt   setupG   s
    N(   R'   t   docutilsR    t   sphinx.environment.collectorsR   t   Falset   typingR   R   t   sphinx.sphinxR   t   sphinx.environmentR   R   R.   (    (    (    sE   lib/python2.7/site-packages/sphinx/environment/collectors/metadata.pyt   <module>
   s   /