ó
    Ï.jÐ
  ã                  óº   • S r SSKJr  SSKrSSKrSSKrSSKJr  SSKrSSK	J
r
  SSKJr  SSKJrJr  \" S5      rS	 r\S
:X  a  \R&                  " \" 5       5        gg)ué  Per-page visual verification of the anatomy approach on any PDF.

For documents without numeric ground truth (Visa, TMUS, web PDFs), the
deliverable is per-page rendered evidence: run the anatomy locator on every
page and overlay its regions so each page can be checked by eye for the
three failure modes â€” slicing, merging, prose false-positives â€” and for
full-anatomy capture (title/headers/labels/footers). Prints the per-page
table count and writes one contact sheet per document.
é    )ÚannotationsN)ÚPath)ÚImage)Úmake_locator)Ú
draw_boxesÚrender_pagezexperiments/que245/renderc            	   ƒ  ó  #   • [         R                  " 5       n U R                  S5        U R                  SS SS9  U R                  S[        SS9  U R                  S[        S	S9  U R                  S
SS9  U R                  SSS9  U R                  SSS9  U R                  S[        SS9  U R	                  5       n[        UR                  5      n[        R                  " [        U5      5      nUR                  (       aH  UR                  R                  S5      u  pE[        [        [        U5      [        U5      S-   5      5      nO"[        [        SUR                  S-   5      5      nUR                  S:X  a  S O[!        UR                  5      n[#        UR$                  UR&                  XqR(                  UR*                  S9n/ n	[-        UR.                   SUR(                   SUR*                   SUR&                   35        U Hï  n
[0        R2                  " 5        n[        U5      S-  nX:S-
     R5                  SS9R7                  [        U5      5        UR9                  XÂU
5      I S h  v•N nS S S 5        [-        SU
S S[;        W5       S 3S!R=                  S" U 5       5      -   5        [?        X*S#S9n[A        US$U Vs/ s H  oÿRB                  PM     snS%4/5      nU	RE                  U5        Mñ     [G        S& U	 5       5      n[G        S' U	 5       5      nURH                  n[;        U	5      U-   S-
  U-  n[J        RL                  " S(UU-  UU-  4S)5      n[O        U	5       H&  u  nnURQ                  UUU-  U-  UU-  U-  45        M(     [R        S*URT                  S S+  S,UR$                   S-UR(                   S.3-  nUR7                  U5        [-        S/U S0URV                   S135        g  GN†! , (       d  f       GN‹= fs  snf 7f)2NÚpdfz--pagesze.g. 1-5; default all)ÚdefaultÚhelpz--rowsé   )Útyper   z--colsé   z--modelzclaude-haiku-4-5-20251001)r   z--tempz0.0z
--approachzanatomy-snapz	--per-rowé   Ú-é   Únone)ÚmodelÚtemperatureÚrowsÚcolsz  rows=z cols=z model=zp.pngéÈ   )Údpiz  page z>2z: z	 tables  z; c              3  óB   #   • U  H  oR                   S S < v •  M     g 7f)Né   )Útitle)Ú.0Úts     Ú7/home/mande/repo/quber/experiments/que245/verify_doc.pyÚ	<genexpr>Úmain.<locals>.<genexpr>9   s   é € Ð=²W°Ÿ7™7 3 B˜<Ñ*Ô+²Wùs   ‚én   ÚT)r   éP   éæ   c              3  ó8   #   • U  H  oR                   v •  M     g 7f©N)Úwidth©r   Úis     r   r    r!   >   s   é € Ð"šT˜�GŽGšTùó   ‚c              3  ó8   #   • U  H  oR                   v •  M     g 7fr'   )Úheightr)   s     r   r    r!   ?   s   é € Ð#šd˜�HŽHšdùr+   ÚRGB)éÿ   r/   r/   Úe2e_é   Ú_Ú_rz.pngzsaved z  (Ú)),ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsr   r
   ÚfitzÚopenÚstrÚpagesÚsplitÚlistÚrangeÚ
page_countÚtempÚfloatr   Úapproachr   r   r   ÚprintÚnameÚtempfileÚTemporaryDirectoryÚ
get_pixmapÚsaveÚlocateÚlenÚjoinr   r   ÚregionÚappendÚmaxÚper_rowr   ÚnewÚ	enumerateÚpasteÚRENDERÚstemÚsize)ÚapÚargsr
   ÚdocÚaÚbr=   rB   ÚlocÚimgsÚpÚtmpÚipÚlocatedÚimr   ÚwÚhÚperÚrows_nÚsheetr*   Úouts                          r   Úmainrj      sb  é € Ü	×	 Ò	 Ó	"€BØ‡O�O�EÔØ‡O�O�I tÐ2I€OÑJØ‡O�O�H¤3°€OÑ3Ø‡O�O�H¤3°€OÑ3Ø‡O�O�IÐ'B€OÑCØ‡O�O�H e€OÑ,Ø‡O�O�L¨.€OÑ9Ø‡O�O�K¤c°1€OÑ5Ø�=‰=‹?€Dä
ˆt�x‰x‹.€CÜ
�)Š)”C˜“HÓ
€CØ‡z‡zØ�z‰z×Ñ Ó$‰ˆÜ”Uœ3˜q›6¤3 q£6¨A¡:Ó.Ó/‰ä”U˜1˜cŸn™n¨qÑ0Ó1Ó2ˆØ—9‘9 Ó&‰4¬E°$·)±)Ó,<€Dä
�t—}‘}¨D¯J©JÀDÏyÉyÐ_c×_hÑ_hÑ
i€CØ€DÜ	ˆS�X‰XˆJ�g˜dŸi™i˜[¨¨t¯y©y¨k¸ÀÇÁÀÐ
MÔNÛˆÜ×(Ò(Ô*¨cÜ�c“˜WÑ$ˆBØ�A‘‰J×!Ñ! cÐ!Ð*×/Ñ/´°B³Ô8ØŸJ™J r°Ó2×2ˆG÷ +ô 	�˜˜"�v˜R¤ G£˜~¨YÐ7Ø�i‰iÑ=±WÓ=Ó=ñ>ô 	?ä˜ SÑ)ˆÜ˜˜c±gÓ#>²g°§H¤H±gÑ#>ÀÐMÐNÓOˆØ�‰�BŽñ ô 	Ñ"™TÓ"Ó"€AÜÑ#™dÓ#Ó#€AØ
�,‰,€CÜ�$‹i˜#‰o Ñ! cÑ)€FÜ�IŠI�e˜a #™g q¨6¡zÐ2°OÓD€EÜ˜4–‰ˆˆ2Ø�‰�B˜!˜c™' Q™¨¨c©°Q©Ð7Ö8ñ !ä
�T˜#Ÿ(™( 3 B˜-˜¨¨$¯-©-¨¸¸4¿9¹9¸+ÀTÐJÑ
J€CØ	‡J�Jˆs„OÜ	ˆF�3�%�s˜5Ÿ:™:˜, aÐ
(Õ)ò! 3÷ +Ö*üò $?ùs?   ‚HPÈAO6É-O3É.O6É2APËPËDPÏ3O6Ï6
P	Ð PÚ__main__)Ú__doc__Ú
__future__r   r5   ÚasynciorG   Úpathlibr   r:   ÚPILr   Úexperiments.que245.approachesr   Úexperiments.que245.overlayr   r   rU   rj   Ú__name__Úrun© ó    r   Ú<module>rw      sU   ðñõ #ã Û Û Ý ã Ý å 6ß >á	Ð)Ó	*€ò,*ð^ ˆzÓØ‡K‚K‘“Õð rv   