
    h                     F    d dl mZmZ ddlmZmZ ddlmZ  G d de      Zy)    )Any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      W/var/www/html/aiagenthome/venv/lib/python3.12/site-packages/pypdf/generic/_rectangle.pyr   zRectangleObject.__init__   sA     3x1}}Ts#Ks!D$:$:1$=s#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 r3   r/   r0   s     r   r    zRectangleObject.bottom:   r1   r   c                     | d   S N   r+   r'   s    r   r!   zRectangleObject.right>   r,   r   c                      t        |      | d<   y r6   r/   r0   s     r   r!   zRectangleObject.rightB   r1   r   c                     | d   S N   r+   r'   s    r   r"   zRectangleObject.topF   r,   r   c                      t        |      | d<   y r:   r/   r0   s     r   r"   zRectangleObject.topJ   r1   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        Eu!D2215u   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   rA   rB   s     r   rD   z.RectangleObject.lower_right.<locals>.<genexpr>d   rE   rF   r7   r   r+   r   s   ` r   rI   zRectangleObject.lower_rightb   rG   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   rA   rB   s     r   rD   z-RectangleObject.upper_left.<locals>.<genexpr>p   rE   rF   r   r;   r+   r   s   ` r   rM   zRectangleObject.upper_leftn   rG   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   rA   rB   s     r   rD   z.RectangleObject.upper_right.<locals>.<genexpr>|   rE   rF   r7   r;   r+   r   s   ` r   rQ   zRectangleObject.upper_rightz   rG   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   tupler   r   r   r   r   r   r#   strr(   propertyr   setterr    r!   r"   r>   rI   rM   rQ   rU   rW   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   _baser   r   _data_structuresr   r
   r+   r   r   <module>rc      s     , )}&k }&r   