ó
öÀ„\c           @   si  d  Z  d d l 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 m Z d d l m Z m Z m Z m Z m Z 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( e) rqd d l* m+ Z+ m, Z, d d l- m. Z. n  e$ j/ e0 ƒ Z1 e2 d e d e) ƒ d e d e) ƒ d e d e) ƒ d e d e) ƒ d e d e3 d e) ƒ d e d e) ƒ d e d e) ƒ ƒ Z4 x! e4 j5 ƒ  D] Z6 e6 j7 d ƒ qWi d e8 d ƒ 6d  e8 d! ƒ 6d" e8 d# ƒ 6Z9 d$ Z: d% e; f d& „  ƒ  YZ< d S('   sÎ   
    sphinx.highlighting
    ~~~~~~~~~~~~~~~~~~~

    Highlight code blocks using Pygments.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iÿÿÿÿN(   t	   highlight(   t
   ErrorToken(   t   HtmlFormattert   LatexFormatter(   t   Lexer(   t   get_lexer_by_namet   guess_lexer(   t   PythonLexert   Python3Lexert   PythonConsoleLexert   CLexert	   TextLexert   RstLexer(   t   get_style_by_name(   t   ClassNotFound(   t	   text_type(   t   RemovedInSphinx30Warning(   t   doctest(   t   __(   t   SphinxStylet	   NoneStyle(   t   logging(   t
   htmlescape(   t   tex_hl_escape_map_new(   t   Anyt   Dict(   t	   Formattert   nonet   stripnlt   pythont   python3t   pycont   pycon3t   restt   ct   raiseonerroru	   \PYGZbs{}u   \u	   \PYGZob{}u   {u	   \PYGZcb{}u   }s(   
\renewcommand\PYGZsq{\textquotesingle}
t   PygmentsBridgec           B   sS   e  Z e Z e Z d  d d d „ Z d „  Z d „  Z	 d d e
 d „ Z d „  Z RS(   t   htmlt   sphinxc         C   s	  | |  _  | d  k s! | d k r* t } ni | d k r? t } nT d | k r‡ | j d d ƒ \ } } t t | d  d  d g ƒ | ƒ } n t | ƒ } i | d 6|  _ | d k r¾ |  j	 |  _
 n |  j |  _
 d |  j d	 <| |  _ | d  k	 rt j d
 t d d ƒn  d  S(   NR&   R   t   .i   t   __name__t   styleR%   t   PYGt   commandprefixs?   trim_doctest_flags option for PygmentsBridge is now deprecated.t
   stackleveli   (   t   destt   NoneR   R   t   rsplitt   getattrt
   __import__R   t   formatter_argst   html_formattert	   formattert   latex_formattert   trim_doctest_flagst   warningst   warnR   (   t   selfR-   t	   stylenameR6   R)   t   module(    (    s2   lib/python2.7/site-packages/sphinx/highlighting.pyt   __init__G   s&    					c         K   s   | j  |  j ƒ |  j |   S(   N(   t   updateR2   R4   (   R9   t   kwargs(    (    s2   lib/python2.7/site-packages/sphinx/highlighting.pyt   get_formatter`   s    c         C   se   t  j d t d d ƒ|  j d k r7 d t | ƒ d S| j t ƒ } | j t ƒ } d | d Sd  S(	   Ns1   PygmentsBridge.unhighlighted() is now deprecated.R,   i   R%   s   <pre>s   </pre>
s&   \begin{Verbatim}[commandchars=\\\{\}]
s   \end{Verbatim}
(   R7   R8   R   R-   R   t	   translatet   escape_hl_charsR   (   R9   t   source(    (    s2   lib/python2.7/site-packages/sphinx/highlighting.pyt   unhighlightede   s    	c   
   	   K   s5  t  | t ƒ s | j ƒ  } n  | d k rS | j d ƒ rF t d } qFt d } nó | d k rˆ | j d ƒ r{ t d } qFt d } n¾ | d	 k rÅ y t | ƒ } WqFt k
 rÁ t d
 } qFXn | t k rÞ t | } nh y! t | | pð i   } t | <Wn7 t k
 r8t	 j
 t d ƒ | d | ƒt d
 } n X| j d ƒ t  | t ƒ r‹|  j r‹t j j d | ƒ } t j j d | ƒ } n  |  j |   } y t | | | ƒ }	 Wn^ t k
 r| d k rÏn( t	 j
 t d ƒ | d d d d d | ƒt | t d
 | ƒ }	 n X|  j d k r$|	 S|	 j t ƒ Sd  S(   Nt   pyR   s   >>>R   t   py3R   t   defaultR    t   guessR   s#   Pygments lexer name %r is not knownt   locationR#   t    s:   Could not lex literal_block as "%s". Highlighting skipped.t   typet   misct   subtypet   highlighting_failureR%   (   RD   R   (   RE   R   RF   (   t
   isinstanceR   t   decodet
   startswitht   lexersR   t	   ExceptionR   R   t   loggert   warningR   t
   add_filterR	   R6   R   t   blankline_ret   subt   doctestopt_reR?   R    R   R-   R@   R   (
   R9   RB   t   langt   optsRH   t   forceR>   t   lexerR4   t   hlsource(    (    s2   lib/python2.7/site-packages/sphinx/highlighting.pyt   highlight_blocks   sR    !c         C   s:   |  j  ƒ  } |  j d k r( | j d ƒ S| j ƒ  t Sd  S(   NR%   s
   .highlight(   R?   R-   t   get_style_defst   _LATEX_ADD_STYLES(   R9   R4   (    (    s2   lib/python2.7/site-packages/sphinx/highlighting.pyt   get_stylesheet¯   s    N(   R(   t
   __module__R   R3   R   R5   R.   R<   R?   RC   t   FalseR^   Ra   (    (    (    s2   lib/python2.7/site-packages/sphinx/highlighting.pyR$   A   s   		<(=   t   __doc__R7   t   pygmentsR    t   pygments.filtersR   t   pygments.formattersR   R   t   pygments.lexerR   t   pygments.lexersR   R   R   R   R	   R
   R   R   t   pygments.stylesR   t   pygments.utilR   t   sixR   t   sphinx.deprecationR   t
   sphinx.extR   t   sphinx.localeR   t   sphinx.pygments_stylesR   R   t   sphinx.utilR   t   sphinx.util.pycompatR   t   sphinx.util.texescapeR   Rc   t   typingR   R   t   pygments.formatterR   t	   getLoggerR(   RS   t   dictt   TrueRQ   t   valuest   _lexerRU   t   ordRA   R`   t   objectR$   (    (    (    s2   lib/python2.7/site-packages/sphinx/highlighting.pyt   <module>
   sH   .