o
    Zh                     @  s   d dl mZ d dlmZ d dlmZ ddlmZmZ ddl	m
Z ddl	mZ ddlmZ d	d
dZd%ddZd&ddZd'ddZd&ddZd(ddZG dd  d ejZeeje eejd! d"d# Zd$S ))    )annotations)BytesIO)Sequence   )Image	ImageFile)i16be)i32be)	deprecaterawZjpeg)r      namestrreturnbytesc                 C  s0   | dkrt dd dS dt d|  d}t|)NZPADzIptcImagePlugin.PAD          zmodule 'z' has no attribute '')r
   __name__AttributeError)r   msg r   J/var/www/html/lang_env/lib/python3.10/site-packages/PIL/IptcImagePlugin.py__getattr__   s
   
r   cintc                 C  s   t d|  dd  S )Nr   )i32r   r   r   r   _i*   s   r   int | bytesc                 C  s   t | tr| S | d S Nr   )
isinstancer   r   r   r   r   _i8.   s   r#   c                 C  s   t dd t| S ).. deprecated:: 10.2.0zIptcImagePlugin.ir   )r
   r   r   r   r   r   i2   s   
r%   Sequence[int | bytes]Nonec                 C  s2   t dd | D ]}tt|ddd qt  dS )r$   zIptcImagePlugin.dumpr   02x )endN)r
   printr#   )r   r%   r   r   r   dump8   s   

r,   c                   @  s:   e Zd ZdZdZdddZdd
dZdddZdd ZdS )IptcImageFileZIPTCzIPTC/NAAkeytuple[int, int]r   r   c                 C  s   t | j| S )N)r   info)selfr.   r   r   r   getintI   s   zIptcImageFile.getint"tuple[tuple[int, int] | None, int]c                 C  s   | j d}|dsdS |d |d f}|d dks!|d dvr'd	}t||d
 }|dkr5d}t||dkr?d}||fS |dkrQt| j |d }||fS t|d
}||fS )Nr       r!   r      r      )
r   r5         r            	      zinvalid IPTC/NAA filer7      z%illegal field length in IPTC/NAA file   )fpreadstripSyntaxErrorOSErrorr   i16)r1   stagr   sizer   r   r   fieldL   s&   

zIptcImageFile.fieldr'   c              
   C  s  	 | j  }|  \}}|r|dkrn2|r| j |}nd }|| jv r?t| j| tr4| j| | n| j| |g| j|< n|| j|< q| jd d }| jd d }d| jv rb| jd d d }nd}|dkrn|snd| _n|dkrz|rzd	| | _n|d
kr|rd| | _| 	d| 	df| _
z	t| 	d }W n ty }	 zd}
t|
|	d }	~	ww |dkrdd| j ||fg| _d S d S )NTr;   
   )r7   <   r   r   )r7   A   Lr7   RGBr8   ZCMYK)r7      )r7      )r7   x   zUnknown IPTC image compressioniptc)r   r   )r@   tellrI   rA   r0   r"   listappend_moder2   _sizeCOMPRESSIONKeyErrorrD   rH   tile)r1   offsetrG   rH   tagdataZlayers	componentidcompressioner   r   r   r   _openh   sH   





zIptcImageFile._openc                 C  s  t | jdks| jd d dkrtj| S | jd dd  \}}| j| t }|dkr6|d| j  	 | 	 \}}|dkrBn |dkra| j
t|d	}|sRn|| |t |8 }|dksFq7t|}|  |j| _W d    d S 1 s{w   Y  d S )
Nr   r   rS   r5   r   s   P5
%d %d
255
TrJ   i    )lenr[   r   loadr@   seekr   writerH   rI   rA   minr   openim)r1   r\   r`   otyperH   rF   Z_imr   r   r   rd      s.    

"zIptcImageFile.loadN)r.   r/   r   r   )r   r3   )r   r'   )	r   
__module____qualname__formatformat_descriptionr2   rI   rb   rd   r   r   r   r   r-   E   s    


/r-   z.iimc              	   C  s   ddl m}m} d}t| tr| jS t| |jr&| jd}|r%|d}nt| |jrAz	| j	j
|j }W n ttfy@   Y nw |du rGdS G dd d}| } t| _i | _t|| _z|   W | jS  ttfyq   Y | jS w )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	photoshopi  c                   @  s   e Zd ZdS )zgetiptcinfo.<locals>.FakeImageN)r   rl   rm   r   r   r   r   	FakeImage   s    rs   ) rp   rq   r"   r-   r0   ZJpegImageFilegetZTiffImageFilerG   r]   ZIPTC_NAA_CHUNKr   rZ   	__class__r   r@   rb   
IndexError)ri   rp   rq   datarr   rs   r   r   r   getiptcinfo   s:   



ry   N)r   r   r   r   )r   r   r   r   )r   r    r   r   )r   r&   r   r'   )
__future__r   ior   typingr   rt   r   r   _binaryr   rE   r	   r   Z
_deprecater
   rY   r   r   r#   r%   r,   r-   Zregister_openrn   Zregister_extensionry   r   r   r   r   <module>   s"   





p