
    h                    T   S SK Jr  S SKJr  S SKJr  S SKJr  SSKJ	r	J
r
  SSKJr  SSKJr  SS	KJr  S
SS.rSS jrSS jrSS jrSS jrSS jr " S S\
R                  5      r\	R2                  " \R4                  \5        \	R6                  " \R4                  S5            SS jrg)    )annotations)Sequence)BytesIO)cast   )Image	ImageFile)i16be)i32be)	deprecaterawjpeg)r      c                X    U S:X  a  [        SS5        gS[         SU  S3n[        U5      e)NPADzIptcImagePlugin.PAD          zmodule 'z' has no attribute '')r   __name__AttributeError)namemsgs     E/var/www/html/env/lib/python3.13/site-packages/PIL/IptcImagePlugin.py__getattr__r      s7    u}',XJ24&
:C

    c                $    [        SU -   SS  5      $ )Nr   )i32cs    r   _ir!   +   s    a%&&r   c                :    [        U [        5      (       a  U $ U S   $ Nr   )
isinstanceintr   s    r   _i8r&   /   s    1c""1,!,r   c                0    [        SS5        [        U 5      $ ).. deprecated:: 10.2.0zIptcImagePlugin.ir   )r   r!   r   s    r   ir)   3   s    !2&a5Lr   c                l    [        SS5        U  H  n[        [        U5      S SS9  M     [        5         g)r(   zIptcImagePlugin.dumpr   02x )endN)r   printr&   )r    r)   s     r   dumpr/   9   s.    $b)Q3' 	Gr   c                  D    \ rS rSrSrSrS
S jrSS jrSS jrSS jr	Sr
g	)IptcImageFileF   IPTCzIPTC/NAAc                2    [        U R                  U   5      $ )N)r!   info)selfkeys     r   getintIptcImageFile.getintJ   s    $))C.!!r   c                |   U R                   R                  S5      nUR                  S5      (       d  gUS   US   4nUS   S:w  d	  US   S;  a  S	n[        U5      eUS
   nUS:  a  Sn[	        U5      eUS:X  a  SnX$4$ US:  a*  [        U R                   R                  US-
  5      5      nX$4$ [        US
5      nX$4$ )Nr       r#   r      r      )
r   r<         r            	      zinvalid IPTC/NAA filer>      z%illegal field length in IPTC/NAA file   )fpreadstripSyntaxErrorOSErrorr!   i16)r6   stagr   sizes        r   fieldIptcImageFile.fieldM   s     GGLLOwwwdAaDj Q44<3q6)II)Cc"" t#:9C#,S[D y CZdggll4#:./D y q!9Dyr   c                    U R                   R                  5       nU R                  5       u  p#U(       a  US:X  a  OU(       a  U R                   R                  U5      nOS nX R                  ;   a`  [        U R                  U   [        5      (       a  U R                  U   R                  U5        O-U R                  U   U/U R                  U'   OX@R                  U'   M  U R                  S   S   nU R                  S   S   nSU R                  ;   a  U R                  S   S   S-
  nOSnUS:X  a  U(       d  SU l        O/US:X  a  U(       a  SU   U l        OUS	:X  a  U(       a
  S
U   U l        U R                  S5      U R                  S5      4U l
         [        U R                  S5         nUS:X  a,  [        R                  " SSU R                   -   X5      /U l        g g ! [         a  n	Sn
[        U
5      U	eS n	A	ff = f)NrB   
   )r>   <   r   r   )r>   A   Lr>   RGBr?   CMYK)r>      )r>      )r>   x   zUnknown IPTC image compressioniptc)r   r   )rG   tellrP   rH   r5   r$   listappend_moder8   _sizeCOMPRESSIONKeyErrorrK   r	   _TilerO   tile)r6   offsetrN   rO   tagdatalayers	componentidcompressioner   s              r   _openIptcImageFile._openi   s   WW\\^F

IC#.'',,t,iidiind33IIcN))'2&*iing%>DIIcN!(		# $ 7#A&IIg&q)	dii7#A&*BBQ;yDJq[YrDJq[YDJ [[)4;;w+??
	&%dkk(&;<K '>(:FPDI   	&2C#,A%	&s   G# #
H -G;;H c                   [        U R                  5      S:w  d  U R                  S   S   S:w  a  [        R                  R                  U 5      $ U R                  S   SS  u  pU R                  R                  U5        [        5       nUS:X  a  UR                  SU R                  -  5         U R                  5       u  pEUS:w  a  O\US:  aT  U R                  R                  [        US5      5      nU(       d  O'UR                  U5        U[        U5      -  nUS:  a  MT  Mu  [        R                  " U5       nUR                  5         UR                  U l        S S S 5        g ! , (       d  f       g = f)	Nr   r   r]   r<   r   s   P5
%d %d
255
rS   i    )lenrf   r	   loadrG   seekr   writerO   rP   rH   minr   openim)r6   rg   rl   otyperO   rM   _ims           r   rr   IptcImageFile.load   s+   tyy>Q$))A,q/V";&&++D11"iil12.V I% GG'$))34JDw(GGLLT41
A (	  ZZ]cHHJffDG   ] s   8"E##
E1)ra   rb   rw   rf   N)r7   ztuple[int, int]returnr%   )r|   z"tuple[tuple[int, int] | None, int])r|   None)r|   zImage.core.PixelAccess | None)r   
__module____qualname____firstlineno__formatformat_descriptionr8   rP   rn   rr   __static_attributes__ r   r   r1   r1   F   s"    F#"8/br   r1   z.iimc                D   SSK JnJn  Sn0 n[        U [        5      (       a@  U R
                  R                  5        H   u  pV[        U[        5      (       d  M  XdU'   M"     U$ [        XR                  5      (       a4  U R
                  R                  S5      nU(       a  UR                  S5      nO4[        XR                  5      (       a   U R                  UR                     nUc  g " S S5      nU" 5       n	[        U	l        [        [        U	5      n
0 U
l        [!        U5      U
l         U
R%                  5         U
R
                  R                  5        H   u  pV[        U[        5      (       d  M  XdU'   M"     U$ ! [         a     Nf = f! [&        [        4 a     Nbf = f)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                      \ rS rSrSrg)getiptcinfo.<locals>.FakeImage   r   N)r   r~   r   r   r   r   r   r   	FakeImager      s    r   r   ) r   r   r$   r1   r5   itemstupleJpegImageFilegetTiffImageFiletag_v2IPTC_NAA_CHUNKrd   	__class__r   r   rG   rn   
IndexError)rw   r   r   datar5   kvr   r   fake_imiptc_ims              r   getiptcinfor      sc    3D79D"m$$GGMMODA!U##Q $ 	B55	6	6GGKK,	==(D	B55	6	6	99_;;<D |  kG%G='*G GLGJ ""$aG % K5  		( ! s$   E< ,F <
F	F	FFN)r   strr|   bytes)r    r   r|   r%   )r    zint | bytesr|   r%   )r    zSequence[int | bytes]r|   r}   )rw   zImageFile.ImageFiler|   z1dict[tuple[int, int], bytes | list[bytes]] | None)
__future__r   collections.abcr   ior   typingr   r   r   r	   _binaryr
   rL   r   r   
_deprecater   rc   r   r!   r&   r)   r/   r1   register_openr   register_extensionr   r   r   r   <module>r      s   " # $    ! ! !F#'-pI'' pf   M((- 8   --v 6;;6;r   