
    Z j                         S SK rSSKJr  SSKJrJr  SSKJrJ	r	J
r
  SSKJrJr  SSKJr   " S S	\S
S9r\ " S S\	5      5       rS/rg)    N   )BatchFeature)
ImageInputmake_nested_list_of_images)ProcessingKwargsProcessorMixinUnpack)PreTokenizedInput	TextInput)auto_docstringc                        \ rS rSrSSS00rSrg)Gemma3nProcessorKwargs   text_kwargspaddingF N)__name__
__module____qualname____firstlineno__	_defaults__static_attributes__r       /root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/transformers/models/gemma3n/processing_gemma3n.pyr   r      s    	5)Ir   r   F)totalc                     ^  \ rS rSr   SS\S\4U 4S jjjr\   SS\S-  S\\	-  \
\   -  \
\	   -  S\R                  \
\   -  \
\R                     -  \
\
\      -  S-  S	\\   S
\4
S jj5       r\S 5       rSrU =r$ )Gemma3nProcessor   Naudio_seq_lengthimage_seq_lengthc                   > XPl         UR                  U l        UR                  U l        UR                  U l        SR	                  UR                  /U-  5      nSUR                   U UR
                   S3U l        X`l        UR                  U l        UR                  U l	        UR                  U l
        SR	                  UR                  /U-  5      n	SUR                   U	 UR                   S3U l        [        T
U ]8  " SUUUUS.UD6  g)z
audio_seq_length (int, *optional*, defaults to 188):
    The number of audio soft tokens that will be added to the text prompt
image_seq_length (int, *optional*, defaults to 256):
    The number of image soft tokens that should be added to
 z

)feature_extractorimage_processor	tokenizerchat_templateNr   )r   audio_token_id	boa_tokenaudio_tokenjoin	eoa_tokenfull_audio_sequencer    image_token_id	boi_tokenimage_token	eoi_tokenfull_image_sequencesuper__init__)selfr#   r$   r%   r&   r   r    kwargsaudio_tokens_expandedimage_tokens_expanded	__class__s             r   r3   Gemma3nProcessor.__init__!   s     !1'66",,$00 ")>)>(?BR(R S%))*=*=)>?T>UV_ViViUjjn#o  0'66",,$00 ")>)>(?BR(R S%))*=*=)>?T>UV_ViViUjjn#o  	
/+'		

 	
r   imagestextaudior5   returnc           	         Uc  Uc  Uc  [        S5      eU R                  " [        4SU R                  R                  0UD6n[        U[        5      (       a  U/nO8[        U[        5      (       d#  [        US   [        5      (       d  [        S5      eUbn  U R                  " U40 US   D6nU(       d  U Vs/ s H  opR                  PM     nnU Vs/ s H(  oR                  U R                  U R                  5      PM*     nnO0 nUb  U R                  R                  U5      n[        U5      n	U R                  " U	40 US   D6n
U(       d8  U	 Vs/ s H+  nSR!                  U R"                  /[%        U5      -  5      PM-     nn[%        U	5      [%        U5      :w  a$  [        S[%        U	5       S	[%        U5       S
35      eU Vs/ s H(  oR                  U R"                  U R&                  5      PM*     nnO0 n
US   R)                  SS 5      nU R                  " SSU0US   DSS0D6nU R+                  X,S/S9  US   n[,        R.                  " U5      nSXU R0                  :H  '   SXU R2                  :H  '   UR5                  5        VVs0 s H  u  nnUUR7                  5       _M     nnnUR7                  5       US'   [9        0 UEU
EUEUS9$ s  snf s  snf s  snf s  snf s  snnf )Nz5Provide at least one of `text`, `images`, or `audio`.tokenizer_init_kwargsr   zAInvalid input text. Please provide a string, or a list of stringsaudio_kwargsimages_kwargs z1Received inconsistently sized batches of images (z) and text (z).r   return_tensorsr;   npimage)
modalities	input_ids   r   token_type_ids)datatensor_typer   )
ValueError_merge_kwargsr   r%   init_kwargs
isinstancestrlist	TypeErrorr#   r)   replacer,   r$   fetch_imagesr   r*   r/   lenr1   pop_check_special_mm_tokensrD   
zeros_liker-   r'   itemstolistr   )r4   r:   r;   r<   r5   output_kwargsaudio_inputs_promptbatched_imagesimage_inputsrC   text_inputs	array_idsrI   kvs                    r   __call__Gemma3nProcessor.__call__G   s    <FNu}TUU**"
"&.."<"<
 
 dC  6DD$''
47C0H0H_``11%Y=;XYL278%Q((%8 ^bb]aSYNN4#3#3T5M5MN]aDbDL))66v>F7?N//a-P_B`aL Q_`Q_v$"2"2!3c&k!ABQ_`>"c$i/ GNH[G\\hilmqirhssuv 
 ^bb]aSYNN4#3#3T5M5MN]aDbDL&}599:JDQnnd$d-2Nd_cd%%dWI%N  ,	y1;<D$7$778;<D$7$7781<1B1B1DE1DAq!((*}1DE(6(=(=(?$%!PK!P<!P<!P^lmmK 9 c a c Fs   7K/K2K/K	K!c                     U R                   R                  S/-   nU R                  R                  nU R                  R                  nU Vs/ s H  oDS:w  d  M
  UPM     nn[	        X-   U-   5      $ s  snf )NrI   	num_crops)r%   model_input_namesr$   r#   rQ   )r4   tokenizer_input_namesimage_processor_input_namesaudio_processor_input_namesnames        r   ri   "Gemma3nProcessor.model_input_names   sw     $ @ @DTCU U&*&:&:&L&L#&*&<&<&N&N#8S&k8S_jWjt8S#&k)GJeeff 'ls   	A0A0)
r   r)   r'   r(   r.   r,   r1   r    r/   r-   )N      )NNN)r   r   r   r   intr3   r   r   r   r
   rQ   rD   ndarrayfloatr	   r   r   re   propertyri   r   __classcell__)r8   s   @r   r   r      s      # #$
 $
 $
 $
L  %)Z^X\	>nT!>n ++d9o=EV@WW>n zzDK'$rzz*::T$u+=NNQUU	>n
 /0>n 
>n >n@ g gr   r   )numpyrD   feature_extraction_utilsr   image_utilsr   r   processing_utilsr   r   r	   tokenization_utils_baser
   r   utilsr   r   r   __all__r   r   r   <module>r}      sW      4 A H H C #-U  ng~ ng ngb 
r   