U
    
3g$                     @   s`   d dl Z d dlmZmZmZmZ ddlmZmZ ddl	m
Z
mZ ddlmZ G dd	 d	eZdS )
    N)AnyListTupleUnion   )deprecation_no_replacementdeprecation_with_replacement   )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ee	e
f 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	dddZe	dd d!Ze	dd"d#Ze	dd$d%Ze	dd&d'Ze	dd(d)Ze	dd*d+Ze	dd,d-Zeeejejf dd.d/Z e je!e ddd0d/Z eeejejf dd1d2Z"e"je!e ddd3d2Z"eeejejf dd4d5Z#e#je!e ddd6d5Z#eeejejf dd7d8Z$e$je!e ddd9d8Z$eejejf dd:d;Z%eejejf dd<d=Z&eejejf dd>d?Z'eejejf dd@dAZ(eeef dddBdCZ)eeef dddDdEZ*eeef dddFdGZ+eeef dddHdIZ,eejddJdKZ-ejddLdMZ.eejddNdOZ/ejddPdQZ0eeejejf ddRdSZ1e1jeejejf dddTdSZ1eeejejf ddUdVZ2e2jeejejf dddWdVZ2eeejejf ddXdYZ3e3jeejejf dddZdYZ3eeejejf dd[d\Z4e4jeejejf ddd]d\Z4dS )^RectangleObjecta  
    This class is used to represent *page boxes* in PyPDF2. These boxes include:
        * :attr:`artbox <PyPDF2._page.PageObject.artbox>`
        * :attr:`bleedbox <PyPDF2._page.PageObject.bleedbox>`
        * :attr:`cropbox <PyPDF2._page.PageObject.cropbox>`
        * :attr:`mediabox <PyPDF2._page.PageObject.mediabox>`
        * :attr:`trimbox <PyPDF2._page.PageObject.trimbox>`
    N)arrreturnc                    s.   t |dkstt  fdd|D  d S )N   c                    s   g | ]}  |qS  _ensure_is_number.0xselfr   =/tmp/pip-unpacked-wheel-ifm06wwb/PyPDF2/generic/_rectangle.py
<listcomp>   s     z,RectangleObject.__init__.<locals>.<listcomp>)lenAssertionErrorr   __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.scalec                 C   s   t dd | |S )NensureIsNumber3.0.0)r   r   r!   r   r   r   r*   *   s    
zRectangleObject.ensureIsNumber)r   c                 C   s   dt t|  dS )NzRectangleObject())reprlistr   r   r   r   __repr__0   s    zRectangleObject.__repr__c                 C   s   | d S Nr   r   r   r   r   r   r%   3   s    zRectangleObject.left)fr   c                 C   s   t || d< d S r0   r
   r   r1   r   r   r   r%   7   s    c                 C   s   | d S Nr	   r   r   r   r   r   r&   ;   s    zRectangleObject.bottomc                 C   s   t || d< d S r4   r2   r3   r   r   r   r&   ?   s    c                 C   s   | d S Nr   r   r   r   r   r   r'   C   s    zRectangleObject.rightc                 C   s   t || d< d S r5   r2   r3   r   r   r   r'   G   s    c                 C   s   | d S N   r   r   r   r   r   r(   K   s    zRectangleObject.topc                 C   s   t || d< d S r6   r2   r3   r   r   r   r(   O   s    c                 C   s   t ddd | jS )NgetLowerLeft_xr%   r+   r   r%   r   r   r   r   r8   S   s    zRectangleObject.getLowerLeft_xc                 C   s   t ddd | jS )NgetLowerLeft_yr&   r+   r   r&   r   r   r   r   r:   W   s    zRectangleObject.getLowerLeft_yc                 C   s   t ddd | jS )NgetUpperRight_xr'   r+   r   r'   r   r   r   r   r<   [   s    zRectangleObject.getUpperRight_xc                 C   s   t ddd | jS )NgetUpperRight_yr(   r+   r   r(   r   r   r   r   r>   _   s    zRectangleObject.getUpperRight_yc                 C   s   t ddd | jS )NgetUpperLeft_xr%   r+   r9   r   r   r   r   r@   c   s    zRectangleObject.getUpperLeft_xc                 C   s   t ddd | jS )NgetUpperLeft_yr(   r+   r?   r   r   r   r   rA   g   s    zRectangleObject.getUpperLeft_yc                 C   s   t ddd | jS )NgetLowerRight_xr'   r+   r=   r   r   r   r   rB   k   s    zRectangleObject.getLowerRight_xc                 C   s   t ddd | jS )NgetLowerRight_yr&   r+   r;   r   r   r   r   rC   o   s    zRectangleObject.getLowerRight_yc                 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_lefts   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>}   s     z-RectangleObject.lower_left.<locals>.<genexpr>r   r	   r   r!   r   r   r   rD   {   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_right   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   rE      s     z.RectangleObject.lower_right.<locals>.<genexpr>r   r	   r   r!   r   r   r   rF      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_left   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   rE      s     z-RectangleObject.upper_left.<locals>.<genexpr>r   r7   r   r!   r   r   r   rG      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_right   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   rE      s     z.RectangleObject.upper_right.<locals>.<genexpr>r   r7   r   r!   r   r   r   rH      s    c                 C   s   t ddd | jS )NgetLowerLeftrD   r+   r   rD   r   r   r   r   rI      s    zRectangleObject.getLowerLeftc                 C   s   t ddd | jS )NgetLowerRightrF   r+   r   rF   r   r   r   r   rK      s    zRectangleObject.getLowerRightc                 C   s   t ddd | jS )NgetUpperLeftrG   r+   r   rG   r   r   r   r   rM      s    zRectangleObject.getUpperLeftc                 C   s   t ddd | jS )NgetUpperRightrH   r+   r   rH   r   r   r   r   rO      s    zRectangleObject.getUpperRightc                 C   s   t ddd || _d S )NsetLowerLeftrD   r+   rJ   r!   r   r   r   rQ      s    zRectangleObject.setLowerLeftc                    s.   t ddd  fdd|D \ d<  d< d S )NsetLowerRightrF   r+   c                 3   s   | ]}  |V  qd S r   r   r   r   r   r   rE      s     z0RectangleObject.setLowerRight.<locals>.<genexpr>r   r	   r   r!   r   r   r   rR      s    zRectangleObject.setLowerRightc                    s.   t ddd  fdd|D \ d<  d< d S )NsetUpperLeftrG   r+   c                 3   s   | ]}  |V  qd S r   r   r   r   r   r   rE      s     z/RectangleObject.setUpperLeft.<locals>.<genexpr>r   r7   rS   r!   r   r   r   rT      s    zRectangleObject.setUpperLeftc                    s.   t ddd  fdd|D \ d<  d< d S )NsetUpperRightrH   r+   c                 3   s   | ]}  |V  qd S r   r   r   r   r   r   rE      s     z0RectangleObject.setUpperRight.<locals>.<genexpr>r   r7   rS   r!   r   r   r   rU      s    zRectangleObject.setUpperRightc                 C   s   | j | j S r   )r'   r%   r   r   r   r   width   s    zRectangleObject.widthc                 C   s   t ddd | jS )NgetWidthrV   r+   )r   rV   r   r   r   r   rW      s    zRectangleObject.getWidthc                 C   s   | j | j S r   )r(   r&   r   r   r   r   height   s    zRectangleObject.heightc                 C   s   t ddd | jS )N	getHeightrX   r+   )r   rX   r   r   r   r   rY      s    zRectangleObject.getHeightc                 C   s   t ddd | jS N	lowerLeftrD   r+   rJ   r   r   r   r   r[      s    zRectangleObject.lowerLeftc                 C   s   t ddd || _d S rZ   rJ   r!   r   r   r   r[      s    c                 C   s   t ddd | jS N
lowerRightrF   r+   rL   r   r   r   r   r]      s    zRectangleObject.lowerRightc                 C   s   t ddd || _d S r\   rL   r!   r   r   r   r]      s    c                 C   s   t ddd | jS N	upperLeftrG   r+   rN   r   r   r   r   r_      s    zRectangleObject.upperLeftc                 C   s   t ddd || _d S r^   rN   r!   r   r   r   r_      s    c                 C   s   t ddd | jS N
upperRightrH   r+   rP   r   r   r   r   ra      s    zRectangleObject.upperRightc                 C   s   t ddd || _d S r`   rP   r!   r   r   r   ra     s    )5__name__
__module____qualname____doc__r   r   r$   r   r   r
   r   r   r)   r*   strr/   propertyr%   setterr&   r'   r(   r8   r:   r<   r>   r@   rA   rB   rC   decimalDecimalrD   r   rF   rG   rH   rI   rK   rM   rO   rQ   rR   rT   rU   rV   rW   rX   rY   r[   r]   r_   ra   r   r   r   r   r   	   s   

r   )ri   typingr   r   r   r   _utilsr   r   _baser
   r   Z_data_structuresr   r   r   r   r   r   <module>   s
   