
    i                     F    S SK JrJr  SSKJrJr  SSKJr   " S S\5      rg)    )AnyUnion   )FloatObjectNumberObject)ArrayObjectc                   B   \ rS rSrSrS\S \\\\\4   4   SS4S jrS\	S\\
\4   4S jrS	\S
\SS 4S jrS\4S jr\S\
4S j5       r\R$                  S\SS4S j5       r\S\
4S j5       r\R$                  S\SS4S j5       r\S\
4S j5       r\R$                  S\SS4S j5       r\S\
4S j5       r\R$                  S\SS4S j5       r\S\\\4   4S j5       r\R$                  S\\\4   SS4S j5       r\S\\\4   4S j5       r\R$                  S\\\4   SS4S j5       r\S\\\4   4S j5       r\R$                  S\\\4   SS4S j5       r\S\\\4   4S j5       r\R$                  S\\\4   SS4S j5       r\S\4S j5       r\S\4S j5       rS rg)!RectangleObject   aP  
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>`
arrreturnNc           	          [        U5      S:X  d   e[        R                  " X Vs/ s H  o R                  U5      PM     sn5        g s  snf )N   )lenr   __init___ensure_is_number)selfr   xs      R/home/james-whalen/.local/lib/python3.13/site-packages/pypdf/generic/_rectangle.pyr   RectangleObject.__init__   s?     3x1}}Ts#Ks!$:$:1$=s#KL#Ks   A
valuec                 R    [        U[        [        45      (       d  [        U5      nU$ N)
isinstancer   r   r   r   s     r   r   !RectangleObject._ensure_is_number   s#    %+|!<==&E    sxsyc                     [        [        U R                  5      U-  [        U R                  5      U-  [        U R                  5      U-  [        U R
                  5      U-  45      $ r   )r
   floatleftbottomrighttop)r   r   r   s      r   scaleRectangleObject.scale!   sW    dii 2%dkk"R'djj!B&dhh"$	
 	
r   c                 "    S[        U 5      < S3$ )NzRectangleObject())listr   s    r   __repr__RectangleObject.__repr__+   s    !$t*q11r   c                     U S   $ Nr    r+   s    r   r"   RectangleObject.left.       Awr   fc                      [        U5      U S'   g r/   r   r   r3   s     r   r"   r1   2       a.Qr   c                     U S   $ Nr   r0   r+   s    r   r#   RectangleObject.bottom6   r2   r   c                      [        U5      U S'   g r9   r5   r6   s     r   r#   r:   :   r7   r   c                     U S   $ N   r0   r+   s    r   r$   RectangleObject.right>   r2   r   c                      [        U5      U S'   g r=   r5   r6   s     r   r$   r?   B   r7   r   c                     U S   $ N   r0   r+   s    r   r%   RectangleObject.topF   r2   r   c                      [        U5      U S'   g rB   r5   r6   s     r   r%   rD   J   r7   r   c                 2    U R                   U R                  4$ )zR
Property to read and modify the lower left coordinate of this box
in (x,y) form.
)r"   r#   r+   s    r   
lower_leftRectangleObject.lower_leftN   s     yy$++%%r   c                 0   ^  U 4S jU 5       u  T S'   T S'   g )Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr   r   .0r   r   s     r   	<genexpr>-RectangleObject.lower_left.<locals>.<genexpr>X        Eu!D22155u   !r   r   r0   r   s   ` r   rG   rH   V       EuEQar   c                 2    U R                   U R                  4$ )zS
Property to read and modify the lower right coordinate of this box
in (x,y) form.
)r$   r#   r+   s    r   lower_rightRectangleObject.lower_rightZ   s     zz4;;&&r   c                 0   ^  U 4S jU 5       u  T S'   T S'   g )Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr   rK   rL   s     r   rN   .RectangleObject.lower_right.<locals>.<genexpr>d   rP   rQ   r>   r   r0   r   s   ` r   rT   rU   b   rR   r   c                 2    U R                   U R                  4$ )zR
Property to read and modify the upper left coordinate of this box
in (x,y) form.
)r"   r%   r+   s    r   
upper_leftRectangleObject.upper_leftf   s     yy$((""r   c                 0   ^  U 4S jU 5       u  T S'   T S'   g )Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr   rK   rL   s     r   rN   -RectangleObject.upper_left.<locals>.<genexpr>p   rP   rQ   r   rC   r0   r   s   ` r   rZ   r[   n   rR   r   c                 2    U R                   U R                  4$ )zS
Property to read and modify the upper right coordinate of this box
in (x,y) form.
)r$   r%   r+   s    r   upper_rightRectangleObject.upper_rightr   s     zz488##r   c                 0   ^  U 4S jU 5       u  T S'   T S'   g )Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr   rK   rL   s     r   rN   .RectangleObject.upper_right.<locals>.<genexpr>|   rP   rQ   r>   rC   r0   r   s   ` r   r`   ra   z   rR   r   c                 4    U R                   U R                  -
  $ r   )r$   r"   r+   s    r   widthRectangleObject.width~   s    zzDII%%r   c                 4    U R                   U R                  -
  $ r   )r%   r#   r+   s    r   heightRectangleObject.height   s    xx$++%%r   r0   )__name__
__module____qualname____firstlineno____doc__r   tupler!   r   r   r   r   r   r&   strr,   propertyr"   setterr#   r$   r%   rG   rT   rZ   r`   rf   ri   __static_attributes__r0   r   r   r
   r
      s   
M*E%u2L,MMNM	Ms u[,5N/O 

 
5 
-> 
2# 2 k   
[[!e ! ! !    ]]! !$ ! ! {   \\!u ! ! ! [   	ZZ!U !t ! ! &E%,/ & & FeUl 3 F F F 'U5%<0 ' ' Fue|!4 F F F #E%,/ # # FeUl 3 F F F $U5%<0 $ $ Fue|!4 F F F &u & & & & &r   r
   N)	typingr   r   _baser   r   _data_structuresr   r
   r0   r   r   <module>rx      s     , )}&k }&r   