o
    Nip                     @  s   d Z ddlmZ ddlZddlZddlmZ ddlm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 erFdd
lmZ ddlmZ eeZG dd deZdddZdS )z$Image converter extension for Sphinx    )annotationsN)CalledProcessError)TYPE_CHECKING)ExtensionError)__)ImageConverter)logging)Sphinx)ExtensionMetadatac                   @  s(   e Zd Zg dZdddZdd	d
ZdS )ImagemagickConverter))zimage/svg+xml	image/png)z	image/gifr   )zapplication/pdfr   )zapplication/illustratorr   )z
image/webpr   returnboolc              
   C  s   z| j jdg}td| tj|ddd W dS  ty5 } zttd| j j| W Y d}~dS d}~w t	yR } zttd|j
|j W Y d}~dS d}~ww )	z+Confirms the converter is available or not.z-versionInvoking %r ...Tcapture_output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runOSErrorwarningr   r   stderrstdout)selfargsexc r!   K/home/ubuntu/.local/lib/python3.10/site-packages/sphinx/ext/imgconverter.pyis_available    s(   
z!ImagemagickConverter.is_available_fromstr_toc              
   C  s   z"|d7 }| j jg| j j||}td| tj|ddd W dS  ty6   tt	d| j j Y dS  t
yN } ztt	d|j|jf |d}~w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!   r!   r"   convert6   s4   

zImagemagickConverter.convertN)r   r   )r$   r%   r&   r%   r   r   )__name__
__module____qualname__conversion_rulesr#   r(   r!   r!   r!   r"   r      s    
r   appr	   r   r
   c                 C  s^   |  t tjdkr| ddd | ddgd n| ddd | dg d tjdddS )	Nwin32r   magickenvr'   r(   T)versionparallel_read_safeparallel_write_safe)add_post_transformr   sysplatformadd_config_valuesphinx__display_version__)r-   r!   r!   r"   setupN   s   

r:   )r-   r	   r   r
   )__doc__
__future__r   r   r5   r   typingr   r8   sphinx.errorsr   sphinx.localer   (sphinx.transforms.post_transforms.imagesr   sphinx.utilr   sphinx.applicationr	   sphinx.util.typingr
   	getLoggerr)   r   r   r:   r!   r!   r!   r"   <module>   s"    
7