
    zvg                    "   d dl mZ 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'd!Zd"S )(    )annotations)Sequence)BytesIO)cast   )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     P/var/www/pixelcanvas.ch/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-   3   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   dumpr5   9   sO    $b))) ( (Qoo3'''''	GGGGGr   c                  6    e Zd ZdZdZddZdd	ZddZddZdS )IptcImageFileIPTCzIPTC/NAAkeytuple[int, int]r   r    c                6    t          | j        |                   S )N)r%   info)selfr9   s     r   getintzIptcImageFile.getintJ   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   rB         r            	      zinvalid IPTC/NAA filerD      z%illegal field length in IPTC/NAA file   )fpreadstripSyntaxErrorOSErrorr%   i16)r=   stagr   sizes        r   fieldzIptcImageFile.fieldM   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't          j        dd| j        z   ||          g| _        d S d S )NTrH   
   )rD   <   r   r   )rD   A   LrD   RGBrE   CMYK)rD      )rD      )rD   x   zUnknown IPTC image compressioniptc)r   r   )rM   tellrV   rN   r<   r)   listappend_moder>   _sizeCOMPRESSIONKeyErrorrQ   r	   _TilerU   tile)r=   offsetrT   rU   tagdatalayers	componentidcompressioner   s              r   _openzIptcImageFile._openi   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%	&
 '>>(:FKPPDIII >s   : F 
F<%F77F<Image.core.PixelAccess | Nonec                   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            n# 1 swxY w Y   d S )
Nr   r   rb   rB   r   s   P5
%d %d
255
TrX   i    )lenrk   r	   loadrM   seekr   writerU   rV   rN   minr   openim)r=   rl   rq   otyperU   rS   _ims           r   rw   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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ts   !E11E58E5N)r9   r:   r   r    )r   r?   )r   r/   )r   rt   )	r   
__module____qualname__formatformat_descriptionr>   rV   rs   rw    r   r   r7   r7   F   sp        F#" " " "   8/ / / /b     r   r7   z.iimr|   ImageFile.ImageFile1dict[tuple[int, int], bytes | list[bytes]] | Nonec                8   ddl m}m} d}i }t          | t                    r;| j                                        D ]\  }}t          |t                    r|||<    |S t          | |j                  r2| j        	                    d          }|r|	                    d          }n9t          | |j
                  r$	 | j        |j                 }n# t          $ r Y nw xY w|dS  G d d          } |            }	t          |	_        t          t          |	          }
i |
_        t!          |          |
_        	 |
                                 n# t&          t          f$ r Y nw xY w|
j                                        D ]\  }}t          |t                    r|||<    |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)   r7   r<   itemstupleJpegImageFilegetTiffImageFiletag_v2IPTC_NAA_CHUNKri   	__class__r   r   rM   rs   
IndexError)r|   r   r   datar<   kvr   r   fake_imiptc_ims              r   getiptcinfor      s    32222222D79D"m$$ GMMOO 	 	DAq!U## Q	B5	6	6 GKK,,	 	)==((D	B5	6	6 	9_;<DD 	 	 	D	 |t        ikkG%G='**G GLGJ!    ""$$  1a 	DGKs$   :C 
CC5E
 
EEN)r   r   r   r   )r   r   r   r    )r   r&   r   r    )r   r.   r   r/   )r|   r   r   r   )
__future__r   collections.abcr   ior   typingr   r   r   r	   _binaryr
   rR   r   r#   
_deprecater   rh   r   r%   r*   r-   r5   r7   register_openr   register_extensionr   r   r   r   <module>r      s  " # " " " " " $ $ $ $ $ $                     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !F##   ' ' ' '- - - -      p p p p pI' p p pf  M(- 8 8 8  -v 6 6 6; ; ; ; ; ;r   