+
    œ°³jê  ã                   óÂ   € R t ^ RIt^ RIHt ^RIHt ^RIHt ^RI	H
t
Ht ^RIHtHtHtHtHt ^RIHtHt ^RIHtHt  ! R	 R
]RR7      t] ! R R]4      4       tR.tR# )z Image processor class for Donut.N)Ú
functional)ÚTorchvisionBackend)ÚBatchFeature)Úgroup_images_by_shapeÚreorder_images)ÚIMAGENET_STANDARD_MEANÚIMAGENET_STANDARD_STDÚ
ImageInputÚPILImageResamplingÚSizeDict)ÚImagesKwargsÚUnpack)Ú
TensorTypeÚauto_docstringc                   ó0   a € ] tR t^!t o RtV 3R ltRtV tR# )ÚDonutImageProcessorKwargsa5  
do_thumbnail (`bool`, *optional*, defaults to `self.do_thumbnail`):
    Whether to resize the image using thumbnail method.
do_align_long_axis (`bool`, *optional*, defaults to `self.do_align_long_axis`):
    Whether to align the long axis of the image with the long axis of `size` by rotating by 90 degrees.
c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   # )é   Údo_thumbnailÚdo_align_long_axis)Úbool)ÚformatÚ__classdict__s   "€Úq/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/donut/image_processing_donut.pyÚ__annotate__Ú&DonutImageProcessorKwargs.__annotate__!   s   ø‡ ‚ ñ Ññ ñ Ñò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r   !   s   ø‡ € ñ÷ ƒ r   r   F)Útotalc                   ó  a a€ ] tR t^-t oRt]t]P                  t	]
t]tRRRR/tRtRtRtRtRtRtV3R lV 3R	 llt]V3R
 lV 3R ll4       tV3R lR ltRV3R lR lltRV3R lV 3R llltRV3R lR lltRtVtV ;t# )ÚDonutImageProcessorzMTorchvision backend for Donut with align_long_axis, thumbnail, and pad_image.Úheighti 
  Úwidthi€  TFc                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r   Úkwargs)r   r   )r   r   s   "€r   r   Ú DonutImageProcessor.__annotate__>   s   ø€ ÷ #ñ #¡Ñ(AÕ!Bñ #r   c                ó¬   <€ VP                  R R4      p\        V\        \        34      '       d   VRRR1,          pVe   W!R &   \        SV `  ! R/ VB  R# )ÚsizeNéÿÿÿÿr   )ÚpopÚ
isinstanceÚtupleÚlistÚsuperÚ__init__)Úselfr,   r/   Ú	__class__s   &, €r   r6   ÚDonutImageProcessor.__init__>   sN   ø€ Ø�z‰z˜& $Ó'ˆÜ�dœU¤D˜M×*Ò*Ø™˜"˜•:ˆDØÒØ!�6‰NÜ‰ÒÑ"˜6Ô"r   c                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# )r   Úimagesr,   Úreturn)r	   r   r   r   )r   r   s   "€r   r   r-   G   s/   ø€ ÷ 
4ñ 
4áð
4ñ Ñ2Õ3ð
4ñ 
ñ	
4r   c                ó²   <€ \        V4      pR V9   d5   VR ,          p\        V\        \        34      '       d   VRRR1,          VR &   \        SV `  ! V3/ VB # )r/   Nr0   )Údictr2   r3   r4   r5   Ú
preprocess)r7   r;   r,   r/   r8   s   &&, €r   r?   ÚDonutImageProcessor.preprocessF   sV   ø€ ô �f“ˆØ�VÔØ˜&•>ˆDÜ˜$¤¬ ×.Ò.Ø!%¡d¨ d¥��v‘Ü‰wÒ! &Ñ3¨FÑ3Ð3r   c                ó(   <€ V ^8„  d   QhRRRS[ RR/# )r   Úimageútorch.Tensorr/   r<   ©r   )r   r   s   "€r   r   r-   S   s)   ø€ ÷ ñ àðñ ðð 
ñ	r   c                ó  € VP                   RR w  r4VP                  VP                  reWe8  d   WC8”  g   We8”  dN   WC8  dH   VP                  4       ^,
          VP                  4       ^,
          r‡\        P
                  ! V^Wx.R7      pV# )zKAlign the long axis of the image to the longest axis of the specified size.N)Údimséþÿÿÿ)Úshaper)   r*   ÚdimÚtorchÚrot90)	r7   rB   r/   Úinput_heightÚinput_widthÚoutput_heightÚoutput_widthÚ
height_dimÚ	width_dims	   &&&      r   Úalign_long_axisÚ#DonutImageProcessor.align_long_axisS   sq   € ð %*§K¡K°°Ð$4Ñ!ˆØ&*§k¡k°4·:±:�|àÔ(¨[Ô-GØÔ(¨[Ô-Gà$)§I¡I£K°!¥O°U·Y±Y³[À1µ_˜	Ü—K’K  q°
Ð/FÔGˆEàˆr   c                ó.   <€ V ^8„  d   QhRRRS[ RS[RR/# )r   rB   rC   r/   Úrandom_paddingr<   )r   r   )r   r   s   "€r   r   r-   d   s3   ø€ ÷ 'ñ 'àð'ñ ð'ñ ð	'ð
 
ñ'r   c                ó°  € VP                   VP                  rTVP                  RR w  rgWW,
          pWF,
          p	V'       d\   \        P                  ! ^ V	^,           R4      P                  4       p
\        P                  ! ^ V^,           R4      P                  4       pMV	^,          p
V^,          pWš,
          pW‹,
          pWºWÜ3p\        P                  ! W4      # )z$Pad the image to the specified size.NrG   r   )r)   r*   rH   rJ   ÚrandintÚitemÚtvFÚpad)r7   rB   r/   rU   rN   rO   rL   rM   Údelta_widthÚdelta_heightÚpad_topÚpad_leftÚ
pad_bottomÚ	pad_rightÚpaddings   &&&&           r   Ú	pad_imageÚDonutImageProcessor.pad_imaged   sµ   € ð '+§k¡k°4·:±:�|Ø$)§K¡K°°Ð$4Ñ!ˆà"Õ0ˆØ$Õ3ˆçÜ—m’m A |°aÕ'7¸Ó<×AÑAÓCˆGÜ—}’} Q¨°a­¸Ó<×AÑAÓC‰Hà" aÕ'ˆGØ" aÕ'ˆHà!Õ+ˆ
ØÕ*ˆ	à iÐ<ˆÜ�wŠw�uÓ&Ð&r   c                ó,   <€ V ^8„  d   QhRRRS[ RRRR/# )r   rB   rC   r/   Úresampleú7PILImageResampling | tvF.InterpolationMode | int | Noner<   rD   )r   r   s   "€r   r   r-   ~   s4   ø€ ÷ 
ñ 
àð
ñ ð
ð Lð	
ð 
ñ
r   c           	     óT  <€ VP                   RR w  rVVP                  VP                  r‡\        WW4      p	\        Wh4      p
W•8X  d	   W¦8X  d   V# WV8”  d   \	        Wi,          V,          4      p
MWe8”  d   \	        WZ,          V,          4      p	\
        SV `  ! V3R\        W©R7      RV/VB # )z%Resize the image to make a thumbnail.Nr/   )r*   r)   re   rG   )rH   r)   r*   ÚminÚintr5   Úresizer   )r7   rB   r/   re   r,   rL   rM   rN   rO   r)   r*   r8   s   &&&&,      €r   Ú	thumbnailÚDonutImageProcessor.thumbnail~   s°   ø€ ð %*§K¡K°°Ð$4Ñ!ˆØ&*§k¡k°4·:±:�|ä�\Ó1ˆÜ�KÓ.ˆàÔ! eÔ&:ØˆLàÔ%Ü˜Õ,¨|Õ;Ó<‰EØÔ'Ü˜Õ-°Õ;Ó<ˆFä‰wŠ~Øñ
ä Ô5ð
ð ð
ð ñ	
ð 	
r   c          $      ó6  <€ V ^8„  d   QhRS[ R,          RS[RS[RRRS[RS[R	S[R
S[RS[RS[S[ S[,          ,          R,          RS[S[ S[,          ,          R,          RS[R,          RS[R,          RS[R,          RS[S[,          R,          RS[RS[RS[/# )r   r;   rC   Ú	do_resizer/   re   rf   Údo_center_cropÚ	crop_sizeÚ
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanNÚ	image_stdÚdo_padÚpad_sizeÚdisable_groupingÚreturn_tensorsr   r   r<   )r4   r   r   ÚfloatÚstrr   r   )r   r   s   "€r   r   r-   ›   s  ø€ ÷ 0añ 0aá�^Õ$ð0añ ð0añ ð	0að
 Lð0añ ð0añ ð0añ ð0añ ð0añ ð0añ ™D¡�KÕ'¨$Õ.ð0añ ™4¡�;Õ&¨Õ-ð0añ �t•ð0añ ˜T•/ð0añ  �+ð0añ  ™jÕ(¨4Õ/ð!0añ" ð#0añ$ !ð%0añ( 
ñ)0ar   c           	     ó˜  € \        WR7      w  pp/ pVP                  4        F   w  ppV'       d   V P                  VV4      pV'       d>   \        VP                  VP
                  4      pV P                  V\        VR7      V4      pV'       d   V P                  VW44      pV'       d   V P                  VVRR7      pVVV&   K¢  	  \        VV4      p\        VVR7      w  pp/ pVP                  4        F9  w  ppV'       d   V P                  VV4      pV P                  VWxWšV4      pVVV&   K;  	  \        VV4      p\        RV/VR7      # )zCustom preprocessing for Donut.)rx   )Úshortest_edgeF)rU   Úpixel_values)ÚdataÚtensor_type)r   ÚitemsrR   rh   r)   r*   rj   r   rk   rb   r   Úcenter_cropÚrescale_and_normalizer   )r7   r;   rn   r/   re   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   r   r   r,   Úgrouped_imagesÚgrouped_images_indexÚresized_images_groupedrH   Ústacked_imagesr}   Úresized_imagesÚprocessed_images_groupedÚprocessed_imagess   &&&&&&&&&&&&&&&&&&,         r   Ú_preprocessÚDonutImageProcessor._preprocess›   sP  € ô, 0EÀVÔ/oÑ,ˆÐ,Ø!#ÐØ%3×%9Ñ%9Ö%;Ñ!ˆE�>ß!Ø!%×!5Ñ!5°nÀdÓ!K�ßÜ # D§K¡K°·±Ó <�Ø!%§¡¨^¼XÐTaÔ=bÐdlÓ!m�ßØ!%§¡°ÀÓ!O�ßØ!%§¡°ÀÐUZ Ó![�Ø,:Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆä/DÀ^ÐfvÔ/wÑ,ˆÐ,Ø#%Ð Ø%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%×!1Ñ!1°.À)Ó!L�Ø!×7Ñ7Ø 
¸LÐV_óˆNð /=Ð$ UÓ+ñ &<ô *Ð*BÐDXÓYÐÜ .Ð2BÐ!CÐQ_Ô`Ð`r   r   )F)N)TF)r   r   r    r!   r"   r   Úvalid_kwargsr
   ÚBILINEARre   r   rt   r   ru   r/   rn   rq   rs   r   r   rv   r6   r   r?   rR   rb   rk   r‹   r$   r%   Ú__classcell__)r8   r   s   @@r   r(   r(   -   s¢   ù‡ € áWà,€Là!×*Ñ*€HØ'€JØ%€IØ�d˜G TÐ*€DØ€IØ€JØ€LØ€LØÐØ€F÷#ó #ð ÷
4ò 
4ó ð
4÷ð ÷"'ò '÷4
õ 
÷:0a÷ 0aò 0ar   r(   )r"   rJ   Útorchvision.transforms.v2r   rY   Úimage_processing_backendsr   Úimage_processing_utilsr   Úimage_transformsr   r   Úimage_utilsr   r   r	   r
   r   Úprocessing_utilsr   r   Úutilsr   r   r   r(   Ú__all__r   r   r   Ú<module>r˜      sf   ðñ 'ã Ý 7å ;Ý 2ß E÷õ ÷ 5ß /ô	 °Eõ 	ð ô]aÐ,ó ]aó ð]að@ !Ð
!‚r   