o
    %gM                  	   @   s|  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 e dZ	d+dedeeef dee defddZ	d+dedeeef dee defddZ	d+dedeeef dee defddZ	d+dedeeef dee defddZ	d+dedeeef dee defddZ	d+dedeeef dee defddZ	d+dedeeef dee defddZ	d+dedeeef dee defdd Z	d+dedeeef dee defd!d"Z	d+dedeeef dee defd#d$Z 	d+dedeeef dee defd%d&Z!G d'd( d(ej"Z#G d)d* d*ej"Z$dS ),    N)AnyOptionalUnion)	urlencode   )_api_module)_common)_transformers)types)BaseApiClient)get_value_by_path)set_value_by_pathzgoogle_genai.operations
api_clientfrom_objectparent_objectreturnc                 C   V   i }t |dgd urt|ddgt |dg t |dgd ur)t|dgt |dg |S Noperation_name_urloperationNameconfiggetvsetvr   r   r   	to_object r   Y/mnt/skqttb/ctump_chatbot/chatbot/lib/python3.10/site-packages/google/genai/operations.py _GetOperationParameters_to_mldev       
r   c                 C   r   r   r   r   r   r   r   !_GetOperationParameters_to_vertex3   r    r!   c                 C   s|   i }t |dgd urt|dgt |dg t |dgd ur)t|ddgt |dg t |dgd ur<t|dgt |dg |S )Nr   r   resource_namer   resourceNamer   r   r   r   r   r   *_FetchPredictOperationParameters_to_vertexF   s   
r$   c              
   C   s   i }t |ddgd urt|dgt |ddg t |ddgd ur0t|dgt| t |ddg t |dgd urCt|dgt |dg |S )NvideouriencodedVideovideo_bytesencoding	mime_typer   r   tt_bytesr   r   r   r   _Video_from_mldev\   s   r.   c                 C   6   i }t |dgd urt|dgt| t |dg| |S N_selfr%   )r   r   r.   r   r   r   r   _GeneratedVideo_from_mldevr      r2   c                       i t |dgd urtdg fddt |dgD  t |dgd ur0tdgt |dg t |dgd urCtdgt |dg S )	NgeneratedSamplesgenerated_videosc                       g | ]}t  |qS r   )r2   .0itemr   r   r   r   
<listcomp>       
z6_GenerateVideosResponse_from_mldev.<locals>.<listcomp>raiMediaFilteredCountrai_media_filtered_countraiMediaFilteredReasonsrai_media_filtered_reasonsr   r   r   r   r   r;   r   "_GenerateVideosResponse_from_mldev   ,   
	

rC   c              	   C   s   i }t |dgd urt|dgt |dg t |dgd ur(t|dgt |dg t |dgd ur;t|dgt |dg t |dgd urNt|dgt |dg t |dgd urat|dgt |dg t |ddgd urzt|dgt| t |ddg| |S )NnamemetadatadoneerrorresponsegenerateVideoResponseresult)r   r   rC   r   r   r   r   #_GenerateVideosOperation_from_mldev   s,   
rL   c              	   C   s   i }t |dgd urt|dgt |dg t |dgd ur,t|dgt| t |dg t |dgd ur?t|dgt |dg |S )NgcsUrir&   bytesBase64Encodedr(   mimeTyper*   r+   r   r   r   r   _Video_from_vertex   s   rP   c                 C   r/   r0   )r   r   rP   r   r   r   r   _GeneratedVideo_from_vertex   r3   rQ   c                    r4   )	Nvideosr6   c                    r7   r   )rQ   r8   r;   r   r   r<      r=   z7_GenerateVideosResponse_from_vertex.<locals>.<listcomp>r>   r?   r@   rA   r   rB   r   r;   r   #_GenerateVideosResponse_from_vertex   rD   rS   c                 C   s   i }t |dgd urt|dgt |dg t |dgd ur(t|dgt |dg t |dgd ur;t|dgt |dg t |dgd urNt|dgt |dg t |dgd urat|dgt |dg t |dgd urxt|dgt| t |dg| |S )NrE   rF   rG   rH   rI   rK   )r   r   rS   r   r   r   r   $_GenerateVideosOperation_from_vertex  s(   rT   c                	   @      e Zd Zdddedeej dejfddZdddededeej	 dejfd	d
Z
eddddejdeej dejfddZdS )
OperationsNr   r   r   r   c                C   s&  t j||d}| jjr!t| j|}|d}|rd|}nd}nt| j|}|d}|r4d|}nd}|d}|rF| dt| }|	dd  d }|j
d ur]|j
jd ur]|j
j}t|}t|}| jd|||}	| jjr{t| j|	}	nt| j|	}	t jj|	| d}
| j|
 |
S 	Nr   r   r   z{operationName}_query?r   getrI   kwargs)r
   _GetOperationParameters_api_clientvertexair!   r\   
format_mapr   r   popr   http_optionsr   convert_to_dictencode_unserializable_typesrequestrT   rL   GenerateVideosOperation_from_response
model_dump_verify_responseselfr   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsrd   response_dictreturn_valuer   r   r   _get_videos_operation0  sX   





z Operations._get_videos_operationr"   c                C   s   t j|||d}| jjstdt| j|}|d}|r#d|}nd}|d}|r5| dt| }|	dd  d }	|j
d urL|j
jd urL|j
j}	t|}t|}| jd|||	}
| jjrit| j|
}
t jj|
| d	}| j| |S 
Nr   r"   r   z6This method is only supported in the Vertex AI client.r   z${resourceName}:fetchPredictOperationrZ   r[   r   postr]   )r
    _FetchPredictOperationParametersr`   ra   
ValueErrorr$   r\   rb   r   rc   r   rd   r   re   rf   rg   rT   rh   ri   rj   rk   rm   r   r"   r   rn   ro   rp   rq   rr   rd   rs   rt   r   r   r   _fetch_predict_videos_operations  sL   




z*Operations._fetch_predict_videos_operation>This method is experimental and may change in future versions.	operationc                C   s   |j }|s	td| jjrV|dd }t }t|tr2|	dd}|dur1tjd	i t|}nt|tj
rH|durH|jdurD|jnt }tj|d}| j|||dS | j||dS 
z Gets the status of an operation.zOperation name is empty.z/operations/r   rd   N)rd   rw   rY   r   rE   rz   r`   ra   
rpartitionr
   HttpOptions
isinstancedictr\   GetOperationConfigrd   FetchPredictOperationConfigr|   ru   rm   r~   r   r   r"   rd   dict_optionsfetch_operation_configr   r   r   r\     s8   

zOperations.get__name__
__module____qualname__strr   r
   GetOperationConfigOrDictrh   ru   !FetchPredictOperationConfigOrDictr|   r   experimental_warningr\   r   r   r   r   rV   .  <    
H
;rV   c                	   @   rU   )AsyncOperationsNrW   r   r   r   c                   s.  t j||d}| jjr"t| j|}|d}|rd|}nd}nt| j|}|d}|r5d|}nd}|d}|rG| dt| }|	dd  d }|j
d ur^|j
jd ur^|j
j}t|}t|}| jd|||I d H }	| jjrt| j|	}	nt| j|	}	t jj|	| d}
| j|
 |
S rX   )r
   r_   r`   ra   r!   r\   rb   r   r   rc   r   rd   r   re   rf   async_requestrT   rL   rh   ri   rj   rk   rl   r   r   r   ru     sZ   






z%AsyncOperations._get_videos_operationr"   c                   s   t j|||d}| jjstdt| j|}|d}|r$d|}nd}|d}|r6| dt| }|	dd  d }	|j
d urM|j
jd urM|j
j}	t|}t|}| jd|||	I d H }
| jjrmt| j|
}
t jj|
| d	}| j| |S rv   )r
   ry   r`   ra   rz   r$   r\   rb   r   rc   r   rd   r   re   rf   r   rT   rh   ri   rj   rk   r{   r   r   r   r|      sN   





z/AsyncOperations._fetch_predict_videos_operationr}   r~   c                   s   |j }|s
td| jjrZ|dd }t }t|tr3|	dd}|dur2tjd	i t|}nt|tj
rI|durI|jdurE|jnt }tj|d}| j|||dI dH S | j||dI dH S r   r   r   r   r   r   r\   [  s:   

zAsyncOperations.getr   r   r   r   r   r     r   r   )N)%loggingtypingr   r   r   urllib.parser    r   r   r	   r,   r
   r`   r   r   r   r   r   	getLoggerloggerr   objectr   r!   r$   r.   r2   rC   rL   rP   rQ   rS   rT   
BaseModulerV   r   r   r   r   r   <module>   s   












$

&





$

! .