a
    còfà  ã                   @   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ed eeeeef f ddœdd„Zeee	e
f dœdd„Zeed d	œd
d„Zedœdd„Zee	dœdd„ƒZejeddœdd„ƒZee	dœdd„ƒZejeddœdd„ƒZee	dœdd„ƒZejeddœdd„ƒZee	dœdd„ƒZejeddœdd„ƒZeeeef dœdd„ƒZejeeef ddœdd„ƒZeeeef dœdd „ƒZejeeef ddœd!d „ƒZeeeef dœd"d#„ƒZejeeef ddœd$d#„ƒZeeeef dœd%d&„ƒZejeeef ddœd'd&„ƒZeedœd(d)„ƒZeedœ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>`
    N)ÚarrÚreturnc                    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   úU/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pypdf/generic/_rectangle.pyÚ
<listcomp>   ó    z,RectangleObject.__init__.<locals>.<listcomp>)Úlenr   Ú__init__)r   r
   r   r   r   r      s    zRectangleObject.__init__)Úvaluer   c                 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Úsyr   c                 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.scale)r   c                 C   s   dt | ƒ›d�S )NzRectangleObject(ú))Úlistr   r   r   r   Ú__repr__+   s    zRectangleObject.__repr__c                 C   s   | d S ©Nr   r   r   r   r   r   r!   .   s    zRectangleObject.left)Úfr   c                 C   s   t |ƒ| d< d S r)   ©r   ©r   r*   r   r   r   r!   2   s    c                 C   s   | d S ©Nr   r   r   r   r   r   r"   6   s    zRectangleObject.bottomc                 C   s   t |ƒ| d< d S r-   r+   r,   r   r   r   r"   :   s    c                 C   s   | d S ©Né   r   r   r   r   r   r#   >   s    zRectangleObject.rightc                 C   s   t |ƒ| d< d S r.   r+   r,   r   r   r   r#   B   s    c                 C   s   | d S ©Né   r   r   r   r   r   r$   F   s    zRectangleObject.topc                 C   s   t |ƒ| d< d S r0   r+   r,   r   r   r   r$   J   s    c                 C   s   | 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   s    zRectangleObject.lower_leftc                    s"   ‡ fdd„|D ƒ\ˆ d< ˆ d< d S )Nc                 3   s   | ]}ˆ   |¡V  qd S r   r   r   r   r   r   Ú	<genexpr>X   r   z-RectangleObject.lower_left.<locals>.<genexpr>r   r   r   r   r   r   r   r2   V   s    c                 C   s   | j | jfS )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   s    zRectangleObject.lower_rightc                    s"   ‡ fdd„|D ƒ\ˆ d< ˆ d< d S )Nc                 3   s   | ]}ˆ   |¡V  qd S r   r   r   r   r   r   r3   d   r   z.RectangleObject.lower_right.<locals>.<genexpr>r/   r   r   r   r   r   r   r4   b   s    c                 C   s   | j | jfS )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   s    zRectangleObject.upper_leftc                    s"   ‡ fdd„|D ƒ\ˆ d< ˆ d< d S )Nc                 3   s   | ]}ˆ   |¡V  qd S r   r   r   r   r   r   r3   p   r   z-RectangleObject.upper_left.<locals>.<genexpr>r   r1   r   r   r   r   r   r5   n   s    c                 C   s   | j | jfS )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   s    zRectangleObject.upper_rightc                    s"   ‡ fdd„|D ƒ\ˆ d< ˆ d< d S )Nc                 3   s   | ]}ˆ   |¡V  qd S r   r   r   r   r   r   r3   |   r   z.RectangleObject.upper_right.<locals>.<genexpr>r/   r1   r   r   r   r   r   r6   z   s    c                 C   s   | j | j S r   )r#   r!   r   r   r   r   Úwidth~   s    zRectangleObject.widthc                 C   s   | j | j S r   )r$   r"   r   r   r   r   Úheight‚   s    zRectangleObject.height)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r    r   r   r   r   r   r%   Ústrr(   Úpropertyr!   Úsetterr"   r#   r$   r2   r4   r5   r6   r7   r8   r   r   r   r   r	      sV   þ
r	   N)
Útypingr   r   r   Ú_baser   r   Z_data_structuresr   r	   r   r   r   r   Ú<module>   s   