Ë
    ÛÓ^jÄ  ã                   óf   — 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y)z!
Processor class for LayoutLMv2.
é   )ÚProcessorMixin)ÚBatchEncodingÚPaddingStrategyÚPreTokenizedInputÚ	TextInputÚTruncationStrategy)Ú
TensorTypeÚauto_docstringc            (       ón  ‡ — 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                 ó&   •— t         ‰| �  ||«       y )N)ÚsuperÚ__init__)ÚselfÚimage_processorÚ	tokenizerÚkwargsÚ	__class__s       €ú/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/layoutlmv2/processing_layoutlmv2.pyr   zLayoutLMv2Processor.__init__   s   ø€ Ü‰Ñ˜¨)Õ4ó    Ú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                 óT  — | j                   j                  r|�t        d«      ‚| j                   j                  r|�t        d«      ‚|du r|du rt        d«      ‚| j                  ||¬«      }|�0| 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|“|¤Ž}|j                  d«      }|du r| j                  ||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ÜÐjÓkÐkð ×'Ñ'¨vÀnÐ'ÓUˆð Ð × 4Ñ 4× >Ò >À9ÐCTÜ˜$¤Ô$Ø�v�Ø  Ñ)ˆIà'˜Ÿ™ò 
ØÐ)‘¨x¸Ñ/@øð
à#,Ð#8‘i¸døð
ð !Ð,‘%°(¸7Ñ2Cøð
ñ $ð	
ñ
  2ð
ñ ð
ñ "ð
ñ "ð
ñ ð
ñ  2ð
ñ #8ð
ñ #8ð
ñ '@ð
ñ (Bð
ñ $:ð
ñ  (ð!
ñ" ð#
ñ$ *Øñ'
ˆð. —‘˜nÓ-ˆØ$¨Ñ,Ø×0Ñ0°¸ÐHdÑ9eÓfˆFØ"(ˆ�wÑàÐr   c                 ó´   — g }|D ]  }|j                  ||   «       Œ t        |«      t        |«      k7  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Úlenr2   )r   r+   r.   Úimages_with_overflowÚ
sample_idxs        r   r6   z*LayoutLMv2Processor.get_overflowing_imagesi   sy   € à!ÐØ4ò 	<ˆJØ ×'Ñ'¨¨zÑ(:Õ;ð	<ô Ð#Ó$¬Ð,FÓ(GÒGÜðÜÐ,Ó-Ð.¨e´CÐ8RÓ4SÐ3TðVóð ð
 $Ð#r   c                 ó
   — g d¢S )N)Ú	input_idsÚbboxÚtoken_type_idsÚattention_maskr/   r0   )r   s    r   Úmodel_input_namesz%LayoutLMv2Processor.model_input_namesw   s   € âQÐQr   )NN)NNNNTFFNé    NNNFFFFTN)Ú__name__Ú
__module__Ú__qualname__r   r
   r   r   ÚlistÚintÚboolr4   r   r   r	   r   r9   r6   ÚpropertyrD   Ú__classcell__)r   s   @r   r   r      sÑ  ø„ õ5ð ð [_ØHLØ@DØ:>Ø#'Ø05Ø6;Ø!%ØØ)-Ø-1Ø-1Ø*/Ø+0Ø',Ø#ØØ26ñ)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òX$ð ñRó ôRr   r   N)Ú__doc__Úprocessing_utilsr   Útokenization_utils_baser   r   r   r   r   Úutilsr	   r
   r   Ú__all__r0   r   r   ú<module>rS      sD   ðñõ /ß wÕ wß /ð ôaR˜.ó aRó ðaRðH !Ð
!�r   