o
    ë6Wjß$  ã                   @   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   úh/home/esfera/Documents/content_generation/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    