
    }c                         d Z ddlZddl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 ddlmZ ddlmZ dd	lmZ  ej        e          Z G d
 de          Zde	deeef         fdZdS )z$Image converter extension for Sphinx    N)PIPECalledProcessError)AnyDict)Sphinx)ExtensionError)__)ImageConverter)loggingc                   6    e Zd Zg dZdefdZdededefdZdS )ImagemagickConverter))zimage/svg+xml	image/png)z	image/gifr   )zapplication/pdfr   )zapplication/illustratorr   returnc                    	 | j         j        dg}t                              d|           t	          j        |t          t          d           dS # t          $ r>}t                              t          d          | j         j        |           Y d}~dS d}~wt          $ r>}t                              t          d          |j        |j                   Y d}~dS d}~ww xY w)	z+Confirms the converter is available or not.z-versionInvoking %r ...TstdoutstderrcheckzUnable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.

Traceback: %sNF2convert exited with error:
[stderr]
%r
[stdout]
%r)configimage_converterloggerdebug
subprocessrunr   OSErrorwarningr	   r   r   r   )selfargsexcs      7lib/python3.11/site-packages/sphinx/ext/imgconverter.pyis_availablez!ImagemagickConverter.is_available   s    	K/<DLL*D111N4TFFFF4 	 	 	NN2   {*C1 1 1 55555! 	 	 	NN2 ; < <:sz3 3 3 55555		s$   AA 
C3BC3CC_from_toc                    	 |dz  }| j         j        g| j         j        z   ||gz   }t                              d|           t          j        |t          t          d           dS # t          $ r6 t          	                    t          d          | j         j                   Y dS t          $ r1}t          t          d          |j        |j        fz            |d}~ww xY w)	z#Converts the image to expected one.z[0]r   Tr   zCconvert command %r cannot be run, check the image_converter settingFr   N)r   r   image_converter_argsr   r   r   r   r   r   r   r	   r   r   r   r   )r   r$   r%   r    r!   s        r"   convertzImagemagickConverter.convert/   s   	D UNE[01K45CL!D LL*D111N4TFFFF4 	 	 	NN2 B C C;68 8 8 55! 	D 	D 	D  %A "B "B"%*cj!9": ; ;@CD	Ds   A!A% %<C$	C-,CCN)__name__
__module____qualname__conversion_rulesboolr#   strr(        r"   r   r      ss          d    ,DS Ds Dt D D D D D Dr0   r   appr   c                    |                      t                     t          j        dk    r0|                     ddd           |                     ddgd           n.|                     ddd           |                     dg d           dddd	S )
Nwin32r   magickenvr'   r(   builtinT)versionparallel_read_safeparallel_write_safe)add_post_transformr   sysplatformadd_config_value)r1   s    r"   setupr>   G   s    /000
|w 
@ 	.%@@@3i[%HHHH
 	.	5AAA3R??? "#  r0   )__doc__r   r;   r   r   typingr   r   sphinx.applicationr   sphinx.errorsr   sphinx.localer	   (sphinx.transforms.post_transforms.imagesr
   sphinx.utilr   	getLoggerr)   r   r   r.   r>   r/   r0   r"   <module>rG      s#   * *     



 / / / / / / / /         % % % % % % ( ( ( ( ( (       C C C C C C      		8	$	$3D 3D 3D 3D 3D> 3D 3D 3Dlv $sCx.      r0   