
    -Ph              	      f   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 dZn# e$ r d	ZY nw xY wd
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d0d'Zd1d(ZdS )2z#Image utility functions for Sphinx.    )annotationsN)Path)TYPE_CHECKING
NamedTupleoverload)PathLike)ImageTFz	image/gifz
image/jpegz	image/pngzapplication/pdfzimage/svg+xmlzapplication/illustratorz
image/webp)z.gifz.jpgz.pngz.pdfz.svgz.svgzz.aiz.webpc                    i | ]\  }}||	S  r   ).0kvs      R/var/www/html/test/jupyter/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   filenamestr | PathLike[str]returntuple[int, int] | Nonec                   t          |           } 	 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      )r   	imagesizeget
isinstancefloatintPILLOW_AVAILABLEr	   opensize	Exception)r   r+   ims      r   get_image_sizer.   (   s   H~~H}X&&7b==DDQ'' 	0:d1gu+E+E 	0QLL#d1g,,/D<,<H%% w                  tts6   B C 1C9C C		C C	C 
C C PathLike[str] | strdefaultr   c                    d S Nr   r   r0   s     r   guess_mimetyper4   :   s    HKr   None
str | Nonec                    d S r2   r   r3   s     r   r4   r4   >   s	     r    c                    t          |           } | j                                        }|t          v rt          |         S |                                 r%	 t          |           }d|z   S # t          $ r Y nw xY w|S )Nzimage/)r   suffixlowermime_suffixesexists_image_type_from_file
ValueError)r   r0   extimgtypes       r   r4   r4   D   s     H~~H
/


!
!C
mS!! &	&+H55G g%%  	 	 	D	 Ns   A( (
A54A5r   c                6    t                               |           S r2   )_suffix_from_mimer%   )r   s    r   get_image_extensionrD   V   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splitrK   	b64decoder   )rE   r   r   
propertiesr   prop
image_datas          r   parse_data_urirS   Z   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   RIFFrL      s   WEBPwebpzCould not detect image type!)r*   readrM   r;   r?   )r   fheadermsgs       r   r>   r>   o   s`   	h		               
  u /00 u %% v -.. u &,,..  y (( v !! fQrTlg&=&=v
(C
S//s   377)r   r   r   r    )r   r/   r0   r   r   r   r2   )r   r/   r0   r5   r   r6   )r8   N)r   r/   r0   r6   r   r6   )r   r   r   r6   )rE   r   r   rF   )r   r/   r   r   )__doc__
__future__r   rK   pathlibr   typingr   r   r   r$   osr   PILr	   r)   ImportErrorr<   reverseditemsrC   r   r.   r4   rD   rS   r>   r   r   r   <module>rk      s   ) ) " " " " " "        6 6 6 6 6 6 6 6 6 6         $	 	 GFhh}/B/B/D/D&E&EFFF     j      $ 
 K K K 
 K 
37    
 %'    $+ + + +2 2 2 2*( ( ( ( ( (s   3 ==