
    [g$                     n    d dl Z d dlmZmZmZmZ ddlmZmZ ddl	m
Z
mZ ddlmZ  G d d	e          ZdS )
    N)AnyListTupleUnion   )deprecation_no_replacementdeprecation_with_replacement   )FloatObjectNumberObject)ArrayObjectc                      e Zd ZdZded eeeeef         f         ddfdZdedee	e
f         fdZded	edd fd
Zdedee	e
f         fdZdefdZede	fd            Zej        deddfd            Zede	fd            Zej        deddfd            Zede	fd            Zej        deddfd            Zede	fd            Zej        deddfd            Zde	fdZde	fdZde	fdZde	fdZde	fdZde	fdZde	fdZde	fdZedeej        ej        f         fd            Z e j        de!e         ddfd            Z edeej        ej        f         fd             Z"e"j        de!e         ddfd!            Z"edeej        ej        f         fd"            Z#e#j        de!e         ddfd#            Z#edeej        ej        f         fd$            Z$e$j        de!e         ddfd%            Z$deej        ej        f         fd&Z%deej        ej        f         fd'Z&deej        ej        f         fd(Z'deej        ej        f         fd)Z(deeef         ddfd*Z)deeef         ddfd+Z*deeef         ddfd,Z+deeef         ddfd-Z,edej        fd.            Z-dej        fd/Z.edej        fd0            Z/dej        fd1Z0edeej        ej        f         fd2            Z1e1j        deej        ej        f         ddfd3            Z1edeej        ej        f         fd4            Z2e2j        deej        ej        f         ddfd5            Z2edeej        ej        f         fd6            Z3e3j        deej        ej        f         ddfd7            Z3edeej        ej        f         fd8            Z4e4j        deej        ej        f         ddfd9            Z4dS ):RectangleObjecta  
    This class is used to represent *page boxes* in PyPDF2. These boxes include:
        * :attr:`artbox <PyPDF2._page.PageObject.artbox>`
        * :attr:`bleedbox <PyPDF2._page.PageObject.bleedbox>`
        * :attr:`cropbox <PyPDF2._page.PageObject.cropbox>`
        * :attr:`mediabox <PyPDF2._page.PageObject.mediabox>`
        * :attr:`trimbox <PyPDF2._page.PageObject.trimbox>`
    arrreturnNc                 t     t          |          dk    sJ t          j          fd|D                        d S )N   c                 :    g | ]}                     |          S  _ensure_is_number.0xselfs     T/var/www/pdf_extract/myenv/lib/python3.11/site-packages/PyPDF2/generic/_rectangle.py
<listcomp>z,RectangleObject.__init__.<locals>.<listcomp>   s'    #K#K#K!D$:$:1$=$=#K#K#K    )lenr   __init__)r   r   s   ` r   r    zRectangleObject.__init__   sF     3xx1}}}}T#K#K#K#Ks#K#K#KLLLLLr   valuec                 \    t          |t          t          f          st          |          }|S N)
isinstancer   r   r   r!   s     r   r   z!RectangleObject._ensure_is_number   s+    %,!<== 	'&&Er   sxsyc                     t          t          | j                  |z  t          | j                  |z  t          | j                  |z  t          | j                  |z  f          S r#   )r   floatleftbottomrighttop)r   r&   r'   s      r   scalezRectangleObject.scale    s_    di  2%dk""R'dj!!B&dh"$	
 
 	
r   c                 L    t          dd           |                     |          S )NensureIsNumber3.0.0)r   r   r%   s     r   r0   zRectangleObject.ensureIsNumber*   s)     	##3W===%%e,,,r   c                 B    dt          t          |                      dS )NzRectangleObject())reprlistr   s    r   __repr__zRectangleObject.__repr__0   s!    5$tDzz"2"25555r   c                     | d         S Nr   r   r6   s    r   r*   zRectangleObject.left3       Awr   fc                 *    t          |          | d<   d S r9   r   r   r;   s     r   r*   zRectangleObject.left7       a..Qr   c                     | d         S Nr
   r   r6   s    r   r+   zRectangleObject.bottom;   r:   r   c                 *    t          |          | d<   d S rA   r=   r>   s     r   r+   zRectangleObject.bottom?   r?   r   c                     | d         S Nr   r   r6   s    r   r,   zRectangleObject.rightC   r:   r   c                 *    t          |          | d<   d S rD   r=   r>   s     r   r,   zRectangleObject.rightG   r?   r   c                     | d         S N   r   r6   s    r   r-   zRectangleObject.topK   r:   r   c                 *    t          |          | d<   d S rG   r=   r>   s     r   r-   zRectangleObject.topO   r?   r   c                 2    t          ddd           | j        S )NgetLowerLeft_xr*   r1   r	   r*   r6   s    r   rK   zRectangleObject.getLowerLeft_xS       $%5vwGGGyr   c                 2    t          ddd           | j        S )NgetLowerLeft_yr+   r1   r	   r+   r6   s    r   rO   zRectangleObject.getLowerLeft_yW   s    $%5xIII{r   c                 2    t          ddd           | j        S )NgetUpperRight_xr,   r1   r	   r,   r6   s    r   rR   zRectangleObject.getUpperRight_x[       $%6IIIzr   c                 2    t          ddd           | j        S )NgetUpperRight_yr-   r1   r	   r-   r6   s    r   rV   zRectangleObject.getUpperRight_y_   s    $%6wGGGxr   c                 2    t          ddd           | j        S )NgetUpperLeft_xr*   r1   rL   r6   s    r   rY   zRectangleObject.getUpperLeft_xc   rM   r   c                 2    t          ddd           | j        S )NgetUpperLeft_yr-   r1   rW   r6   s    r   r[   zRectangleObject.getUpperLeft_yg   s    $%5ugFFFxr   c                 2    t          ddd           | j        S )NgetLowerRight_xr,   r1   rS   r6   s    r   r]   zRectangleObject.getLowerRight_xk   rT   r   c                 2    t          ddd           | j        S )NgetLowerRight_yr+   r1   rP   r6   s    r   r_   zRectangleObject.getLowerRight_yo   s    $%6'JJJ{r   c                     | j         | j        fS )zj
        Property to read and modify the lower left coordinate of this box
        in (x,y) form.
        )r*   r+   r6   s    r   
lower_leftzRectangleObject.lower_lefts   s     y$+%%r   c                 6      fd|D             \   d<    d<   d S )Nc              3   B   K   | ]}                     |          V  d S r#   r   r   s     r   	<genexpr>z-RectangleObject.lower_left.<locals>.<genexpr>}   1      EE!D22155EEEEEEr   r   r
   r   r%   s   ` r   ra   zRectangleObject.lower_left{   -    EEEEuEEEQar   c                     | j         | j        fS )zk
        Property to read and modify the lower right coordinate of this box
        in (x,y) form.
        )r,   r+   r6   s    r   lower_rightzRectangleObject.lower_right   s     z4;&&r   c                 6      fd|D             \   d<    d<   d S )Nc              3   B   K   | ]}                     |          V  d S r#   r   r   s     r   rd   z.RectangleObject.lower_right.<locals>.<genexpr>   re   r   r   r
   r   r%   s   ` r   rh   zRectangleObject.lower_right   rf   r   c                     | j         | j        fS )zj
        Property to read and modify the upper left coordinate of this box
        in (x,y) form.
        )r*   r-   r6   s    r   
upper_leftzRectangleObject.upper_left   s     y$(""r   c                 6      fd|D             \   d<    d<   d S )Nc              3   B   K   | ]}                     |          V  d S r#   r   r   s     r   rd   z-RectangleObject.upper_left.<locals>.<genexpr>   re   r   r   rH   r   r%   s   ` r   rl   zRectangleObject.upper_left   rf   r   c                     | j         | j        fS )zk
        Property to read and modify the upper right coordinate of this box
        in (x,y) form.
        )r,   r-   r6   s    r   upper_rightzRectangleObject.upper_right   s     z48##r   c                 6      fd|D             \   d<    d<   d S )Nc              3   B   K   | ]}                     |          V  d S r#   r   r   s     r   rd   z.RectangleObject.upper_right.<locals>.<genexpr>   re   r   r   rH   r   r%   s   ` r   rp   zRectangleObject.upper_right   rf   r   c                 2    t          ddd           | j        S )NgetLowerLeftra   r1   r	   ra   r6   s    r   rt   zRectangleObject.getLowerLeft        	%^\7KKKr   c                 2    t          ddd           | j        S )NgetLowerRightrh   r1   r	   rh   r6   s    r   rx   zRectangleObject.getLowerRight        	%_mWMMMr   c                 2    t          ddd           | j        S )NgetUpperLeftrl   r1   r	   rl   r6   s    r   r|   zRectangleObject.getUpperLeft   rv   r   c                 2    t          ddd           | j        S )NgetUpperRightrp   r1   r	   rp   r6   s    r   r   zRectangleObject.getUpperRight   rz   r   c                 6    t          ddd           || _        d S )NsetLowerLeftra   r1   ru   r%   s     r   r   zRectangleObject.setLowerLeft   s    $^\7KKKr   c                 X     t          ddd            fd|D             \   d<    d<   d S )NsetLowerRightrh   r1   c              3   B   K   | ]}                     |          V  d S r#   r   r   s     r   rd   z0RectangleObject.setLowerRight.<locals>.<genexpr>   re   r   r   r
   r	   r%   s   ` r   r   zRectangleObject.setLowerRight   ?    $_mWMMMEEEEuEEEQar   c                 X     t          ddd            fd|D             \   d<    d<   d S )NsetUpperLeftrl   r1   c              3   B   K   | ]}                     |          V  d S r#   r   r   s     r   rd   z/RectangleObject.setUpperLeft.<locals>.<genexpr>   re   r   r   rH   r   r%   s   ` r   r   zRectangleObject.setUpperLeft   s?    $^\7KKKEEEEuEEEQar   c                 X     t          ddd            fd|D             \   d<    d<   d S )NsetUpperRightrp   r1   c              3   B   K   | ]}                     |          V  d S r#   r   r   s     r   rd   z0RectangleObject.setUpperRight.<locals>.<genexpr>   re   r   r   rH   r   r%   s   ` r   r   zRectangleObject.setUpperRight   r   r   c                      | j         | j        z
  S r#   )r,   r*   r6   s    r   widthzRectangleObject.width   s    zDI%%r   c                 2    t          ddd           | j        S )NgetWidthr   r1   )r	   r   r6   s    r   r   zRectangleObject.getWidth   s    $Z'BBBzr   c                      | j         | j        z
  S r#   )r-   r+   r6   s    r   heightzRectangleObject.height   s    x$+%%r   c                 2    t          ddd           | j        S )N	getHeightr   r1   )r	   r   r6   s    r   r   zRectangleObject.getHeight   s    $[(GDDD{r   c                 2    t          ddd           | j        S N	lowerLeftra   r1   ru   r6   s    r   r   zRectangleObject.lowerLeft       $[,HHHr   c                 6    t          ddd           || _        d S r   ru   r%   s     r   r   zRectangleObject.lowerLeft   !     	%[,HHHr   c                 2    t          ddd           | j        S N
lowerRightrh   r1   ry   r6   s    r   r   zRectangleObject.lowerRight       $\='JJJr   c                 6    t          ddd           || _        d S r   ry   r%   s     r   r   zRectangleObject.lowerRight   $     	%\='JJJ r   c                 2    t          ddd           | j        S N	upperLeftrl   r1   r}   r6   s    r   r   zRectangleObject.upperLeft   r   r   c                 6    t          ddd           || _        d S r   r}   r%   s     r   r   zRectangleObject.upperLeft   r   r   c                 2    t          ddd           | j        S N
upperRightrp   r1   r   r6   s    r   r   zRectangleObject.upperRight   r   r   c                 6    t          ddd           || _        d S r   r   r%   s     r   r   zRectangleObject.upperRight  r   r   )5__name__
__module____qualname____doc__r   r   r)   r    r   r   r   r   r.   r0   strr7   propertyr*   setterr+   r,   r-   rK   rO   rR   rV   rY   r[   r]   r_   decimalDecimalra   r   rh   rl   rp   rt   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	   s        M*E%u2L,MMNM	M M M Ms u[,5N/O    

 
5 
-> 
 
 
 
--	{L(	)- - - -6# 6 6 6 6 k    X 
[!e ! ! ! ! [!     X ]! !$ ! ! ! ]! {    X \!u ! ! ! ! \! [    X 	Z!U !t ! ! ! Z!                                 &E'/7?"BC & & & X& FS	 Fd F F F F 'U7?GO#CD ' ' ' X' Fc Ft F F F F #E'/7?"BC # # # X# FS	 Fd F F F F $U7?GO#CD $ $ $ X$ Fc Ft F F F F	w/	0    	w/	0       	w/	0    	w/	0        %u"5  $        F5#6 F4 F F F FF%u"5 F$ F F F FF5#6 F4 F F F F &w & & & X&'/     & & & & X&7?     5'/!AB    X  7?GO;< 	         E'/7?"BC       X  !7?GO;<!	! ! ! ! 5'/!AB    X  7?GO;< 	         E'/7?"BC       X  !7?GO;<!	! ! ! ! ! !r   r   )r   typingr   r   r   r   _utilsr   r	   _baser   r   _data_structuresr   r   r   r   r   <module>r      s     * * * * * * * * * * * * M M M M M M M M , , , , , , , , ) ) ) ) ) )@! @! @! @! @!k @! @! @! @! @!r   