
    Li&                       d dl Z d dlZd dlmZmZmZ d dlmZ ddlm	Z	 ddlm
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddl
mZ ddl
mZ ddl
mZ ddlmZmZ  ej4                  d      Z	 dEdeeeef   ef   deeeef      deeef   fdZ	 dEdeeeef   ef   deeeef      deeef   fdZ 	 dEdeeeef   ef   deeeef      deeef   fdZ!	 dEdeeeef   ef   deeeef      deeef   fdZ"	 dEdedeeeef   ef   deeeef      deeef   fdZ#	 dEdeeeef   ef   deeeef      deeef   fdZ$	 dEdeeeef   ef   deeeef      deeef   fdZ%	 dEdeeeef   ef   deeeef      deeef   fdZ&	 dEdeeeef   ef   deeeef      deeef   fdZ'	 dEdedeeeef   ef   deeeef      deeef   fdZ(	 dEdedeeeef   ef   deeeef      deeef   fdZ)	 dEdeeeef   ef   deeeef      deeef   fdZ*	 dEdeeeef   ef   deeeef      deeef   fd Z+	 dEdeeeef   ef   deeeef      deeef   fd!Z,	 dEdeeeef   ef   deeeef      deeef   fd"Z-	 dEdeeeef   ef   deeeef      deeef   fd#Z.	 dEdedeeeef   ef   deeeef      deeef   fd$Z/	 dEdedeeeef   ef   deeeef      deeef   fd%Z0	 dEdeeeef   ef   deeeef      deeef   fd&Z1	 dEdedeeeef   ef   deeeef      deeef   fd'Z2	 dEdedeeeef   ef   deeeef      deeef   fd(Z3	 dEdedeeeef   ef   deeeef      deeef   fd)Z4	 dEdeeeef   ef   deeeef      deeef   fd*Z5	 dEdeeeef   ef   deeeef      deeef   fd+Z6	 dEdedeeeef   ef   deeeef      deeef   fd,Z7	 dEdeeeef   ef   deeeef      deeef   fd-Z8	 dEdedeeeef   ef   deeeef      deeef   fd.Z9	 dEdeeeef   ef   deeeef      deeef   fd/Z:	 dEdedeeeef   ef   deeeef      deeef   fd0Z;	 dEdeeeef   ef   deeeef      deeef   fd1Z<	 dEdedeeeef   ef   deeeef      deeef   fd2Z=	 dEdedeeeef   ef   deeeef      deeef   fd3Z>	 dEdeeeef   ef   deeeef      deeef   fd4Z?	 dEdeeeef   ef   deeeef      deeef   fd5Z@	 dEdedeeeef   ef   deeeef      deeef   fd6ZA	 dEdeeeef   ef   deeeef      deeef   fd7ZB	 dEdeeeef   ef   deeeef      deeef   fd8ZC	 dEdeeeef   ef   deeeef      deeef   fd9ZD	 dEdeeeef   ef   deeeef      deeef   fd:ZE	 dEdeeeef   ef   deeeef      deeef   fd;ZF	 dEdeeeef   ef   deeeef      deeef   fd<ZG	 dEdeeeef   ef   deeeef      deeef   fd=ZH	 dEdeeeef   ef   deeeef      deeef   fd>ZI	 dEdeeeef   ef   deeeef      deeef   fd?ZJ	 dEdeeeef   ef   deeeef      deeef   fd@ZK G dA dBe	j                        ZM G dC dDe	j                        ZNy)F    N)AnyOptionalUnion)	urlencode   )_api_module)_common)_extra_utils)_transformers)types)BaseApiClient)get_value_by_path)move_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.batchesfrom_objectparent_objectreturnc                 X   i }t        | dg      t        |dgt        | dg             t        | ddg      2t        |dgt        | ddg      D cg c]  }t        ||       c}       t        | ddg      	 (t        |dgt        | ddg      D cg c]  }| c}       |S c c}w c c}w )NresponsesFile	file_nameinlinedResponsesinlined_responsesinlinedEmbedContentResponsesinlined_embed_content_responses)getvsetv_InlinedResponse_from_mldevr   r   	to_objectitems       R/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/google/genai/batches.py_BatchJobDestination_from_mldevr$   &   s     !)	+()5[M4o5F#GH	+*,>?@L	 02DE	
 (i8	
	 ;79KLM 		*+ /1CD	
 	

 
1	
	
s   B"	B'c           	          i }t        | dg      t        |dgt        | dg             t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             |S )	NpredictionsFormatformatgcsDestinationoutputUriPrefixgcs_uribigqueryDestination	outputUribigquery_urir   r   r   r   r!   s      r#    _BatchJobDestination_from_vertexr0   N   s     !)	++,-9XJ[3F2G HI	+(*;<=I	[+->?@ 
+-{;<H	[0+>? 
    c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        d
      t        | dg      t        d      t        | dg      t        d      |S )Nr'   r&   r*   r(   r)   r-   r+   r,   r   2file_name parameter is not supported in Vertex AI.r   z:inlined_responses parameter is not supported in Vertex AI.r   zHinlined_embed_content_responses parameter is not supported in Vertex AI.r   r   
ValueErrorr/   s      r#   _BatchJobDestination_to_vertexr6   g   s     !)	+z".()4hZ+HI	+	{#/	,-[9+& 
+'(4	,[>*+ 
+}%1
I
JJ	++,-9
D  
+9:;G
	 
 
r1   c           	          i }t        | dg      t        |dgt        | dg             t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             |S )	NinstancesFormatr'   	gcsSourceurisr*   bigquerySourceinputUrir-   r.   r/   s      r#   _BatchJobSource_from_vertexr=      s     !)	+)*+7XJ[3D2E FG	+V,-9YKkK3H!IJ	+(*56B	[+Z89 
r1   
api_clientc                 p   i }t        |dg      t        d      t        |dg      t        d      t        |dg      t        d      t        |dg      t        |dgt        |dg             t        |d	g      3t        |d
d
gt        |d	g      D cg c]  }t        | ||       c}       |S c c}w )Nr'   z0format parameter is not supported in Gemini API.r*   z1gcs_uri parameter is not supported in Gemini API.r-   z6bigquery_uri parameter is not supported in Gemini API.r   fileNameinlined_requestsrequests)r   r5   r   _InlinedRequest_to_mldevr>   r   r   r!   r"   s        r#   _BatchJobSource_to_mldevrE      s    
 !)	+z".
G
HH	+	{#/
H
II	+'(4
M
NN	+}%1ZL${[M"BC	+*+,8	Z  [+=*>?	
 %ZyA	
 
	
s   B3c                 R   i }t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        d
      t        | dg      t        d      |S )Nr'   r8   r*   r9   r:   r-   r;   r<   r   r3   rA   z9inlined_requests parameter is not supported in Vertex AI.r4   r/   s      r#   _BatchJobSource_to_vertexrG      s     !)	+z".&'kH:)FG	+	{#/[&)4i[+IJ	+'(4	:&[>*+ 
+}%1
I
JJ	+*+,8
C  
r1   c                    i }t        | dg      t        |dgt        | dg             t        | ddg      t        |dgt        | ddg             t        | ddg      -t        |dgt        j                  t        | ddg                   t        | ddg      t        |dgt        | ddg             t        | ddg      t        |d	gt        | ddg             t        | dd
g      t        |dgt        | dd
g             t        | ddg      t        |dgt        | ddg             t        | ddg      7t        |dgt	        t        j
                  t        | ddg            |             |S )NnamemetadatadisplayNamedisplay_namestate
createTimecreate_timeendTimeend_time
updateTimeupdate_timemodeloutputdest)r   r   tt_job_stater$   t_recv_batch_job_destinationr/   s      r#   _BatchJob_from_mldevrZ      s    !)	+x ,VHd;9:	+
M23?	[:}56 
+
G,-9			d;W(=>? 
+
L12>	[:|45 
+
I./;ZL${Z4K"LM	+
L12>	[:|45 
+
G,-9WItK*g1FGH	+
H-.:	'**[:x"89 		
	 
r1   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      6t        |dgt        t        j                  t        | dg            |             t        | dg      t        |dgt        | dg             |S )NrI   rK   rL   rM   errorrN   rO   	startTime
start_timerP   rQ   rR   rS   rT   inputConfigsrcoutputConfigrV   completionStatscompletion_stats)r   r   rW   rX   r=   r0   rY   r/   s      r#   _BatchJob_from_vertexrd     s    !)	+x ,VHd;9:	+'3^$d;&HI	+y!-WIq}}T+y-IJK	+y!-WItK';<	+~&2]OT+~%FG	+}%1\ND{m$DE	+	{#/ZL${YK"@A	+~&2]OT+~%FG	+y!-WItK';<	+'3	#}o.		
 
+'(4	(**4n=M+NO	
 
+)*+7&'k<M;N)O 
r1   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )NdatarL   6display_name parameter is not supported in Gemini API.	mime_typemimeTyper4   r/   s      r#   _Blob_to_mldevrj   S  sw     !)	+x ,VHd;9:	+'(4
M
NN	+}%1ZL${[M"BC	r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S NrI   _urlr   r   rW   t_batch_job_namer>   r   r   r!   s       r#   "_CancelBatchJobParameters_to_mldevrq   d  L    
 !)	+x ,		:tK&'BC 
r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S rl   rn   rp   s       r#   #_CancelBatchJobParameters_to_vertexrt   t  rr   r1   c           
      <   i }t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             |S c c}w )NcontentcitationMetadatacitation_metadata
tokenCounttoken_countfinishReasonfinish_reasonavgLogprobsavg_logprobsgroundingMetadatagrounding_metadataindexlogprobsResultlogprobs_resultsafetyRatingssafety_ratingsurlContextMetadataurl_context_metadata)r   r   _CitationMetadata_from_mldevr    s       r#   _Candidate_from_mldevr     s    !)	+	{#/YKkI;!?@	+*+,8	$123Y	
 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	+'3^$d;&HI	++,-9	[./0 
+y!-WItK';<	+()*6&'k<L;M)NO	+()5	{_,=>?$? 
+,-.:	 [/01 
 	@s   !	Fc                 |    i }t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )NcitationSources	citationsr.   r    s       r#   r   r     sQ     !)	+)*+7	{->,?@A$A 
 	Bs   	9c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w )Npartsrole)r   r   _Part_to_mldevr    s       r#   _Content_to_mldevr     s     !)	+y!-		 [7)4	
 4+	
 
+x ,VHd;9:		
s   A)c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        d      |S )NrL   batchrK   rV   z.dest parameter is not supported in Gemini API.r4   r/   s      r#   _CreateBatchJobConfig_to_mldevr     s\     !)	+'(4	- [>*+ 
+x ,
E
FF	r1   c                     i }t        | dg      t        |dgt        | dg             t        | dg      6t        |dgt        t        j                  t        | dg            |             |S )NrL   rK   rV   ra   )r   r   r6   rW   t_batch_job_destinationr/   s      r#   _CreateBatchJobConfig_to_vertexr     sz     !)	+'(4kN;K)LM	+x ,	&%%d;&ABI	
 
r1   c                 T   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      9t        |ddgt	        | t        j
                  | t        |dg            |             t        |dg      t        t        |dg      |       |S NrT   rm   r`   r   r_   config)r   r   rW   t_modelrE   t_batch_job_sourcer   rp   s       r#   "_CreateBatchJobParameters_to_mldevr     s    
 !)	+y!-				*d;	:; 
+w+	-    T+w-GH	
 
+z"."4hZ#@)L	r1   c                 N   i }t        |dg      -t        |dgt        j                  | t        |dg                   t        |dg      7t        |dgt	        t        j
                  | t        |dg            |             t        |dg      t        t        |dg      |       |S )NrT   r`   r_   r   )r   r   rW   r   rG   r   r   rp   s       r#   #_CreateBatchJobParameters_to_vertexr   &  s    
 !)	+y!-					*d;	:; 
+w+	!  T+w-GH	
 
+z".#Dxj$A9M	r1   c                 X    i }t        | dg      t        |ddgt        | dg             |S )NrL   r   rK   r.   r/   s      r#   (_CreateEmbeddingsBatchJobConfig_to_mldevr   C  sA     !)	+'(4	- [>*+ 
r1   c                 ,   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      %t        |ddgt	        | t        |dg      |             t        |dg      t        t        |dg      |       |S r   )r   r   rW   r   "_EmbeddingsBatchJobSource_to_mldevr   rp   s       r#   ,_CreateEmbeddingsBatchJobParameters_to_mldevr   S  s    
 !)	+y!-				*d;	:; 
+w+	- *[5'2I	
 
+z".,[8*%y 
r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S rl   rn   rp   s       r#   "_DeleteBatchJobParameters_to_mldevr   q  rr   r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S rl   rn   rp   s       r#   #_DeleteBatchJobParameters_to_vertexr     rr   r1   c                 :   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S NsdkHttpResponsesdk_http_responserI   doner\   r.   r/   s      r#   _DeleteResourceJob_from_mldevr          !)	+)*+7'(${=N<O*P 
+x ,VHd;9:	+x ,VHd;9:	+y!-WItK';<	r1   c                 :   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r   r.   r/   s      r#   _DeleteResourceJob_from_vertexr     r   r1   c                 "   i }t        |dg      <t        |g dt        j                  | t        |dg            D cg c]  }| c}       t        |dg      1t        |dgt	        t        |dg      |             t        |ddi       |S c c}w )Ncontents)
requests[]requestrv   r   _selfzrequests[].*zrequests[].request.*)r   r   rW   t_contents_for_embed_EmbedContentConfig_to_mldevmovevrD   s        r#   _EmbedContentBatch_to_mldevr     s    
 !)	+
|$0, ..Dzl;	
 	
	 
+z".		$T+z%BIN
 
)n&<=>		
s   	Bc                 T   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | d	g      t        d
      |S )N	task_typer   taskTypetitleoutput_dimensionalityoutputDimensionalityrh   z3mime_type parameter is not supported in Gemini API.auto_truncatez7auto_truncate parameter is not supported in Gemini API.r4   r/   s      r#   r   r     s     !)	+}%1	z"[;-( 
+y!-w/kG91MN	+/01=	-.[234 
+}%1
J
KK	+()5
N
OO	r1   c                     i }t        |dg      t        |dgt        |dg             t        |dg      $t        |dgt        | t        |dg      |             |S )Nr   rA   rB   )r   r   r   rp   s       r#   r   r     sr    
 !)	+}%1[M4k]#CD	+*+,8	#[+=*>?	
 
r1   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )NrL   rg   file_urifileUrirh   ri   r   r5   r   r/   s      r#   _FileData_to_mldevr     sw     !)	+'(4
M
NN	+
|$0YKkJ<!@A	+}%1ZL${[M"BC	r1   c                 ^	   i }t        |dg      6t        |dgt        t        j                  t        |dg            |             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |d	gt        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      -t        |dgt        j
                  | t        |dg                   t        |dg      t        |dgt        |dg             t        |dg      t        d      t        |dg      t        d      t        |d g      1t        |d!gt        |d g      D cg c]  }t        ||       c}       t        |d"g      Yt        |d"gt        j                  | t        |d"g            D cg c]"  }t        t        j                  | |      |      $ c}       t        |d#g      t        |d$gt        |d#g             t        |d%g      t        d&      t        |d'g      -t        |d(gt        j                  | t        |d'g                   t        |d)g      t        |d*gt        |d)g             t        |d+g      t        |d,gt        |d+g             t        |d-g      ,t        |d.gt        j                  t        |d-g                   t        |d/g      t        d0      t        |d1g      t        |d2gt        |d1g             t        |d3g      t        |d4gt        |d3g             |S c c}w c c}w )5Nsystem_instructionsystemInstructiontemperaturetop_ptopPtop_ktopKcandidate_countcandidateCountmax_output_tokensmaxOutputTokensstop_sequencesstopSequencesresponse_logprobsresponseLogprobslogprobspresence_penaltypresencePenaltyfrequency_penaltyfrequencyPenaltyseedresponse_mime_typeresponseMimeTyperesponse_schemaresponseSchemaresponse_json_schemaresponseJsonSchemarouting_configz8routing_config parameter is not supported in Gemini API.model_selection_configz@model_selection_config parameter is not supported in Gemini API.safety_settingssafetySettingstoolstool_config
toolConfiglabelsz0labels parameter is not supported in Gemini API.cached_contentcachedContentresponse_modalitiesresponseModalitiesmedia_resolutionmediaResolutionspeech_configspeechConfigaudio_timestampz9audio_timestamp parameter is not supported in Gemini API.thinking_configthinkingConfigimage_configimageConfig)r   r   r   rW   	t_contentt_schemar5   _SafetySetting_to_mldevt_tools_Tool_to_mldevt_toolt_cached_content_namet_speech_configrD   s        r#   _GenerateContentConfig_to_mldevr    s`   
 !)	+,-.:	KK[+?*@ABI	
 
+'3]OT+%GH	+y!-VHd;	:;	+y!-VHd;	:;	+)*+7%&[;L:M(NO	++,-9%&[;N:O(P 
+()*6_%tK:J9K'LM	++,-9	[./0 
+
|$0ZL${ZL"AB	+*+,8%&[;M:N(O 
++,-9	[./0 
+x ,VHd;9:	+,-.:	[/01 
+)*+7		

:tK2C1DEF 
+./0<	[123 
+()*6
O
PP	+012>
J  
+)*+7	 [+<*=>	
 $D)4	
 
+y!-		 		*d;	.JK	
 188J5yA	
 
+'3[=/(JK	+z".
G
HH	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5		${_,=>? 
+)*+7
C  
+)*+7%&[;L:M(NO	+'(4]OT+7G%HI	{	
	
s   R%'R*c                    i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             |S c c}w )Nr   r   
candidatesmodelVersionmodel_versionpromptFeedbackprompt_feedback
responseIdresponse_idusageMetadatausage_metadata)r   r   r   r    s       r#   #_GenerateContentResponse_from_mldevr    s3    !)	+)*+7'(${=N<O*P 
+~&2	 [<.9	
 "$	2	
 
+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	%	
s   Dc                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S rl   rn   rp   s       r#   _GetBatchJobParameters_to_mldevr    rr   r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S rl   rn   rp   s       r#    _GetBatchJobParameters_to_vertexr    rr   r1   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Nauth_configz5auth_config parameter is not supported in Gemini API.enable_widgetenableWidgetr   r/   s      r#   _GoogleMaps_to_mldevr     sS     !)	+'3
L
MM	+()5^$d;8I&JK	r1   c                     i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Nexclude_domainsz9exclude_domains parameter is not supported in Gemini API.blocking_confidencez=blocking_confidence parameter is not supported in Gemini API.time_range_filtertimeRangeFilterr   r/   s      r#   _GoogleSearch_to_mldevr    s     !)	+)*+7
C  
+-./;
G  
++,-9%&[;N:O(P 
r1   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Et        |ddgt        j                  t        |dg            D cg c]  }t        ||       c}       t        |dg      t        |dgt        |dg             t        |dg      2t        |ddgt        | t        |dg      t        |dgi                    |S c c}w )NrT   r   r   rJ   r   generationConfig)default_value)r   r   rW   r   
t_contentsr   r  rD   s        r#   rC   rC   %  s   
 !)	+y!-	G			*d;	:; 
+
|$0	J T+
|%DE	
 dI.	
 
+
|$0ZL${ZL"AB	+z".	&''xj)YKr:	
 
)	
s   6C7c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nresponser\   )r   r   r  r/   s      r#   r   r   M  sl     !)	+
|$0	+zl+Y	
 
+y!-WItK';<	r1   c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      |S )N	page_size_querypageSize
page_token	pageTokenfilterz0filter parameter is not supported in Gemini API.r4   r/   s      r#   _ListBatchJobsConfig_to_mldevr)  a  s     !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".
G
HH	r1   c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             |S )Nr#  r$  r%  r&  r'  r(  r.   r/   s      r#   _ListBatchJobsConfig_to_vertexr+  y  s     !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".8,d;
.KL	r1   c                 R    i }t        | dg      t        t        | dg      |       |S Nr   )r   r)  r/   s      r#   !_ListBatchJobsParameters_to_mldevr.    s1     !)	+z".!${XJ"?K	r1   c                 R    i }t        | dg      t        t        | dg      |       |S r-  )r   r+  r/   s      r#   "_ListBatchJobsParameters_to_vertexr0    s1     !)	+z"."4hZ#@)L	r1   c                 (   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nr   r   nextPageTokennext_page_token
operations
batch_jobs)r   r   rZ   r    s       r#   !_ListBatchJobsResponse_from_mldevr6    s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+~&2	 [<.9	
 !y1	
 
	
   3Bc                 (   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nr   r   r2  r3  batchPredictionJobsr5  )r   r   rd   r    s       r#   "_ListBatchJobsResponse_from_vertexr:    s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+-./;	 [+@*AB	
 "$	2	
 
	
r7  c           
      *   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | d	g      t        |d
gt        | d	g             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nfunction_callfunctionCallcode_execution_resultcodeExecutionResultexecutable_codeexecutableCode	file_datafileDatafunction_responsefunctionResponseinline_data
inlineDatatextthoughtthought_signaturethoughtSignaturevideo_metadatavideoMetadata)r   r   r   rj   r/   s      r#   r   r     s    !)	+()5^$d;8I&JK	+/01=	[234 
+)*+7%&[;L:M(NO	+}%1	4k];YG 
++,-9	[./0 
+'3	tK-99E 
+x ,VHd;9:	+	{#/YKkI;!?@	++,-9	[./0 
+()*6_%tK:J9K'LM	r1   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Ncategorymethodz0method parameter is not supported in Gemini API.	thresholdr4   r/   s      r#   r   r     sv     !)	+
|$0ZL${ZL"AB	+z".
G
HH	+}%1[M4k]#CD	r1   c           
         i }t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        |d
gt        | d	g             t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      t        |dgt        | dg             |S c c}w )Nfunction_declarationsfunctionDeclarations	retrievalz3retrieval parameter is not supported in Gemini API.google_search_retrievalgoogleSearchRetrievalcomputer_usecomputerUsefile_search
fileSearchcode_executioncodeExecutionenterprise_web_searchz?enterprise_web_search parameter is not supported in Gemini API.google_maps
googleMapsgoogle_searchgoogleSearchurl_context
urlContext)r   r   r5   r  r  r    s       r#   r   r   &  s    !)	+/01=	 {-D,EFG$G 
+}%1
J
KK	+123?	 ![456 
+'(4]OT+7G%HI	+'3\ND}o$FG	+()*6_%tK:J9K'LM	+/01=
I  
+'3	T+?K 
+()5	tK/1BCYO 
+'3\ND}o$FG	Y 	Hs   	Fc            	          e Zd Zddddee   deej                  ej                  f   deej                     dej                  fdZddddee   dej                  deej                     dej                  fdZdd	d
edeej                     dej                  fdZdd	d
edeej"                     ddfdZdd	deej&                     dej(                  fdZdd	d
edeej,                     dej.                  fdZdd	dedej                  deej                     dej                  fdZdd	dedej                  deej                     dej                  fdZdd	deej&                     deej                     fdZy)BatchesNrT   r   rT   r`   r   r   c                8   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |      }| j                  j                  st)        |      }t         j*                  j-                  ||j/                         	      }| j                  j1                  |       |S 
NrT   r`   r   rm   r9  z{model}:batchGenerateContentr$  ?r   postr!  kwargs)r   _CreateBatchJobParameters_api_clientvertexair   get
format_mapr   r   popr   http_optionsr	   convert_to_dictencode_unserializable_typesr   bodyjsonloadsrd   rZ   BatchJob_from_response
model_dump_verify_responseselfrT   r`   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsru  r!  response_dictreturn_values                r#   _createzBatches._create`  s    55O   8


Ol &))&1	$//0@A$7


Ol &))&1	-889IJ-##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  +M:m$$*=9m>>00'A'A'C 1 L 	%%l3r1   c                   t        j                  |||      }| j                  j                  rt	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  st'        |      }t         j(                  j+                  ||j-                         	      }| j                  j/                  |       |S 
Nrj  z=This method is only supported in the Gemini Developer client.rm   z{model}:asyncBatchEmbedContentr$  rk  r   rl  rm  )r   #_CreateEmbeddingsBatchJobParametersrp  rq  r5   r   rr  rs  r   rt  r   ru  r	   rv  rw  r   rx  ry  rz  rZ   r{  r|  r}  r~  r  s                r#   _create_embeddingszBatches._create_embeddings  s    ??O   
I  B


Ol &))&1	/::;KL/##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM$$*=9m>>00'A'A'C 1 L 	%%l3r1   r   rI   c                6   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
| j                  j                  st)        |
      }
t         j*                  j-                  |
|j/                         
      }| j                  j1                  |       |S )a6  Gets a batch job.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the Vertex AI client. Or
          "batches/abc" using the Gemini Developer AI client.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = client.batches.get(name='123456789')
      print(f"Batch job: {batch_job.name}, state {batch_job.state}")
    rI   r   rm   batchPredictionJobs/{name}batches/{name}r$  rk  r   Nrr  rm  )r   _GetBatchJobParametersrp  rq  r  rr  rs  r  r   rt  r   ru  r	   rv  rw  r   rx  ry  rz  rd   rZ   r{  r|  r}  r~  r  rI   r   r  r  r  r  r  ru  r!  r  r  s               r#   rr  zBatches.get  s   , 22O   5


Ol &))&1	+667GH+4


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  +M:m$$*=9m>>00'A'A'C 1 L 	%%l3r1   c                   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	y)
a  Cancels a batch job.

    Only available for batch jobs that are running or pending.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the Vertex AI client. Or
          "batches/abc" using the Gemini Developer AI client.

    Usage:

    .. code-block:: python

      client.batches.cancel(name='123456789')
    r  rm   !batchPredictionJobs/{name}:cancelbatches/{name}:cancelr$  rk  r   Nrl  )r   _CancelBatchJobParametersrp  rq  rt   rr  rs  rq   r   rt  r   ru  r	   rv  rw  r   
r  rI   r   r  r  r  r  r  ru  r!  s
             r#   cancelzBatches.cancel0  sY   . 55O   8


Ol &))&1	2==>NO27


Ol &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLHr1   c                R   t        j                  |      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }|j                   si nt#        j$                  |j                         }	| j                  j                  rt'        |	      }	| j                  j                  st)        |	      }	t         j*                  j-                  |	|j/                         	      }
t        j0                  |j2                  
      |
_        | j                  j7                  |
       |
S Nr  rm   r9  batchesr$  rk  r   rr  rm  headers)r   _ListBatchJobsParametersrp  rq  r0  rr  rs  r.  r   rt  r   ru  r	   rv  rw  r   rx  ry  rz  r:  r6  ListBatchJobsResponser|  r}  HttpResponser  r   r~  r  r   r  r  r  r  r  ru  r!  r  r  s              r#   _listzBatches._listt  s    44O   7Hl%))&1	$//0@A$6Gl%))&1	##$45##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  8Gm$$7Fm..=='A'A'C > L &+%7%7  &L" 	%%l3r1   c                   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
| j                  j                  st)        |
      }
t         j*                  j-                  |
|j/                         
      }t        j0                  |	j2                        |_        | j                  j7                  |       |S )a  Deletes a batch job.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the client.

    Returns:
      A DeleteResourceJob object that shows the status of the deletion.

    Usage:

    .. code-block:: python

      client.batches.delete(name='123456789')
    r  rm   r  r  r$  rk  r   Ndeleterm  r  )r   _DeleteBatchJobParametersrp  rq  r   rr  rs  r   r   rt  r   ru  r	   rv  rw  r   rx  ry  rz  r   r   DeleteResourceJobr|  r}  r  r  r   r~  r  s               r#   r  zBatches.delete  s
   . 55O   8


Ol &))&1	+667GH+7


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''$lH 'mmBHMM1JM  4]Cm$$3MBm**99'A'A'C : L &+%7%7  &L" 	%%l3r1   c                .   t        j                  | j                  |      }t        j                  |||      }| j                  j
                  r4t        j                  ||j                        }| j                  |||      S | j                  |||      S )a  Creates a batch job.

    Args:
      model (str): The model to use for the batch job.
      src: The source of the batch job. Currently Vertex AI supports GCS URI(-s)
        or BigQuery URI. Example: "gs://path/to/input/data" or
        "bq://projectId.bqDatasetId.bqTableId". Gemini Developer API supports
        List of inlined_request, or file name. Example: "files/file_name".
      config (CreateBatchJobConfig): Optional configuration for the batch job.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = client.batches.create(
          model="gemini-2.0-flash-001",
          src="gs://path/to/input/data",
      )
      print(batch_job.state)
    rj  
rW   r   rp  r   ro  rq  r
   format_destinationr   r  r  rT   r`   r   r  s        r#   createzBatches.create  s    < 

t//
5C 55O   ..sO4J4JKf\\3v\>>\\3v\>>r1   c                (   ddl }|j                  dt        j                  d       t	        j
                  | j                  |      }t        j                  |||      }| j                  j                  rt        d      | j                  |||      S )a]  **Experimental** Creates an embedding batch job.

    Args:
      model (str): The model to use for the batch job.
      src: Gemini Developer API supports List of inlined_request, or file name.
        Example: "files/file_name".
      config (CreateBatchJobConfig): Optional configuration for the batch job.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = client.batches.create_embeddings(
          model="text-embedding-004",
          src="files/my_embedding_input",
      )
      print(batch_job.state)
    r   NJbatches.create_embeddings() is experimental and may change without notice.   rO  
stacklevelrj  5Vertex AI does not support batches.create_embeddings.)warningswarnr	   ExperimentalWarningrW   t_embedding_batch_job_sourcerp  r   r  rq  r5   r  )r  rT   r`   r   r  r  s         r#   create_embeddingszBatches.create_embeddings0  s    8 MM	,,	   
(
()9)93
?C ??O   NOO$$5c&$IIr1   c                ~    |t        j                         }t        d| j                  | j                  |      |      S )a  Lists batch jobs.

    Args:
      config (ListBatchJobsConfig): Optional configuration for the list request.

    Returns:
      A Pager object that contains one page of batch jobs. When iterating over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python

      batch_jobs = client.batches.list(config={"page_size": 10})
      for batch_job in batch_jobs:
        print(f"Batch job: {batch_job.name}, state {batch_job.state}")
    r5  r  )r   ListBatchJobsConfigr   r  r  r   s     r#   listzBatches.listb  s?    ( ~((*f



&
!	 r1   )__name__
__module____qualname__r   strr   r   BatchJobSourceUnionBatchJobSourceUnionDictCreateBatchJobConfigOrDictr{  r  EmbeddingsBatchJobSourceOrDict$CreateEmbeddingsBatchJobConfigOrDictr  GetBatchJobConfigOrDictrr  CancelBatchJobConfigOrDictr  ListBatchJobsConfigOrDictr  r  DeleteBatchJobConfigOrDictr  r  r  r  r   r   r1   r#   rf  rf  ^  s[   
 ";?B c]B **E,I,IIJ	B
 u778B ~~BN "EI: c]: //	:
 uAAB: ~~:z MQNN"*5+H+H"IN~~Nh <@	B B u778	B
 BJ DH8 ? ?@8""8| <@	S S u778	S
 St <@+? +? ((	+?
 u778+? ~~+?d FJ0J 0J //	0J
 uAAB0J ~~0Jf DH ? ?@U^^r1   rf  c            	          e Zd Zddddee   deej                  ej                  f   deej                     dej                  fdZddddee   dej                  deej                     dej                  fdZdd	d
edeej                     dej                  fdZdd	d
edeej"                     ddfdZdd	deej&                     dej(                  fdZdd	d
edeej,                     dej.                  fdZdd	dedej                  deej                     dej                  fdZdd	dedej                  deej                     dej                  fdZdd	deej&                     deej                     fdZy)AsyncBatchesNrg  rT   r`   r   r   c                T  K   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d {   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |      }| j                  j                  st)        |      }t         j*                  j-                  ||j/                         	      }| j                  j1                  |       |S 7 wri  )r   ro  rp  rq  r   rr  rs  r   r   rt  r   ru  r	   rv  rw  async_requestrx  ry  rz  rd   rZ   r{  r|  r}  r~  r  s                r#   r  zAsyncBatches._create  s     55O   8


Ol &))&1	$//0@A$7


Ol &))&1	-889IJ-##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  +M:m$$*=9m>>00'A'A'C 1 L 	%%l3#s   E$H(&H&'C H(c                  K   t        j                  |||      }| j                  j                  rt	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d {   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  st'        |      }t         j(                  j+                  ||j-                         	      }| j                  j/                  |       |S 7 wr  )r   r  rp  rq  r5   r   rr  rs  r   rt  r   ru  r	   rv  rw  r  rx  ry  rz  rZ   r{  r|  r}  r~  r  s                r#   r  zAsyncBatches._create_embeddings  s     ??O   
I  B


Ol &))&1	/::;KL/##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM$$*=9m>>00'A'A'C 1 L 	%%l3s   D1G3G4BGr  rI   c                R  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
| j                  j                  st)        |
      }
t         j*                  j-                  |
|j/                         
      }| j                  j1                  |       |S 7 w)a@  Gets a batch job.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the Vertex AI client. Or
          "batches/abc" using the Gemini Developer AI client.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = await client.aio.batches.get(name='123456789')
      print(f"Batch job: {batch_job.name}, state {batch_job.state}")
    r  rm   r  r  r$  rk  r   Nrr  rm  )r   r  rp  rq  r  rr  rs  r  r   rt  r   ru  r	   rv  rw  r  rx  ry  rz  rd   rZ   r{  r|  r}  r~  r  s               r#   rr  zAsyncBatches.get  s    , 22O   5


Ol &))&1	+667GH+4


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  +M:m$$*=9m>>00'A'A'C 1 L 	%%l3#s   E#H'%H%&C H'c                  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	y7 w)
a  Cancels a batch job.

    Only available for batch jobs that are running or pending.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the Vertex AI client. Or
          "batches/abc" using the Gemini Developer AI client.

    Usage:

    .. code-block:: python

      await client.aio.batches.cancel(name='123456789')
    r  rm   r  r  r$  rk  r   Nrl  )r   r  rp  rq  rt   rr  rs  rq   r   rt  r   ru  r	   rv  rw  r  r  s
             r#   r  zAsyncBatches.cancelT  sg    . 55O   8


Ol &))&1	2==>NO27


Ol &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H s   E#E-%E+&E-c                n  K   t        j                  |      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }|j                   si nt#        j$                  |j                         }	| j                  j                  rt'        |	      }	| j                  j                  st)        |	      }	t         j*                  j-                  |	|j/                         	      }
t        j0                  |j2                  
      |
_        | j                  j7                  |
       |
S 7 wr  )r   r  rp  rq  r0  rr  rs  r.  r   rt  r   ru  r	   rv  rw  r  rx  ry  rz  r:  r6  r  r|  r}  r  r  r   r~  r  s              r#   r  zAsyncBatches._list  s     44O   7Hl%))&1	$//0@A$6Gl%))&1	##$45##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  8Gm$$7Fm..=='A'A'C > L &+%7%7  &L" 	%%l3's   EH5H3C%H5c                  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
| j                  j                  st)        |
      }
t         j*                  j-                  |
|j/                         
      }t        j0                  |	j2                        |_        | j                  j7                  |       |S 7 w)a  Deletes a batch job.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the client.

    Returns:
      A DeleteResourceJob object that shows the status of the deletion.

    Usage:

    .. code-block:: python

      await client.aio.batches.delete(name='123456789')
    r  rm   r  r  r$  rk  r   Nr  rm  r  )r   r  rp  rq  r   rr  rs  r   r   rt  r   ru  r	   rv  rw  r  rx  ry  rz  r   r   r  r|  r}  r  r  r   r~  r  s               r#   r  zAsyncBatches.delete  s    . 55O   8


Ol &))&1	+667GH+7


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33$l H 'mmBHMM1JM  4]Cm$$3MBm**99'A'A'C : L &+%7%7  &L" 	%%l3's   E#I%I
&C%Ic                ^  K   t        j                  | j                  |      }t        j                  |||      }| j                  j
                  r<t        j                  ||j                        }| j                  |||       d{   S | j                  |||       d{   S 7  7 w)a  Creates a batch job asynchronously.

    Args:
      model (str): The model to use for the batch job.
      src: The source of the batch job. Currently Vertex AI supports GCS URI(-s)
        or BigQuery URI. Example: "gs://path/to/input/data" or
        "bq://projectId.bqDatasetId.bqTableId". Gemini Develop API supports List
        of inlined_request, or file name. Example: "files/file_name".
      config (CreateBatchJobConfig): Optional configuration for the batch job.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = await client.aio.batches.create(
          model="gemini-2.0-flash-001",
          src="gs://path/to/input/data",
      )
    rj  Nr  r  s        r#   r  zAsyncBatches.create)	  s     : 

t//
5C 55O   ..sO4J4JKf<<eV<DDD<<eV<DDD EDs$   BB-B)	B-$B+%B-+B-c                  K   ddl }|j                  dt        j                  d       t	        j
                  | j                  |      }t        j                  |||      }d}|j                  ,|j                  j                  |j                  j                  }| j                  j                  rt        d      | j                  |||       d{   S 7 w)ao  **Experimental** Creates an asynchronously embedding batch job.

    Args:
      model (str): The model to use for the batch job.
      src: Gemini Developer API supports inlined_requests, or file name.
        Example: "files/file_name".
      config (CreateBatchJobConfig): Optional configuration for the batch job.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = await client.aio.batches.create_embeddings(
          model="text-embedding-004",
          src="files/my_embedding_input",
      )
      print(batch_job.state)
    r   Nr  r  r  rj  r  )r  r  r	   r  rW   r  rp  r   r  r   ru  rq  r5   r  )r  rT   r`   r   r  r  ru  s          r#   r  zAsyncBatches.create_embeddingsU	  s     8 MM	,,	   
(
()9)93
?C ??O 15L*""//;$++88l  NOO**C*OOOOs   CCCCc                   K   |t        j                         }t        d| j                  | j                  |       d{   |      S 7 	w)a(  Lists batch jobs asynchronously.

    Args:
      config (ListBatchJobsConfig): Optional configuration for the list request.

    Returns:
      A Pager object that contains one page of batch jobs. When iterating over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python

      batch_jobs = await client.aio.batches.list(config={'page_size': 5})
      print(f"current page: {batch_jobs.page}")
      await batch_jobs_pager.next_page()
      print(f"next page: {batch_jobs_pager.page}")
    Nr5  r  )r   r  r   r  r  s     r#   r  zAsyncBatches.list	  sK     * ~((*f

jjj''	  	(s   =AA	 
A)r  r  r  r   r  r   r   r  r  r  r{  r  r  r  r  r  rr  r  r  r  r  r  r  r  r  r  r  r   r  r  r1   r#   r  r    s`   
 ";?B c]B **E,I,IIJ	B
 u778B ~~BN "EI: c]: //	:
 uAAB: ~~:z MQPP"*5+H+H"IP~~Pl <@	B B u778	B
 BJ DH: ? ?@:"":@ <@	S S u778	S
 St <@*E *E ((	*E
 u778*E ~~*Eb FJ7P 7P //	7P
 uAAB7P ~~7Pt DH ? ?@%..!r1   r  )N)Ory  loggingtypingr   r   r   urllib.parser    r   r	   r
   r   rW   r   rp  r   r   r   r   r   r   r   pagersr   r   	getLoggerloggerdictr  objectr$   r0   r6   r=   rE   rG   rZ   rd   rj   rq   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  rC   r   r)  r+  r.  r0  r6  r:  r   r   r   
BaseModulerf  r  r  r1   r#   <module>r     s@  $   ' ' "       & . 0 . % 
		1	2
 /3%tCH~v-.%DcN+% 
#s(^%T /3tCH~v-.DcN+ 
#s(^6 /3$tCH~v-.$DcN+$ 
#s(^$R /3tCH~v-.DcN+ 
#s(^0 /3tCH~v-. DcN+ 
#s(^	B /3tCH~v-.DcN+ 
#s(^> /36tCH~v-.6DcN+6 
#s(^6v /38tCH~v-.8DcN+8 
#s(^8z /3tCH~v-.DcN+ 
#s(^( /3tCH~v-. DcN+ 
#s(^	& /3tCH~v-. DcN+ 
#s(^	$ /35tCH~v-.5DcN+5 
#s(^5t /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^* /3tCH~v-.DcN+ 
#s(^0 /3tCH~v-. DcN+ 
#s(^	B /3tCH~v-. DcN+ 
#s(^	> /3tCH~v-.DcN+ 
#s(^& /3tCH~v-. DcN+ 
#s(^	B /3tCH~v-. DcN+ 
#s(^	& /3tCH~v-. DcN+ 
#s(^	$ /3tCH~v-.DcN+ 
#s(^0 /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-. DcN+ 
#s(^	< /3tCH~v-.DcN+ 
#s(^F /3tCH~v-. DcN+ 
#s(^	. /3tCH~v-.DcN+ 
#s(^( /3[[tCH~v-.[ DcN+[ 
#s(^	[@ /3 tCH~v-. DcN+  
#s(^ L /3tCH~v-. DcN+ 
#s(^	& /3tCH~v-. DcN+ 
#s(^	$ /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^4 /3%%tCH~v-.% DcN+% 
#s(^	%T /3tCH~v-.DcN+ 
#s(^, /3tCH~v-.DcN+ 
#s(^4 /3tCH~v-.DcN+ 
#s(^4 /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^8 /37tCH~v-.7DcN+7 
#s(^7x /3tCH~v-.DcN+ 
#s(^& /35tCH~v-.5DcN+5 
#s(^5p_k$$ _Dj;)) jr1   