o �J�h�@s�ddlmZddlmZddlmZddlmZddlm Z m Z ddl m Z ddl mZdd lmZd d d �Zd)dd�Zd*dd�Zd+dd�Zd*dd�Zd,dd�ZGd d!�d!e j �Ze �eje�e �ejd"�d-d&d'�Zd(S).�)� annotations)�Sequence)�BytesIO)�cast�)�Image� ImageFile)�i16be)�i32be)� deprecate�raw�jpeg)r��name�str�return�bytescCs0|dkr tdd�dSdt�d|�d�}t|��)NZPADzIptcImagePlugin.PAD� �zmodule 'z' has no attribute '�')r �__name__�AttributeError)r�msg�r�QC:\pinokio\api\whisper-webui.git\app\env\lib\site-packages\PIL\IptcImagePlugin.py� __getattr__s  r�c�intcCstd|dd��S)Nr�����)�i32�rrrr�_i+sr!� int | bytescCst|t�r|S|dS�Nr)� isinstancerr rrr�_i8/sr%cCstdd�t|�S)�.. deprecated:: 10.2.0zIptcImagePlugin.ir)r r!r rrr�i3s r'�Sequence[int | bytes]�NonecCs2tdd�|D] }tt|�d�dd�qt�dS)r&zIptcImagePlugin.dumpr�02x� )�endN)r �printr%)rr'rrr�dump9s  r.c@s<eZdZdZdZddd�Zdd d �Zdd d�Zddd�ZdS)� IptcImageFileZIPTCzIPTC/NAA�key�tuple[int, int]rrcCst|j|�S)N)r!�info)�selfr0rrr�getintJszIptcImageFile.getint�"tuple[tuple[int, int] | None, int]cCs�|j�d�}|�d�s dS|d|df}|ddks!|ddvr'd }t|��|d }|d kr5d }t|��|d kr?d}||fS|d krQt|j�|d ��}||fSt|d �}||fS)Nr�r#r�r�) rr7��r���� ��zinvalid IPTC/NAA filer9�z%illegal field length in IPTC/NAA file�)�fp�read�strip� SyntaxError�OSErrorr!�i16)r3�s�tagr�sizerrr�fieldMs&  � �zIptcImageFile.fieldr)c Cs� |j��}|��\}}|r|dkrn2|r|j�|�}nd}||jvr?t|j|t�r4|j|�|�n|j||g|j|<n||j|<q|jdd}|jdd}d|jvrb|jddd}nd}|dkrn|snd|_n|dkrz|rzd ||_n |d kr�|r�d ||_|� d �|� d �f|_ z t |� d�}Wnt y�} zd} t | �| �d} ~ ww|dkr�t�dd|j||�g|_dSdS)NT�r=� )r9�<rr)r9�A�Lr9�RGBr:�CMYK)r9�)r9�)r9�xzUnknown IPTC image compression�iptc)rr)rB�tellrKrCr2r$�list�append�_moder4�_size� COMPRESSION�KeyErrorrFr�_TilerJ�tile) r3�offsetrIrJZtagdata�layers� component�id� compression�errrr�_openisJ     �       �� ��zIptcImageFile._open�Image.core.PixelAccess | NonecCst|j�dks|jdddkrtj�|�S|jddd�\}}|j�|�t�}|dkr6|�d|j� |� �\}}|dkrBn |dkra|j� t |d ��}|sRn|�|�|t|�8}|dksFq7t � |��}|��|j|_Wd�dS1s{wYdS) NrrrVr7r s P5 %d %d 255 TrLi )�lenr_r�loadrB�seekr�writerJrKrC�minr�open�im)r3r`rd�o�typerJrH�_imrrrri�s4      ��   ��zIptcImageFile.loadN)r0r1rr)rr5)rr))rrg) r� __module__� __qualname__�format�format_descriptionr4rKrfrirrrrr/Fs   1r/z.iimrn�ImageFile.ImageFile�1dict[tuple[int, int], bytes | list[bytes]] | Nonec Cs2ddlm}m}d}i}t|t�r&|j��D] \}}t|t�r#|||<q|St||j�r:|j� d�}|r9|� d�}nt||j �rRz|j |j }Wn t yQYnw|durXdSGdd�d�}|�} t| _tt| �} i| _t|�| _z| ��Wn tt fy�Ynw| j��D] \}}t|t�r�|||<q�|S)z� Get IPTC information from TIFF, JPEG, or IPTC file. :param im: An image containing IPTC data. :returns: A dictionary containing IPTC information, or None if no IPTC information block was found. r)�JpegImagePlugin�TiffImagePluginN� photoshopic@s eZdZdS)zgetiptcinfo.<locals>.FakeImageN)rrrrsrrrr� FakeImage�sr{)�rxryr$r/r2�items�tuple� JpegImageFile�get� TiffImageFile�tag_v2ZIPTC_NAA_CHUNKr]� __class__rrrBrf� IndexError) rnrxry�datar2�k�vrzr{Zfake_imZiptc_imrrr� getiptcinfo�sL   �   �  �   � �r�N)rrrr)rrrr)rr"rr)rr(rr))rnrvrrw)� __future__r�collections.abcr�ior�typingrr|rr�_binaryr rGr r� _deprecater r\rr!r%r'r.r/� register_openrt�register_extensionr�rrrr�<module>s$             s
Memory