o
    HRh$                     @   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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   [/home/air/sanwanet/backup_V2/venv/lib/python3.10/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d | |S )NensureIsNumber3.0.0)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 r0   r
   r   r2   r   r   r   r$   7      c                 C   r/   Nr	   r   r   r   r   r   r%   ;   r1   zRectangleObject.bottomc                 C   r3   r7   r4   r5   r   r   r   r%   ?   r6   c                 C   r/   Nr   r   r   r   r   r   r&   C   r1   zRectangleObject.rightc                 C   r3   r8   r4   r5   r   r   r   r&   G   r6   c                 C   r/   N   r   r   r   r   r   r'   K   r1   zRectangleObject.topc                 C   r3   r9   r4   r5   r   r   r   r'   O   r6   c                 C      t ddd | jS )NgetLowerLeft_xr$   r*   r   r$   r   r   r   r   r<   S      zRectangleObject.getLowerLeft_xc                 C   r;   )NgetLowerLeft_yr%   r*   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   rA   [   r>   zRectangleObject.getUpperRight_xc                 C   r;   )NgetUpperRight_yr'   r*   r   r'   r   r   r   r   rC   _   r>   zRectangleObject.getUpperRight_yc                 C   r;   )NgetUpperLeft_xr$   r*   r=   r   r   r   r   rE   c   r>   zRectangleObject.getUpperLeft_xc                 C   r;   )NgetUpperLeft_yr'   r*   rD   r   r   r   r   rF   g   r>   zRectangleObject.getUpperLeft_yc                 C   r;   )NgetLowerRight_xr&   r*   rB   r   r   r   r   rG   k   r>   zRectangleObject.getLowerRight_xc                 C   r;   )NgetLowerRight_yr%   r*   r@   r   r   r   r   rH   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   rJ   {      "c                 C   rI   )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   rK   zRectangleObject.lower_rightc                    rL   )Nc                 3   rM   r   r   r   r   r   r   rN      rO   z.RectangleObject.lower_right.<locals>.<genexpr>r   r	   r   r    r   r   r   rQ      rP   c                 C   rI   )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   rK   zRectangleObject.upper_leftc                    rL   )Nc                 3   rM   r   r   r   r   r   r   rN      rO   z-RectangleObject.upper_left.<locals>.<genexpr>r   r:   r   r    r   r   r   rR      rP   c                 C   rI   )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   rK   zRectangleObject.upper_rightc                    rL   )Nc                 3   rM   r   r   r   r   r   r   rN      rO   z.RectangleObject.upper_right.<locals>.<genexpr>r   r:   r   r    r   r   r   rS      rP   c                 C   r;   )NgetLowerLeftrJ   r*   r   rJ   r   r   r   r   rT         zRectangleObject.getLowerLeftc                 C   r;   )NgetLowerRightrQ   r*   r   rQ   r   r   r   r   rW      rV   zRectangleObject.getLowerRightc                 C   r;   )NgetUpperLeftrR   r*   r   rR   r   r   r   r   rY      rV   zRectangleObject.getUpperLeftc                 C   r;   )NgetUpperRightrS   r*   r   rS   r   r   r   r   r[      rV   zRectangleObject.getUpperRightc                 C      t ddd || _d S )NsetLowerLeftrJ   r*   rU   r    r   r   r   r^      s   
zRectangleObject.setLowerLeftc                    .   t ddd  fdd|D \ d<  d< d S )NsetLowerRightrQ   r*   c                 3   rM   r   r   r   r   r   r   rN      rO   z0RectangleObject.setLowerRight.<locals>.<genexpr>r   r	   r   r    r   r   r   r`         "zRectangleObject.setLowerRightc                    r_   )NsetUpperLeftrR   r*   c                 3   rM   r   r   r   r   r   r   rN      rO   z/RectangleObject.setUpperLeft.<locals>.<genexpr>r   r:   ra   r    r   r   r   rc      rb   zRectangleObject.setUpperLeftc                    r_   )NsetUpperRightrS   r*   c                 3   rM   r   r   r   r   r   r   rN      rO   z0RectangleObject.setUpperRight.<locals>.<genexpr>r   r:   ra   r    r   r   r   rd      rb   zRectangleObject.setUpperRightc                 C      | j | j S r   )r&   r$   r   r   r   r   width      zRectangleObject.widthc                 C   r;   )NgetWidthrf   r*   )r   rf   r   r   r   r   rh      r>   zRectangleObject.getWidthc                 C   re   r   )r'   r%   r   r   r   r   height   rg   zRectangleObject.heightc                 C   r;   )N	getHeightri   r*   )r   ri   r   r   r   r   rj      r>   zRectangleObject.getHeightc                 C   r;   N	lowerLeftrJ   r*   rU   r   r   r   r   rl         zRectangleObject.lowerLeftc                 C   r]   rk   rU   r    r   r   r   rl         
c                 C   r;   N
lowerRightrQ   r*   rX   r   r   r   r   rp      rm   zRectangleObject.lowerRightc                 C   r]   ro   rX   r    r   r   r   rp      rn   c                 C   r;   N	upperLeftrR   r*   rZ   r   r   r   r   rr      rm   zRectangleObject.upperLeftc                 C   r]   rq   rZ   r    r   r   r   rr      rn   c                 C   r;   N
upperRightrS   r*   r\   r   r   r   r   rt      rm   zRectangleObject.upperRightc                 C   r]   rs   r\   r    r   r   r   rt     rn   )5__name__
__module____qualname____doc__r   r   r#   r   r   r
   r   r   r(   r)   strr.   propertyr$   setterr%   r&   r'   r<   r?   rA   rC   rE   rF   rG   rH   decimalDecimalrJ   r   rQ   rR   rS   rT   rW   rY   r[   r^   r`   rc   rd   rf   rh   ri   rj   rl   rp   rr   rt   r   r   r   r   r   	   s    	







r   )r|   typingr   r   r   r   _utilsr   r   _baser
   r   _data_structuresr   r   r   r   r   r   <module>   s    