ó
    �®žjÓ  ã                  ó¨   • S r SSKJr  SSKJr  SSKJr  SSKJr  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  SSKJr  S/r " S S\5      rg)zIInternal TableCrops layout model that marks full pages as table clusters.é    )Úannotations)ÚSequence)ÚPath)ÚOptional)ÚBoundingBoxÚDocItemLabel)ÚAcceleratorOptions)ÚClusterÚLayoutPredictionÚPage)ÚConversionResult©ÚTableCropsLayoutOptions)ÚBaseLayoutModelÚTableCropsLayoutModelc                  óz   • \ rS rSr% SrSrS\S'    S       SS jjr\SS j5       r	      SS jr
SS	 jrS
rg)r   é   zèExperimental layout model that treats the full page as a table cluster.
This is useful in cases where a Docling pipeline is applied to images of table crops only.

This model is internal and not part of the stable public interface.
FÚboolÚrequires_layout_postprocessingc                ó,   • UnX0l         Xl        X l        g ©N)ÚoptionsÚartifacts_pathÚaccelerator_options)Úselfr   r   r   Úenable_remote_servicesÚ_s         Úq/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/experimental/models/table_crops_layout_model.pyÚ__init__ÚTableCropsLayoutModel.__init__"   s   € ð #ˆØŒØ,ÔØ#6Õ ó    c                ó   • [         $ r   r   )Úclss    r   Úget_options_typeÚ&TableCropsLayoutModel.get_options_type.   s   € ä&Ð&r!   c                ó>  • / nU H”  nUR                   b  UR                   R                  5       (       d:  UR                  R                  =(       d
    [	        5       nUR                  U5        Mi  U R                  U5      n[	        US9nUR                  U5        M–     U$ )N)Úclusters)Ú_backendÚis_validÚpredictionsÚlayoutr   ÚappendÚ_build_page_clusters)r   Úconv_resÚpagesÚlayout_predictionsÚpageÚexisting_predictionr'   Ú
predictions           r   Úpredict_layoutÚ$TableCropsLayoutModel.predict_layout2   s�   € ð
 68ÐãˆDØ�}‰}Ñ$¨D¯M©M×,BÑ,B×,DÑ,DØ&*×&6Ñ&6×&=Ñ&=×&SÔAQÓASÐ#Ø"×)Ñ)Ð*=Ô>Ùà×0Ñ0°Ó6ˆHÜ)°8Ñ<ˆJà×%Ñ% jÖ1ñ ð "Ð!r!   c                óX  • UR                   nUc  / $ [        SSUR                  UR                  S9n[	        S[
        R                  US/ S9nU/nU R                  R                  (       d?  [        UR                  5      nXdl
        U(       d  U R                  R                  (       d  / nU$ )Ng        )ÚlÚtÚrÚbr   g      ð?)ÚidÚlabelÚbboxÚ
confidenceÚcells)Úsizer   ÚwidthÚheightr
   r   ÚTABLEr   Úskip_cell_assignmentÚlistr?   Úkeep_empty_clusters)r   r1   Ú	page_sizer=   Úclusterr'   Ú
page_cellss          r   r-   Ú*TableCropsLayoutModel._build_page_clustersF   s™   € Ø—I‘Iˆ	ØÑØˆIäØØØ�o‰oØ×Ññ	
ˆô ØÜ×$Ñ$ØØØñ
ˆð �9ˆà�|‰|×0×0Ü˜dŸj™jÓ)ˆJØ&ŒMæ d§l¡l×&F×&FØ�àˆr!   )r   r   r   N)F)r   zOptional[Path]r   r	   r   r   r   r   )Úreturnztype[TableCropsLayoutOptions])r.   r   r/   zSequence[Page]rK   zSequence[LayoutPrediction])r1   r   rK   zlist[Cluster])Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__r   Úclassmethodr$   r4   r-   Ú__static_attributes__© r!   r   r   r      s~   ‡ ñð ,1Ð" DÓ0ð (-ð
7à&ð
7ð 0ð
7ð )ð	
7ð
 !%õ
7ð ó'ó ð'ð"à"ð"ð ð"ð 
$ô	"÷(r!   N)rP   Ú
__future__r   Úcollections.abcr   Úpathlibr   Útypingr   Údocling_core.types.docr   r   Ú%docling.datamodel.accelerator_optionsr	   Údocling.datamodel.base_modelsr
   r   r   Údocling.datamodel.documentr   Ú9docling.experimental.datamodel.table_crops_layout_optionsr   Ú docling.models.base_layout_modelr   Ú__all__r   rT   r!   r   Ú<module>r`      sF   ðñ På "å $Ý Ý ç <å Dß IÑ IÝ 7õõ =à"Ð
#€ôJ˜Oõ Jr!   