
    Mi                    ~   S SK Jr  S SKJr  S SKJrJrJrJrJ	r	J
r
   " S S5      r " S S\	5      r " S S	\	5      r " S
 S\	5      r " S S\	5      r " S S\	5      r " S S\	5      r " S S\	5      r " S S\	5      r\ " S S5      5       r " S S5      r\\   r\\   r\\   r\\   r\\   r\\\      r\\   rg)    )annotations)	dataclass)AnyDictListOptional	TypedDictUnionc                     \ rS rSrSSS jjrS rS r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       rSS jrSS jrSS jrSS jrSS jrSS jrSS jrSrg)Bbox   c                    U(       a;  [        U5      n[        US   US   S-   5      US'   [        US   US   S-   5      US'   Xl        X l        g Nr            )listmaxbboxensure_nonzero_area)selfr   r   s      h/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/pdftext/schema.py__init__Bbox.__init__   sQ    :D$q'47Q;/DG$q'47Q;/DG	#6     c                     U R                   U   $ Nr   )r   items     r   __getitem__Bbox.__getitem__   s    yyr   c                "    SU R                    S3$ )NzBbox()r   r   s    r   __repr__Bbox.__repr__   s    tyyk##r   c                @    U R                   S   U R                   S   -
  $ )Nr   r   r   r$   s    r   heightBbox.height       yy|diil**r   c                @    U R                   S   U R                   S   -
  $ )Nr   r   r   r$   s    r   width
Bbox.width   r*   r   c                4    U R                   U R                  -  $ r   r,   r(   r$   s    r   area	Bbox.area   s    zzDKK''r   c                    U R                   S   U R                   S   -   S-  U R                   S   U R                   S   -   S-  /$ r   r   r$   s    r   centerBbox.center"   sB    1		!,1DIIaL499Q<4OST3TUUr   c                2    U R                   U R                  /$ r   r/   r$   s    r   size	Bbox.size&   s    

DKK((r   c                     U R                   S   $ Nr   r   r$   s    r   x_startBbox.x_start*       yy|r   c                     U R                   S   $ )Nr   r   r$   s    r   y_startBbox.y_start.   r<   r   c                     U R                   S   $ )Nr   r   r$   s    r   x_end
Bbox.x_end2   r<   r   c                     U R                   S   $ )Nr   r   r$   s    r   y_end
Bbox.y_end6   r<   r   c           
         U R                   nUR                   n[        [        US   US   5      [        US   US   5      [        US   US   5      [        US   US   5      /5      $ )Nr   r   r   r   )r   r   minr   )r   other	self_bbox
other_bboxs       r   merge
Bbox.merge:   sn    II	ZZ
	!jm,	!jm,	!jm,	!jm,	
  	r   c           	         [        S[        U R                  S   UR                  S   5      [        U R                  S   UR                  S   5      -
  5      $ )Nr   r   r   rG   r   r   rH   s     r   	overlap_xBbox.overlap_xD   C    1c$))A,

16TYYq\5::VW=9YYZZr   c           	         [        S[        U R                  S   UR                  S   5      [        U R                  S   UR                  S   5      -
  5      $ )Nr   r   r   rN   rO   s     r   	overlap_yBbox.overlap_yG   rR   r   c                H    U R                  U5      U R                  U5      -  $ r   )rP   rT   rO   s     r   intersection_areaBbox.intersection_areaJ   s    ~~e$t~~e'<<<r   c                b    U R                   S:X  a  gU R                  U5      nX R                   -  $ r9   )r0   rW   )r   rH   intersections      r   intersection_pctBbox.intersection_pctM   s-    99>--e4ii''r   c                ^   US;  a  [        S5      eU R                  u  pEpgUS:X  a  [        U R                  5      $ US:X  a  X'-
  nUn	X%-
  n
UnO)US:X  a  X-
  nX'-
  n	X-
  n
X%-
  nOUS:X  a  UnX-
  n	Un
X-
  n[        WW
5      [        W	W5      [	        X5      [	        X5      4n[        U5      $ )N)r   Z        z2Rotation must be one of [0, 90, 180, 270] degrees.r   r^   r_   r`   )
ValueErrorr   r   rG   r   )r   
page_widthpage_heightrotationx_miny_minx_maxy_max	new_x_min	new_y_min	new_x_max	new_y_maxrotated_bboxs                r   rotateBbox.rotateT   s    ,,QRR%)YY"eq=		?"^#+II#+II_"*I#+I"*I#+I_I"*II"*I 	9%	9%	%	%	
 L!!r   c                    US   US   -  nUS   US   -  nU R                   S   U-  U R                   S   U-  U R                   S   U-  U R                   S   U-  /n[        U5      $ )Nr   r,   r   r(   r   r   )r   r   )r   img_sizepagew_scaleh_scalenew_bboxs         r   rescaleBbox.rescalev   sy    1+W-1+X.IIaL7"IIaL7"IIaL7"IIaL7"	
 H~r   )r   r   N)F)r   List[float])rH   r   returnr   )rH   r   )rb   floatrc   rz   rd   intry   r   )rq   	List[int]rr   Pagery   r   )__name__
__module____qualname____firstlineno__r   r    r%   propertyr(   r,   r0   r3   r6   r:   r>   rA   rD   rK   rP   rT   rW   r[   rn   rv   __static_attributes__ r   r   r   r      s    7$ + + + + ( ( V V ) )        [[=( "D
r   r   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)Char   r   r   strcharrz   rd   Dict[str, Union[Any, str]]fontr{   char_idxr   Nr~   r   r   r   __annotations__r   r   r   r   r   r      s    
J
IO
$$Mr   r   c                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S
\S'   S
\S'   S\S'   S\S'   S\S'   Srg)Span   r   r   r   textr   r   z
List[Char]charsr{   char_start_idxchar_end_idxrd   urlboolsuperscript	subscriptr   Nr   r   r   r   r   r      s9    
J
I
$$M	HOr   r   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
Line   z
List[Span]spansr   r   r{   rd   r   Nr   r   r   r   r   r          
JMr   r   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
Block   z
List[Line]linesr   r   r{   rd   r   Nr   r   r   r   r   r      r   r   r   c                  \    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   Srg)r}      r{   rr   r   r   r,   r(   zList[Block]blocksrd   List[Reference]refsr   Nr   r   r   r   r}   r}      s'    
I
JJKM
r   r}   c                  *    \ rS rSr% S\S'   S\S'   Srg)	TableCell   r   r   r   r   r   Nr   r   r   r   r   r      s    
I
Jr   r   c                  *    \ rS rSr% S\S'   S\S'   Srg)
TableInput   zList[List[int]]tablesr|   rq   r   Nr   r   r   r   r   r      s    r   r   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)Link   r{   rr   rx   r   zOptional[int]	dest_pagezOptional[List[float]]dest_poszOptional[str]r   r   Nr   r   r   r   r   r      s    
I
##	r   r   c                  T    \ rS rSr% S\S'   S\S'   S\S'   \S 5       r\S 5       rS	rg
)	Reference   r{   idxrr   rx   coordc                :    SU R                    SU R                   3$ )Nzpage--)rr   r   r$   s    r   refReference.ref   s    tyyk488*--r   c                     SU R                    3$ )N#)r   r$   s    r   r   Reference.url   s    488*~r   r   N)	r~   r   r   r   r   r   r   r   r   r   r   r   r   r      s8    	H
I. .  r   r   c                  8    \ rS rSrS rSS jrS	S jrS
S jrSrg)PageReference   c                    0 U l         g r   page_ref_mapr$   s    r   r   PageReference.__init__   s
    8:r   c                :    U R                   R                  U/ 5      $ r   )r   get)r   rr   s     r   get_refsPageReference.get_refs   s      $$T2..r   c                    U R                   R                  U/ 5        U R                  X5      nUc>  [        [	        U R                   U   5      XS9nU R                   U   R                  U5        U$ )N)r   rr   r   )r   
setdefault	check_refr   lenappend)r   rr   r   r   s       r   add_refPageReference.add_ref   se    $$T2.nnT);D$5$5d$; <4UCd#**3/
r   c                v    U R                   R                  U/ 5      nU H  nUR                  U:X  d  M  Us  $    g r   )r   r   r   )r   rr   r   r   r   s        r   r   PageReference.check_ref   s:      $$T2.CyyE!
  r   r   N)rr   r{   ry   r   )rr   r{   r   rx   ry   r   )rr   r{   r   rx   ry   zOptional[Reference])	r~   r   r   r   r   r   r   r   r   r   r   r   r   r      s    ;/r   r   N)
__future__r   dataclassesr   typingr   r   r   r   r	   r
   r   r   r   r   r   r}   r   r   r   r   r   CharsSpansLinesBlocksPagesTablesTableInputsr   r   r   <module>r      s    " ! > >y yx9 
9 
9 I 9 	 
 
9     . 	T
T
T
	eT
	d9o	:r   