ó
    �®žj[  ã                   óÂ   • S SK JrJr  S SKJr  S SKJrJrJr  S SK	J
r
  S SKJrJr  S SKJr  S\R                  S\\   S	\S
\SS4
S jr SS\S\S\\   S\S\SS4S jjrg)é    )ÚPathÚPurePath)ÚDocItemLabel)ÚImageÚ	ImageDrawÚ	ImageFont)ÚFreeTypeFont)ÚClusterÚPage)ÚsettingsÚimageÚclustersÚscale_xÚscale_yÚreturnNc           	      ó0  • [         R                  " U S5      n [        R                  " SS5      nU GHº  nU/UR                  QnU GH   nSn	UR                   HS  n
U
R                  R                  5       R                  5       u  p¼pÞX²-  nXÒ-  nXÃ-  nXã-  nUR                  X¼4XÞ4/SU	S9  MU     UR                  R                  5       u  nnnnXò-  nUU-  nUU-  nUU-  nUU::  a  UUnnUU::  a  UUnn/ [        [        R                  " UR                   5      5      QSP7n/ [        [        R                  " UR                   5      5      QSP7nUR                  UU4UU4/UUS9  UR                   R"                   S	UR$                  S
 S3nUR'                  UU4UUS9nSnUR                  US   U-
  US   U-
  4US   U-   US   U-   4/SS9  UR)                  UU4USUS9  GM£     GM½     g! [         a    [        R
                  " 5       n GNäf = f)z
Draw clusters on an image
ÚRGBAz	arial.ttfé   )r   r   r   é(   N)ÚoutlineÚfilléF   éÿ   z (z.2fÚ))Úfonté   r   é   é   )r   r   r   é´   )r   )r   r   r   r   )r   r   )r   ÚDrawr   ÚtruetypeÚOSErrorÚload_defaultÚchildrenÚcellsÚrectÚto_bounding_boxÚas_tupleÚ	rectangleÚbboxÚlistr   Ú	get_colorÚlabelÚnameÚ
confidenceÚtextbboxÚtext)r   r   r   r   Údrawr   Úc_tlÚall_clustersÚcÚ
cell_colorÚtcÚcx0Úcy0Úcx1Úcy1Úx0Úy0Úx1Úy1Úcluster_fill_colorÚcluster_outline_colorÚ
label_textÚ	text_bboxÚtext_bg_paddings                           ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/utils/visualization.pyÚdraw_clustersrF      su  € ô �>Š>˜% Ó(€Dð(Ü×!Ò! +¨rÓ2ˆô ˆØÐ-˜tŸ}™}Ð-ˆÜˆAà&ˆJØ—g”g�Ø%'§W¡W×%<Ñ%<Ó%>×%GÑ%GÓ%IÑ"�˜#Ø‘�Ø‘�Ø‘�Ø‘�à—‘Ø�Z # Ð,Ø Ø#ð ó ñ ð ŸV™VŸ_™_Ó.‰NˆB��B˜Ø‰MˆBØ�'‰MˆBØ�'‰MˆBØ�'‰MˆBà�R‹xØ˜R�B�Ø�R‹xØ˜R�B�à!M¤4¬×(>Ò(>¸q¿w¹wÓ(GÓ#HÐ!MÈ"Ñ!MÐð%Ü”l×,Ò,¨Q¯W©WÓ5Ó6ð%àñ%Ð!ð �N‰NØ�b�˜B ˜8Ð$Ø-Ø'ð ñ ð ŸG™GŸL™L˜>¨¨A¯L©L¸Ð+=¸QÐ?ˆJàŸ™ r¨2 h°
À˜ÐFˆIØˆOØ�N‰Nð " !™ Ñ6Ø! !™ Ñ6ðð
 " !™ Ñ6Ø! !™ Ñ6ðð	ð *ð ñ ð �I‰IØ�R�ØØ#Øð	 ô ôq ò øô ó (ä×%Ò%Ó'‹ð(ús   ™G2 Ç2HÈHÚ
input_fileÚpageÚmode_prefixÚshowc                 ób  • UR                   c   eUR                  c   eUR                   R                  UR                  R                  -  nUR                   R                  UR                  R                  -  n[        R
                  [        R                  [        R                  1nU Vs/ s H  oˆR                  U;  d  M  UPM     n	nU Vs/ s H  oˆR                  U;   d  M  UPM     n
nUR                   R                  5       nUR                   R                  5       n[        X¹XV5        [        XÊXV5        UR                  S-  nUR                  n[        R                  " SXÞ45      nUR                  US5        UR                  XËR                  S45        U(       a  UR                  5         g[        [         R"                  R$                  5      SU R&                   3-  nUR)                  SSS9  UU S	UR*                  S
 S3-  nUR-                  [/        U5      SS9  gs  snf s  snf )a  
Draws a page image side by side with clusters filtered into two categories:
- Left: Clusters excluding FORM, KEY_VALUE_REGION, and PICTURE.
- Right: Clusters including FORM, KEY_VALUE_REGION, and PICTURE.
Includes label names and confidence scores for each cluster.
Nr   ÚRGB)r   r   r   Údebug_T)ÚparentsÚexist_okÚ_layout_page_Ú05z.pngÚpng)Úformat)r   ÚsizeÚwidthÚheightr   ÚFORMÚKEY_VALUE_REGIONÚPICTUREr-   ÚcopyrF   r   ÚnewÚpasterJ   r   r   ÚdebugÚdebug_output_pathÚstemÚmkdirÚpage_noÚsaveÚstr)rG   rH   r   rI   rJ   r   r   Úexclude_labelsr5   Úleft_clustersÚright_clustersÚ
left_imageÚright_imageÚcombined_widthÚcombined_heightÚcombined_imageÚout_pathÚout_files                     rE   Ú$draw_clusters_and_cells_side_by_sidern   ^   sÔ  € ð �:‰:Ñ!Ð!Ð!Ø�9‰9Ñ Ð Ð Ø�j‰j×Ñ §¡§¡Ñ0€GØ�j‰j×Ñ $§)¡)×"2Ñ"2Ñ2€Gô 	×ÑÜ×%Ñ%Ü×Ñð€Nñ
 !)ÓJ¢˜1¯G©G¸>Ñ,I—Q¡€MÐJÙ!)ÓG¢˜A¯W©W¸Ñ-F—a¡€NÐGà—‘—‘Ó"€JØ—*‘*—/‘/Ó#€Kô �*¨WÔ>Ü�+¨wÔ@à×%Ñ%¨Ñ)€NØ ×'Ñ'€OÜ—Y’Y˜u ~Ð&GÓH€NØ×Ñ˜ VÔ,Ø×Ñ˜×'7Ñ'7¸Ð&;Ô<ÞØ×ÑÕô ”—‘×1Ñ1Ó2°v¸j¿o¹oÐ=NÐ5OÑOð 	ð 	�‰˜t¨dˆÑ3Ø  ¨]¸4¿<¹<ÈÐ:KÈ4ÐPÑPˆØ×ÑœC ›M°%ÐÒ8ùò/ KùÚGs   Â,H'ÃH'ÃH,Ã&H,)F)Úpathlibr   r   Údocling_core.types.docr   ÚPILr   r   r   ÚPIL.ImageFontr	   Údocling.datamodel.base_modelsr
   r   Údocling.datamodel.settingsr   r+   ÚfloatrF   rc   Úboolrn   © ó    rE   Ú<module>ry      sž   ð÷ #å /ß +Ñ +Ý &ç 7Ý /ðMØ�;‰;ðMØ"& w¡-ðMØ:?ðMØJOðMà	ôMðj ñ/9Øð/9à
ð/9ð �7‰mð/9ð ð	/9ð
 ð/9ð 
ö/9rx   