§
    ‚ŠtjÄ  ã                   ót   — d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
mZ e G d„ de¦  «        ¦   «         ZdgZdS )z!
Processor class for LayoutLMv2.
é   )ÚProcessorMixin)ÚBatchEncodingÚPaddingStrategyÚPreTokenizedInputÚ	TextInputÚTruncationStrategy)Ú
TensorTypeÚauto_docstringc            (       ó¼  ‡ — e Zd Zdˆ fd„	Ze	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddeez  ee         z  ee         z  deee         z  dz  deee                  eeee                           z  dz  d	ee         eee                  z  dz  d
e	de	e
z  ez  de	e
z  ez  dedz  dededz  de	dz  de	dz  de	de	de	de	de	de
ez  dz  def&d„¦   «         Zd„ Zed„ ¦   «         Zˆ xZS )ÚLayoutLMv2ProcessorNc                 óL   •— t          ¦   «                              ||¦  «         d S )N)ÚsuperÚ__init__)ÚselfÚimage_processorÚ	tokenizerÚkwargsÚ	__class__s       €úr/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/layoutlmv2/processing_layoutlmv2.pyr   zLayoutLMv2Processor.__init__   s#   ø€ Ý‰Œ×Ò˜¨)Ñ4Ô4Ð4Ð4Ð4ó    TFé    ÚtextÚ	text_pairÚboxesÚword_labelsÚadd_special_tokensÚpaddingÚ
truncationÚ
max_lengthÚstrideÚpad_to_multiple_ofÚreturn_token_type_idsÚreturn_attention_maskÚreturn_overflowing_tokensÚreturn_special_tokens_maskÚreturn_offsets_mappingÚreturn_lengthÚverboseÚreturn_tensorsÚreturnc                 ó`  — | j         j        r|�t          d¦  «        ‚| j         j        r|�t          d¦  «        ‚|du r|du rt          d¦  «        ‚|                       ||¬¦  «        }|�.| j         j        r"|€ t          |t          ¦  «        r|g}|d         } | j        di d|�|n|d         “d	|�|nd “d
|�|n|d
         “d|“d|“d|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“|¤Ž}|                     d¦  «        }|du r|                      ||d         ¦  «        }||d<   |S )NzdYou cannot provide bounding boxes if you initialized the image processor with apply_ocr set to True.zaYou cannot provide word labels if you initialized the image processor with apply_ocr set to True.TFzKYou cannot return overflowing tokens without returning the offsets mapping.)Úimagesr)   Úwordsr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   Úpixel_valuesÚoverflow_to_sample_mappingÚimage© )r   Ú	apply_ocrÚ
ValueErrorÚ
isinstanceÚstrr   ÚpopÚget_overflowing_images)r   r,   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r   ÚfeaturesÚencoded_inputss                          r   Ú__call__zLayoutLMv2Processor.__call__   s:  € ð2 ÔÔ)ð 	¨uÐ/@ÝØvñô ð ð ÔÔ)ð 	¨{Ð/FÝØsñô ð ð %¨Ð,Ð,Ð1GÈ5Ð1PÐ1PÝÐjÑkÔkÐkð ×'Ò'¨vÀnÐ'ÑUÔUˆð Ð Ô 4Ô >ÐÀ9ÐCTÝ˜$¥Ñ$Ô$ð Ø�v�Ø  Ô)ˆIà'˜œð 
ð 
ð 
ØÐ)��¨x¸Ô/@øð
à#,Ð#8�i�i¸døð
ð !Ð,�%�%°(¸7Ô2Cøð
ð $˜ð	
ð
  2Ð1ð
ð �Gð
ð "�zð
ð "�zð
ð �6ð
ð  2Ð1ð
ð #8Ð"7ð
ð #8Ð"7ð
ð '@Ð&?ð
ð (BÐ'Að
ð $:Ð#9ð
ð  (˜-ð!
ð" �Gð#
ð$ *˜>Øð'
ð 
ˆð. —’˜nÑ-Ô-ˆØ$¨Ð,Ð,Ø×0Ò0°¸ÐHdÔ9eÑfÔfˆFØ"(ˆ�wÑàÐr   c                 óè   — g }|D ]}|                      ||         ¦  «         Œt          |¦  «        t          |¦  «        k    r/t          dt          |¦  «        › dt          |¦  «        › �¦  «        ‚|S )Nz`Expected length of images to be the same as the length of `overflow_to_sample_mapping`, but got z and )ÚappendÚlenr3   )r   r,   r/   Úimages_with_overflowÚ
sample_idxs        r   r7   z*LayoutLMv2Processor.get_overflowing_imagesi   s    € à!ÐØ4ð 	<ð 	<ˆJØ ×'Ò'¨¨zÔ(:Ñ;Ô;Ð;Ð;åÐ#Ñ$Ô$­Ð,FÑ(GÔ(GÒGÐGÝðVÝÐ,Ñ-Ô-ðVð VÝ47Ð8RÑ4SÔ4SðVð Vñô ð ð
 $Ð#r   c                 ó
   — g d¢S )N)Ú	input_idsÚbboxÚtoken_type_idsÚattention_maskr0   r1   )r   s    r   Úmodel_input_namesz%LayoutLMv2Processor.model_input_namesw   s   € àQÐQÐQÐQr   )NN)NNNNTFFNr   NNNFFFFTN)Ú__name__Ú
__module__Ú__qualname__r   r
   r   r   ÚlistÚintÚboolr5   r   r   r	   r   r:   r7   ÚpropertyrE   Ú__classcell__)r   s   @r   r   r      s0  ø€ € € € € ð5ð 5ð 5ð 5ð 5ð 5ð ð [_ØHLØ@DØ:>Ø#'Ø05Ø6;Ø!%ØØ)-Ø-1Ø-1Ø*/Ø+0Ø',Ø#ØØ26ð)Jð Jð Ð+Ñ+¨d°9¬oÑ=ÀÐEVÔ@WÑWðJð % tÐ,=Ô'>Ñ>ÀÑEð	Jð
 �D˜”IŒ  d¨4°¬9¤oÔ!6Ñ6¸Ñ=ðJð ˜#”Y  d¨3¤i¤Ñ0°4Ñ7ðJð !ðJð ˜‘˜oÑ-ðJð ˜3‘JÐ!3Ñ3ðJð ˜$‘JðJð ðJð   $™JðJð  $ d™{ðJð  $ d™{ðJð $(ðJð  %)ð!Jð" !%ð#Jð$ ð%Jð& ð'Jð( ˜jÑ(¨4Ñ/ð)Jð, 
ð-Jð Jð Jñ „^ðJðX$ð $ð $ð ðRð Rñ „XðRð Rð Rð Rð Rr   r   N)Ú__doc__Úprocessing_utilsr   Útokenization_utils_baser   r   r   r   r   Úutilsr	   r
   r   Ú__all__r1   r   r   ú<module>rS      sº   ððð ð /Ð .Ð .Ð .Ð .Ð .Ø wÐ wÐ wÐ wÐ wÐ wÐ wÐ wÐ wÐ wÐ wÐ wÐ wÐ wØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ð ðaRð aRð aRð aRð aR˜.ñ aRô aRñ „ðaRðH !Ð
!€€€r   