ó
öÀ„\c           @   sÛ   d  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 m Z m Z e r© d d l 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.ext.imgconverter
    ~~~~~~~~~~~~~~~~~~~~~~~

    Image converter extension for Sphinx

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iÿÿÿÿN(   t   ExtensionError(   t   __(   t   ImageConverter(   t   logging(   t   ENOENTt   EPIPEt   EINVAL(   t   Anyt   Dict(   t   Sphinxt   ImagemagickConverterc           B   s)   e  Z d d d g Z d „  Z d „  Z RS(	   s   image/svg+xmls	   image/pngs	   image/gifs   application/pdfc         C   sB  yG |  j  j d g } t j d | ƒ t j | d t j d t j ƒ} Wn4 t t f k
 r} t j	 t
 d ƒ |  j  j ƒ t SXy | j ƒ  \ } } Wn] t t f k
 ró } | j t t f k rÇ ‚  n  | j j ƒ  | j j ƒ  } } | j ƒ  n X| j d k r>t j ƒ  } t j	 t
 d ƒ | j | ƒ | j | ƒ ƒ t St S(   s+   Confirms the converter is available or not.s   -versions   Invoking %r ...t   stdoutt   stderrsB   convert command %r cannot be run.check the image_converter settingi    s2   convert exited with error:
[stderr]
%s
[stdout]
%s(   t   configt   image_convertert   loggert   debugt
   subprocesst   Popent   PIPEt   OSErrort   IOErrort   warningR   t   Falset   communicatet   errnoR   R   R   t   readR   t   waitt
   returncodet   localet   getpreferredencodingt   decodet   True(   t   selft   argst   pR   R   t   errt   encoding(    (    s6   lib/python2.7/site-packages/sphinx/ext/imgconverter.pyt   is_available$   s*    %c         C   sR  yb | d 7} |  j  j g |  j  j | | g } t j d | ƒ t j | d t j d t j ƒ} WnE t k
 r© } | j	 t
 k r‰ ‚  n  t j t d ƒ |  j  j ƒ t SXy | j ƒ  \ } } Wn] t t f k
 r} | j	 t t f k ró ‚  n  | j j ƒ  | j j ƒ  } } | j ƒ  n X| j d k rNt t d ƒ | | f ƒ ‚ n  t S(   s#   Converts the image to expected one.s   [0]s   Invoking %r ...R   R   sB   convert command %r cannot be run.check the image_converter settingi    s2   convert exited with error:
[stderr]
%s
[stdout]
%s(   R   R   t   image_converter_argsR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R    (   R!   t   _fromt   _toR"   R#   R$   R   R   (    (    s6   lib/python2.7/site-packages/sphinx/ext/imgconverter.pyt   convertA   s.    
%(   s   image/svg+xmls	   image/png(   s	   image/gifs	   image/png(   s   application/pdfs	   image/png(   t   __name__t
   __module__t   conversion_rulesR&   R*   (    (    (    s6   lib/python2.7/site-packages/sphinx/ext/imgconverter.pyR
      s
   		c         C   sL   |  j  t ƒ |  j d d d ƒ |  j d g  d ƒ i d d 6t d 6t d 6S(	   NR   R*   t   envR'   t   builtint   versiont   parallel_read_safet   parallel_write_safe(   t   add_post_transformR
   t   add_config_valueR    (   t   app(    (    s6   lib/python2.7/site-packages/sphinx/ext/imgconverter.pyt   setupe   s    (   t   __doc__R   R   t   sphinx.errorsR    t   sphinx.localeR   t(   sphinx.transforms.post_transforms.imagesR   t   sphinx.utilR   t   sphinx.util.osutilR   R   R   R   t   typingR   R   t   sphinx.applicationR	   t	   getLoggerR+   R   R
   R6   (    (    (    s6   lib/python2.7/site-packages/sphinx/ext/imgconverter.pyt   <module>
   s   H