HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/sphinx/util/__pycache__/images.cpython-310.pyc
o

�$�a��@sLdZddlZddlZddlmZddlmZddlmZm	Z	m
Z
mZmZddl
Z
zddlmZWney;dZYnwegd��ZGdd	�d	e
�Zd
edeeeeffdd
�Zddedeedeefdd�Zd d
edeedeefdd�Zdedeefdd�Zdedeefdd�Zdedee	deefdd�Zej�e�dS)!z�
    sphinx.util.images
    ~~~~~~~~~~~~~~~~~~

    Image utility functions for Sphinx.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�OrderedDict)�path)�IO�BinaryIO�
NamedTuple�Optional�Tuple)�Image))z.gifz	image/gif)z.jpgz
image/jpeg)z.pngz	image/png)z.pdfzapplication/pdf)z.svg�
image/svg+xml)z.svgzr
)z.aizapplication/illustratorc@s&eZdZUeed<eed<eed<dS)�DataURI�mimetype�charset�dataN)�__name__�
__module__�__qualname__�str�__annotations__�bytes�rr�4/usr/lib/python3/dist-packages/sphinx/util/images.pyr#s
r�filename�returncCs�zKt�|�}|ddkrd}nt|dt�st|dt�r)t|d�t|d�f}|durItrIt�|��
}|j}Wd�|WS1sDwY|WStyUYdSw)Nr����)	�	imagesize�get�
isinstance�float�intr	�open�size�	Exception)rr!�imrrr�get_image_size)s 

���r$�stream�defaultcCst�|�}|rd|S|S)Nzimage/)�imghdr�what)r%r&�imgtyperrr�guess_mimetype_for_stream:s
r*�cCsft�|���\}}|tvrt|St�|�r1t|d��}t||d�Wd�S1s,wY|S)N�rb)r&)r�splitext�lower�
mime_suffixes�existsr r*)rr&�_�ext�frrr�guess_mimetypeBs

 �r4rcCs&t��D]\}}||kr|SqdS�N)r/�items)rr2�	_mimetyperrr�get_image_extensionMs
�r8�uricCs~|�d�sdSd}d}|dd��dd�\}}|�d�D]}|dkr#q|�d	�r/|d
d�}q|r3|}qt�|�}t|||�S)Nzdata:z
text/plainzUS-ASCII��,r�;�base64zcharset=�)�
startswith�splitr=�	b64decoder)r9rr
�
propertiesr�prop�
image_datarrr�parse_data_uriUs

�
rE�hr3cCs2zd|����vrWdSWdStyYdSw)zEAn additional imghdr library helper; test the header is SVG's or not.z<svgzsvg+xmlN)�decoder.�UnicodeDecodeError)rFr3rrr�test_svgjs���rIr5)r+N)�__doc__r=r'�collectionsr�osr�typingrrrrrr�PILr	�ImportErrorr/rrrr$r*r4r8rErrI�tests�appendrrrr�<module>s*
�