o
    Zh                     @   sD   d dl mZmZmZ ddlmZmZ ddlmZ G dd deZ	dS )    )AnyTupleUnion   )FloatObjectNumberObject)ArrayObjectc                   @   s(  e Zd ZdZded eeeeef f ddfddZdedee	e
f fdd	Zd
ededd fddZdefddZede	fddZejdeddfddZede	fddZejdeddfddZede	fddZejdeddfddZede	fddZejdeddfddZedeeef fddZejdeeef ddfddZedeeef fd d!Zejdeeef ddfd"d!Zedeeef fd#d$Zejdeeef ddfd%d$Zedeeef fd&d'Zejdeeef ddfd(d'Zedefd)d*Zedefd+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                    s.   t |dksJ t  fdd|D  d S )N   c                    s   g | ]}  |qS  _ensure_is_number.0xselfr   O/var/www/html/lang_env/lib/python3.10/site-packages/pypdf/generic/_rectangle.py
<listcomp>   s    z,RectangleObject.__init__.<locals>.<listcomp>)lenr   __init__)r   r
   r   r   r   r      s   zRectangleObject.__init__valuec                 C   s   t |ttfst|}|S N)
isinstancer   r   r   r   r   r   r   r      s   z!RectangleObject._ensure_is_numbersxsyc                 C   s8   t t| j| t| j| t| j| t| j| fS r   )r	   floatleftbottomrighttop)r   r   r   r   r   r   scale!   s   zRectangleObject.scalec                 C   s   dt | dS )NzRectangleObject())listr   r   r   r   __repr__+   s   zRectangleObject.__repr__c                 C      | d S Nr   r   r   r   r   r   r    .      zRectangleObject.leftfc                 C      t || d< d S r)   r   r   r+   r   r   r   r    2      c                 C   r(   Nr   r   r   r   r   r   r!   6   r*   zRectangleObject.bottomc                 C   r,   r0   r-   r.   r   r   r   r!   :   r/   c                 C   r(   N   r   r   r   r   r   r"   >   r*   zRectangleObject.rightc                 C   r,   r1   r-   r.   r   r   r   r"   B   r/   c                 C   r(   N   r   r   r   r   r   r#   F   r*   zRectangleObject.topc                 C   r,   r3   r-   r.   r   r   r   r#   J   r/   c                 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   r   r   r   
lower_leftN      zRectangleObject.lower_leftc                    "    fdd|D \ d<  d< d S )Nc                 3       | ]}  |V  qd S r   r   r   r   r   r   	<genexpr>X       z-RectangleObject.lower_left.<locals>.<genexpr>r   r   r   r   r   r   r   r6   V      "c                 C   r5   )zk
        Property to read and modify the lower right coordinate of this box
        in (x,y) form.
        )r"   r!   r   r   r   r   lower_rightZ   r7   zRectangleObject.lower_rightc                    r8   )Nc                 3   r9   r   r   r   r   r   r   r:   d   r;   z.RectangleObject.lower_right.<locals>.<genexpr>r2   r   r   r   r   r   r   r=   b   r<   c                 C   r5   )zj
        Property to read and modify the upper left coordinate of this box
        in (x,y) form.
        )r    r#   r   r   r   r   
upper_leftf   r7   zRectangleObject.upper_leftc                    r8   )Nc                 3   r9   r   r   r   r   r   r   r:   p   r;   z-RectangleObject.upper_left.<locals>.<genexpr>r   r4   r   r   r   r   r   r>   n   r<   c                 C   r5   )zk
        Property to read and modify the upper right coordinate of this box
        in (x,y) form.
        )r"   r#   r   r   r   r   upper_rightr   r7   zRectangleObject.upper_rightc                    r8   )Nc                 3   r9   r   r   r   r   r   r   r:   |   r;   z.RectangleObject.upper_right.<locals>.<genexpr>r2   r4   r   r   r   r   r   r?   z   r<   c                 C      | j | j S r   )r"   r    r   r   r   r   width~      zRectangleObject.widthc                 C   r@   r   )r#   r!   r   r   r   r   height   rB   zRectangleObject.height)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r$   strr'   propertyr    setterr!   r"   r#   r6   r=   r>   r?   rA   rC   r   r   r   r   r	      s\    

r	   N)
typingr   r   r   Z_baser   r   Z_data_structuresr   r	   r   r   r   r   <module>   s    