
    7 fZ                    ^   d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	 ddl
Z
erddlmZ 	 ddlmZ n# e$ r dZY nw xY wdd	d
dddddZd  ee                                          D             Z G d de          Zd%dZe	d&d            Ze	d'd(d            Z	 	 d)d*dZd+d Zd,d#Zd-d$ZdS ).z#Image utility functions for Sphinx.    )annotationsN)path)TYPE_CHECKING
NamedTupleoverload)PathLike)Imagez	image/gifz
image/jpegz	image/pngzapplication/pdfzimage/svg+xmlzapplication/illustrator)z.gifz.jpgz.pngz.pdfz.svgz.svgzz.aic                    i | ]\  }}||	S  r   ).0kvs      H/var/www/equiseq/venv/lib/python3.11/site-packages/sphinx/util/images.py
<dictcomp>r      s    FFFdaQFFF    c                  .    e Zd ZU ded<   ded<   ded<   dS )DataURIstrmimetypecharsetbytesdataN)__name__
__module____qualname____annotations__r   r   r   r   r      s+         MMMLLLKKKKKr   r   filenamer   returntuple[int, int] | Nonec                   	 t          j        |           }|d         dk    rd }n`t          |d         t                    st          |d         t                    r*t	          |d                   t	          |d                   f}|:t
          r3t          j        |           5 }|j        }d d d            n# 1 swxY w Y   |S # t          $ r Y d S w xY w)Nr      )		imagesizeget
isinstancefloatintr	   opensize	Exception)r   r)   ims      r   get_image_sizer,   %   s   }X&&7b==DDQ'' 	0:d1gu+E+E 	0QLL#d1g,,/D<E<H%% w                  tts6   B C "B6*C 6B::C =B:>C 
CCPathLike[str] | strdefaultc                    d S Nr   r   r.   s     r   guess_mimetyper2   6       Cr   None
str | Nonec                    d S r0   r   r1   s     r   r2   r2   ;   r3   r    c                    t          j        |           d                                         }|t          v rt          |         S t          j        |           r%	 t          |           }d|z   S # t          $ r Y nw xY w|S )Nr"   zimage/)r   splitextlowermime_suffixesexists_image_type_from_file
ValueError)r   r.   extimgtypes       r   r2   r2   @   s     -
!
!!
$
*
*
,
,C
mS!!{8 &	&+H55G g%%  	 	 	D	 Ns   A, ,
A98A9r   c                6    t                               |           S r0   )_suffix_from_mimer$   )r   s    r   get_image_extensionrC   Q   s      ***r   uriDataURI | Nonec                J   |                      d          sd S d}d}| dd                              dd          \  }}|                    d          D ]-}|dk    r	|                     d	          r|d
d          })|r|}.t          j        |          }t	          |||          S )Nzdata:z
text/plainzUS-ASCII   ,r"   ;base64zcharset=   )
startswithsplitrJ   	b64decoder   )rD   r   r   
propertiesr   prop
image_datas          r   parse_data_urirR   U   s    >>'"" t HG122w}}S!,,J  %%  8__Z(( 	122hGG 	H!$''J8Wj111r   c                   t          | d          5 }|                    d          }d d d            n# 1 swxY w Y   |                    d          rdS |                    d          rdS |                    d          rdS |                    d	          rd
S d|                                v rdS |                    d          rdS |                    d          r|dd         dk    rdS d}t	          |          )Nrb    s   BMbmp)s   GIF87as   GIF89agifs   jpegs   PNG

pngs   <svgzsvg+xml)s   MMs   IItiffs   RIFFrK      s   WEBPwebpzCould not detect image type!)r(   readrL   r:   r>   )r   fheadermsgs       r   r=   r=   j   s`   	h		               
  u /00 u %% v -.. u &,,..  y (( v !! fQrTlg&=&=v
(C
S//s   377)r   r   r   r   )r   r-   r.   r   r   r   r0   )r   r-   r.   r4   r   r5   )r7   N)r   r-   r.   r5   r   r5   )r   r   r   r5   )rD   r   r   rE   )r   r-   r   r   )__doc__
__future__r   rJ   osr   typingr   r   r   r#   r   PILr	   ImportErrorr;   reverseditemsrB   r   r,   r2   rC   rR   r=   r   r   r   <module>ri      s   ) ) " " " " " "        6 6 6 6 6 6 6 6 6 6        EEE $  GFhh}/B/B/D/D&E&EFFF     j      " 
   
 
    

 %'    "+ + + +2 2 2 2*( ( ( ( ( (s   1 ;;