
    Ng                     R    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	dS )    )AnyTupleUnion   )FloatObjectNumberObject)ArrayObjectc                   n   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dS )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     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/html/ai-engine/env/lib/python3.11/site-packages/pypdf/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                 (    dt          |           dS )NzRectangleObject())listr   s    r   __repr__zRectangleObject.__repr__+   s    1$t**1111r   c                     | d         S Nr   r   r.   s    r   r&   zRectangleObject.left.       Awr   fc                 *    t          |          | d<   d S r1   r   r   r3   s     r   r&   zRectangleObject.left2       a..Qr   c                     | d         S Nr   r   r.   s    r   r'   zRectangleObject.bottom6   r2   r   c                 *    t          |          | d<   d S r9   r5   r6   s     r   r'   zRectangleObject.bottom:   r7   r   c                     | d         S N   r   r.   s    r   r(   zRectangleObject.right>   r2   r   c                 *    t          |          | d<   d S r<   r5   r6   s     r   r(   zRectangleObject.rightB   r7   r   c                     | d         S N   r   r.   s    r   r)   zRectangleObject.topF   r2   r   c                 *    t          |          | d<   d S r@   r5   r6   s     r   r)   zRectangleObject.topJ   r7   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'   r.   s    r   
lower_leftzRectangleObject.lower_leftN   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>X   1      EE!D22155EEEEEEr   r   r   r   r!   s   ` r   rD   zRectangleObject.lower_leftV   -    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'   r.   s    r   lower_rightzRectangleObject.lower_rightZ   s     z4;&&r   c                 6      fd|D             \   d<    d<   d S )Nc              3   B   K   | ]}                     |          V  d S r   r   r   s     r   rG   z.RectangleObject.lower_right.<locals>.<genexpr>d   rH   r   r=   r   r   r!   s   ` r   rK   zRectangleObject.lower_rightb   rI   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)   r.   s    r   
upper_leftzRectangleObject.upper_leftf   s     y$(""r   c                 6      fd|D             \   d<    d<   d S )Nc              3   B   K   | ]}                     |          V  d S r   r   r   s     r   rG   z-RectangleObject.upper_left.<locals>.<genexpr>p   rH   r   r   rA   r   r!   s   ` r   rO   zRectangleObject.upper_leftn   rI   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)   r.   s    r   upper_rightzRectangleObject.upper_rightr   s     z48##r   c                 6      fd|D             \   d<    d<   d S )Nc              3   B   K   | ]}                     |          V  d S r   r   r   s     r   rG   z.RectangleObject.upper_right.<locals>.<genexpr>|   rH   r   r=   rA   r   r!   s   ` r   rS   zRectangleObject.upper_rightz   rI   r   c                      | j         | j        z
  S r   )r(   r&   r.   s    r   widthzRectangleObject.width~   s    zDI%%r   c                      | j         | j        z
  S r   )r)   r'   r.   s    r   heightzRectangleObject.height   s    x$+%%r   )__name__
__module____qualname____doc__r   r   r%   r   r   r   r   r   r*   strr/   propertyr&   setterr'   r(   r)   rD   rK   rO   rS   rW   rY   r   r   r   r   r      s@       
 
M*E%u2L,MMNM	M M M Ms u[,5N/O    

 
5 
-> 
 
 
 
2# 2 2 2 2 k    X 
[!e ! ! ! ! [!     X ]! !$ ! ! ! ]! {    X \!u ! ! ! ! \! [    X 	Z!U !t ! ! ! Z! &E%,/ & & & X& FeUl 3 F F F F F 'U5%<0 ' ' ' X' Fue|!4 F F F F F #E%,/ # # # X# FeUl 3 F F F F F $U5%<0 $ $ $ X$ Fue|!4 F F F F F &u & & & X& & & & & X& & &r   r   N)
typingr   r   r   _baser   r   _data_structuresr	   r   r   r   r   <module>rd      s    $ $ $ $ $ $ $ $ $ $ , , , , , , , , ) ) ) ) ) )}& }& }& }& }&k }& }& }& }& }&r   