o
    e#                     @   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   )deprecate_no_replacementdeprecate_with_replacement   )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dee	e
f 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de	fdd Zde	fd!d"Zde	fd#d$Zde	fd%d&Zde	fd'd(Zde	fd)d*Zde	fd+d,Zde	fd-d.Zedeejejf fd/d0Z e jde!e ddfd1d0Z edeejejf fd2d3Z"e"jde!e ddfd4d3Z"edeejejf fd5d6Z#e#jde!e ddfd7d6Z#edeejejf fd8d9Z$e$jde!e ddfd:d9Z$deejejf fd;d<Z%deejejf fd=d>Z&deejejf fd?d@Z'deejejf fdAdBZ(deeef ddfdCdDZ)deeef ddfdEdFZ*deeef ddfdGdHZ+deeef ddfdIdJZ,edejfdKdLZ-dejfdMdNZ.edejfdOdPZ/dejfdQdRZ0edeejejf fdSdTZ1e1jdeejejf ddfdUdTZ1edeejejf fdVdWZ2e2jdeejejf ddfdXdWZ2edeejejf fdYdZZ3e3jdeejejf ddfd[dZZ3edeejejf fd\d]Z4e4jdeejejf ddf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>`
    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   ID:\Projects\ConvertPro\env\Lib\site-packages\PyPDF2/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   t d | |S )NensureIsNumber)r   r   r    r   r   r   r)   *   s   
zRectangleObject.ensureIsNumberc                 C   s   dt t|  dS )NzRectangleObject())reprlistr   r   r   r   __repr__0   s   zRectangleObject.__repr__c                 C      | d S Nr   r   r   r   r   r   r$   3      zRectangleObject.leftfc                 C      t || d< d S r/   r
   r   r1   r   r   r   r$   7      c                 C   r.   Nr	   r   r   r   r   r   r%   ;   r0   zRectangleObject.bottomc                 C   r2   r6   r3   r4   r   r   r   r%   ?   r5   c                 C   r.   Nr   r   r   r   r   r   r&   C   r0   zRectangleObject.rightc                 C   r2   r7   r3   r4   r   r   r   r&   G   r5   c                 C   r.   N   r   r   r   r   r   r'   K   r0   zRectangleObject.topc                 C   r2   r8   r3   r4   r   r   r   r'   O   r5   c                 C      t dd | jS )NgetLowerLeft_xr$   r   r$   r   r   r   r   r;   S      
zRectangleObject.getLowerLeft_xc                 C   r:   )NgetLowerLeft_yr%   r   r%   r   r   r   r   r>   W   r=   zRectangleObject.getLowerLeft_yc                 C   r:   )NgetUpperRight_xr&   r   r&   r   r   r   r   r@   [   r=   zRectangleObject.getUpperRight_xc                 C   r:   )NgetUpperRight_yr'   r   r'   r   r   r   r   rB   _   r=   zRectangleObject.getUpperRight_yc                 C   r:   )NgetUpperLeft_xr$   r<   r   r   r   r   rD   c   r=   zRectangleObject.getUpperLeft_xc                 C   r:   )NgetUpperLeft_yr'   rC   r   r   r   r   rE   g   r=   zRectangleObject.getUpperLeft_yc                 C   r:   )NgetLowerRight_xr&   rA   r   r   r   r   rF   k   r=   zRectangleObject.getLowerRight_xc                 C   r:   )NgetLowerRight_yr%   r?   r   r   r   r   rG   o   r=   zRectangleObject.getLowerRight_yc                 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_lefts      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>}       z-RectangleObject.lower_left.<locals>.<genexpr>r   r	   r   r    r   r   r   rI   {      "c                 C   rH   )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   rJ   zRectangleObject.lower_rightc                    rK   )Nc                 3   rL   r   r   r   r   r   r   rM      rN   z.RectangleObject.lower_right.<locals>.<genexpr>r   r	   r   r    r   r   r   rP      rO   c                 C   rH   )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   rJ   zRectangleObject.upper_leftc                    rK   )Nc                 3   rL   r   r   r   r   r   r   rM      rN   z-RectangleObject.upper_left.<locals>.<genexpr>r   r9   r   r    r   r   r   rQ      rO   c                 C   rH   )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   rJ   zRectangleObject.upper_rightc                    rK   )Nc                 3   rL   r   r   r   r   r   r   rM      rN   z.RectangleObject.upper_right.<locals>.<genexpr>r   r9   r   r    r   r   r   rR      rO   c                 C   r:   )NgetLowerLeftrI   r   rI   r   r   r   r   rS         
zRectangleObject.getLowerLeftc                 C   r:   )NgetLowerRightrP   r   rP   r   r   r   r   rV      rU   zRectangleObject.getLowerRightc                 C   r:   )NgetUpperLeftrQ   r   rQ   r   r   r   r   rX      rU   zRectangleObject.getUpperLeftc                 C   r:   )NgetUpperRightrR   r   rR   r   r   r   r   rZ      rU   zRectangleObject.getUpperRightc                 C      t dd || _d S )NsetLowerLeftrI   rT   r    r   r   r   r]      s   

zRectangleObject.setLowerLeftc                    ,   t dd  fdd|D \ d<  d< d S )NsetLowerRightrP   c                 3   rL   r   r   r   r   r   r   rM      rN   z0RectangleObject.setLowerRight.<locals>.<genexpr>r   r	   r   r    r   r   r   r_         
"zRectangleObject.setLowerRightc                    r^   )NsetUpperLeftrQ   c                 3   rL   r   r   r   r   r   r   rM      rN   z/RectangleObject.setUpperLeft.<locals>.<genexpr>r   r9   r`   r    r   r   r   rb      ra   zRectangleObject.setUpperLeftc                    r^   )NsetUpperRightrR   c                 3   rL   r   r   r   r   r   r   rM      rN   z0RectangleObject.setUpperRight.<locals>.<genexpr>r   r9   r`   r    r   r   r   rc      ra   zRectangleObject.setUpperRightc                 C      | j | j S r   )r&   r$   r   r   r   r   width      zRectangleObject.widthc                 C   r:   )NgetWidthre   )r   re   r   r   r   r   rg      r=   zRectangleObject.getWidthc                 C   rd   r   )r'   r%   r   r   r   r   height   rf   zRectangleObject.heightc                 C   r:   )N	getHeightrh   )r   rh   r   r   r   r   ri      r=   zRectangleObject.getHeightc                 C   r:   N	lowerLeftrI   rT   r   r   r   r   rk         
zRectangleObject.lowerLeftc                 C   r\   rj   rT   r    r   r   r   rk         

c                 C   r:   N
lowerRightrP   rW   r   r   r   r   ro      rl   zRectangleObject.lowerRightc                 C   r\   rn   rW   r    r   r   r   ro      rm   c                 C   r:   N	upperLeftrQ   rY   r   r   r   r   rq      rl   zRectangleObject.upperLeftc                 C   r\   rp   rY   r    r   r   r   rq      rm   c                 C   r:   N
upperRightrR   r[   r   r   r   r   rs      rl   zRectangleObject.upperRightc                 C   r\   rr   r[   r    r   r   r   rs     rm   )5__name__
__module____qualname____doc__r   r   r#   r   r   r
   r   r   r(   r)   strr-   propertyr$   setterr%   r&   r'   r;   r>   r@   rB   rD   rE   rF   rG   decimalDecimalrI   r   rP   rQ   rR   rS   rV   rX   rZ   r]   r_   rb   rc   re   rg   rh   ri   rk   ro   rq   rs   r   r   r   r   r   	   s    	







r   )r{   typingr   r   r   r   _utilsr   r   _baser
   r   Z_data_structuresr   r   r   r   r   r   <module>   s    