
    g                       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Zd dZd!dZd dZd"dZ G d dej                  Z ej        ej        e            ej        ej        d           d ZdS )#    )annotations)BytesIO)Sequence   )Image	ImageFile)i16be)i32be)	deprecaterawjpeg)r      namestrreturnbytesc                l    | dk    rt          dd           dS dt           d|  d}t          |          )NPADzIptcImagePlugin.PAD          zmodule 'z' has no attribute '')r   __name__AttributeError)r   msgs     E/var/www/api/venv/lib/python3.11/site-packages/PIL/IptcImagePlugin.py__getattr__r      sG    u}}',,,{
:X
:
:4
:
:
:C


    cintc                6    t          d| z   dd                    S )Nr   )i32r   s    r   _ir$   *   s    a%&&&r   int | bytesc                @    t          | t                    r| n| d         S Nr   )
isinstancer   r#   s    r   _i8r)   .   s    1c"",11!,r   c                @    t          dd           t          |           S ).. deprecated:: 10.2.0zIptcImagePlugin.ir   )r   r$   r#   s    r   ir,   2   s    !2&&&a55Lr   Sequence[int | bytes]Nonec                    t          dd           | D ]"}t          t          |          dd           #t                       dS )r+   zIptcImagePlugin.dumpr   02x )endN)r   printr)   )r   r,   s     r   dumpr4   8   sO    $b))) ( (Qoo3'''''	GGGGGr   c                  4    e Zd ZdZdZddZdd	ZddZd ZdS )IptcImageFileIPTCzIPTC/NAAkeytuple[int, int]r   r   c                6    t          | j        |                   S )N)r$   info)selfr8   s     r   getintzIptcImageFile.getintI   s    $)C.!!!r   "tuple[tuple[int, int] | None, int]c                   | j                             d          }|                    d          sdS |d         |d         f}|d         dk    s
|d         dvrd	}t          |          |d
         }|dk    rd}t	          |          |dk    rd}nA|dk    r+t          | j                             |dz
                      }nt          |d
          }||fS )Nr       r'   r      r      )
r   rA         r            	      zinvalid IPTC/NAA filerC      z%illegal field length in IPTC/NAA file   )fpreadstripSyntaxErrorOSErrorr$   i16)r<   stagr   sizes        r   fieldzIptcImageFile.fieldL   s     GLLOOwww 	7dAaDj Q44<<3q6)III)Cc""" t#::9C#,,S[[DDCZZdgll4#:..//DDq!99DDyr   r.   c                   	 | j                                         }|                                 \  }}|r|dk    rn|r| j                             |          }nd }|| j        v rYt          | j        |         t                    r!| j        |                             |           n"| j        |         |g| j        |<   n
|| j        |<   | j        d         d         }| j        d         d         }d| j        v r| j        d         d         dz
  }nd}|dk    r
|sd| _        n+|dk    r|rd	|         | _        n|d
k    r|rd|         | _        | 	                    d          | 	                    d          f| _
        	 t          | 	                    d                   }n$# t          $ r}	d}
t          |
          |	d }	~	ww xY w|dk    rdd| j        z   ||fg| _        d S d S )NTrG   
   )rC   <   r   r   )rC   A   LrC   RGBrD   CMYK)rC      )rC      )rC   x   zUnknown IPTC image compressioniptc)r   r   )rL   tellrU   rM   r;   r(   listappend_moder=   _sizeCOMPRESSIONKeyErrorrP   rT   tile)r<   offsetrS   rT   tagdatalayers	componentidcompressioner   s              r   _openzIptcImageFile._openh   s   	)W\\^^F

IC #.. ',,t,,didind33 ?IcN))'2222&*ing%>DIcNN!(	#	)$ 7#A&Ig&q)	di7#A&*BBBQ;;y;DJJq[[Y[rDJJq[[Y[DJ [[))4;;w+?+??
	&%dkk(&;&;<KK 	& 	& 	&2C#,,A%	&
 '>> &49"4fkJKDIII >s   : F 
F<%F77F<c                   t          | j                  dk    s| j        d         d         dk    rt          j                            |           S | j        d         dd          \  }}| j                            |           t                      }|dk    r|                    d| j        z             	 | 	                                \  }}|dk    rn_|dk    rX| j        
                    t          |d	                    }|sn-|                    |           |t          |          z  }|dk    X}t          j        |          5 }|                                 |j        | _        d d d            d S # 1 swxY w Y   d S )
Nr   r   ra   rA   r   s   P5
%d %d
255
TrW   i    )lenri   r   loadrL   seekr   writerT   rU   rM   minr   openim)r<   rj   ro   otyperT   rR   _ims           r   rt   zIptcImageFile.load   s   ty>>Q$)A,q/V";";&++D111"il122.V II% GG'$)3444		JD$w((GLLT411 


A ((			 Z]] 	cHHJJJfDG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   !E22E69E6N)r8   r9   r   r   )r   r>   )r   r.   )	r   
__module____qualname__formatformat_descriptionr=   rU   rq   rt    r   r   r6   r6   E   so        F#" " " "   8-L -L -L -L^    r   r6   z.iimc                R   ddl m}m} d}t          | t                    r| j        S t          | |j                  r2| j                            d          }|r|                    d          }nEt          | |j                  r0	 | j	        j
        |j                 }n# t          t          f$ r Y nw xY w|dS  G d d          } |            } t          | _        i | _        t          |          | _        	 |                                  n# t$          t          f$ r Y nw xY w| j        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	photoshopi  c                      e Zd ZdS )getiptcinfo.<locals>.FakeImageN)r   r}   r~   r   r   r   	FakeImager      s        r   r   ) r   r   r(   r6   r;   JpegImageFilegetTiffImageFilerS   rk   IPTC_NAA_CHUNKr   rh   	__class__r   rL   rq   
IndexError)ry   r   r   datar   r   s         r   getiptcinfor      sn    32222222D"m$$ w	B5	6	6 GKK,,	 	)==((D	B5	6	6 	6>/"@ADD) 	 	 	D	 |t        
B BL BGDMMBE




!    7Ns$   B B0/B06D DDN)r   r   r   r   )r   r   r   r   )r   r%   r   r   )r   r-   r   r.   )
__future__r   ior   typingr   r   r   r   _binaryr	   rQ   r
   r"   
_deprecater   rg   r   r$   r)   r,   r4   r6   register_openr   register_extensionr   r   r   r   <module>r      s}  " # " " " " "                     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !F##   ' ' ' '- - - -      m m m m mI' m m m`  M(- 8 8 8  -v 6 6 61 1 1 1 1r   