
    @wg                     J    d dl mZmZmZ ddlmZmZ ddlmZ  G d de      Z	y)    )AnyTupleUnion   )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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edeeef   fd       Zej"                  deeef   ddfd       Zedeeef   fd       Zej"                  deeef   ddfd       Zedeeef   fd       Zej"                  deeef   ddfd       Zedeeef   fd       Zej"                  deeef   ddfd       Zedefd       Zedefd       Zy)RectangleObjectap  
    This class is used to represent *page boxes* in pypdf.

    These boxes include:

    * :attr:`artbox <pypdf._page.PageObject.artbox>`
    * :attr:`bleedbox <pypdf._page.PageObject.bleedbox>`
    * :attr:`cropbox <pypdf._page.PageObject.cropbox>`
    * :attr:`mediabox <pypdf._page.PageObject.mediabox>`
    * :attr:`trimbox <pypdf._page.PageObject.trimbox>`
    arrreturnNc           	          t        |      dk(  sJ t        j                  | |D cg c]  }| j                  |       c}       y c c}w )N   )lenr	   __init___ensure_is_number)selfr   xs      O/var/www/horilla/myenv/lib/python3.12/site-packages/pypdf/generic/_rectangle.pyr   zRectangleObject.__init__   s=     3x1}}Ts#K!D$:$:1$=#KL#Ks   A
valuec                 H    t        |t        t        f      st        |      }|S N)
isinstancer   r   r   r   s     r   r   z!RectangleObject._ensure_is_number   s     %+|!<=&E    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!   sW    dii 2%dkk"R'djj!B&dhh"$	
 	
r   c                      dt        |       dS )NzRectangleObject())listr   s    r   __repr__zRectangleObject.__repr__+   s    !$t*q11r   c                     | d   S Nr    r(   s    r   r    zRectangleObject.left.       Awr   fc                      t        |      | d<   y r+   r   r   r.   s     r   r    zRectangleObject.left2       a.Qr   c                     | d   S Nr   r,   r(   s    r   r!   zRectangleObject.bottom6   r-   r   c                      t        |      | d<   y r4   r0   r1   s     r   r!   zRectangleObject.bottom:   r2   r   c                     | d   S N   r,   r(   s    r   r"   zRectangleObject.right>   r-   r   c                      t        |      | d<   y r7   r0   r1   s     r   r"   zRectangleObject.rightB   r2   r   c                     | d   S N   r,   r(   s    r   r#   zRectangleObject.topF   r-   r   c                      t        |      | d<   y r;   r0   r1   s     r   r#   zRectangleObject.topJ   r2   r   c                 2    | j                   | j                  fS )zj
        Property to read and modify the lower left coordinate of this box
        in (x,y) form.
        )r    r!   r(   s    r   
lower_leftzRectangleObject.lower_leftN   s     yy$++%%r   c                 .      fd|D        \   d<    d<   y )Nc              3   @   K   | ]  }j                  |        y wr   r   .0r   r   s     r   	<genexpr>z-RectangleObject.lower_left.<locals>.<genexpr>X        E!D2215E   r   r   r,   r   s   ` r   r?   zRectangleObject.lower_leftV       EuEQar   c                 2    | j                   | j                  fS )zk
        Property to read and modify the lower right coordinate of this box
        in (x,y) form.
        )r"   r!   r(   s    r   lower_rightzRectangleObject.lower_rightZ   s     zz4;;&&r   c                 .      fd|D        \   d<    d<   y )Nc              3   @   K   | ]  }j                  |        y wr   rB   rC   s     r   rE   z.RectangleObject.lower_right.<locals>.<genexpr>d   rF   rG   r8   r   r,   r   s   ` r   rJ   zRectangleObject.lower_rightb   rH   r   c                 2    | j                   | j                  fS )zj
        Property to read and modify the upper left coordinate of this box
        in (x,y) form.
        )r    r#   r(   s    r   
upper_leftzRectangleObject.upper_leftf   s     yy$((""r   c                 .      fd|D        \   d<    d<   y )Nc              3   @   K   | ]  }j                  |        y wr   rB   rC   s     r   rE   z-RectangleObject.upper_left.<locals>.<genexpr>p   rF   rG   r   r<   r,   r   s   ` r   rN   zRectangleObject.upper_leftn   rH   r   c                 2    | j                   | j                  fS )zk
        Property to read and modify the upper right coordinate of this box
        in (x,y) form.
        )r"   r#   r(   s    r   upper_rightzRectangleObject.upper_rightr   s     zz488##r   c                 .      fd|D        \   d<    d<   y )Nc              3   @   K   | ]  }j                  |        y wr   rB   rC   s     r   rE   z.RectangleObject.upper_right.<locals>.<genexpr>|   rF   rG   r8   r<   r,   r   s   ` r   rR   zRectangleObject.upper_rightz   rH   r   c                 4    | j                   | j                  z
  S r   )r"   r    r(   s    r   widthzRectangleObject.width~   s    zzDII%%r   c                 4    | j                   | j                  z
  S r   )r#   r!   r(   s    r   heightzRectangleObject.height   s    xx$++%%r   )__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r$   strr)   propertyr    setterr!   r"   r#   r?   rJ   rN   rR   rV   rX   r,   r   r   r   r      s   
M*E%u2L,MMNM	Ms u[,5N/O 

 
5 
-> 
2# 2 k   
[[!e ! ! !    ]]! !$ ! ! {   \\!u ! ! ! [   	ZZ!U !t ! ! &E%,/ & & FeUl 3 F F F 'U5%<0 ' ' Fue|!4 F F F #E%,/ # # FeUl 3 F F F $U5%<0 $ $ Fue|!4 F F F &u & & & & &r   r   N)
typingr   r   r   _baser   r   _data_structuresr	   r   r,   r   r   <module>rc      s    $ $ , )}&k }&r   