o
    ThL                  	   @   sT  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 edZ	d)deeeef ef deeeef  deeef fddZ	d)deeeef ef deeeef  deeef fddZ	d)deeeef ef deeeef  deeef fddZ	d)deeeef ef deeeef  deeef fddZ	d)deeeef ef deeeef  deeef fddZ	d)deeeef ef deeeef  deeef fddZ	d)deeeef ef deeeef  deeef fddZ	d)deeeef ef deeeef  deeef fddZ	d)deeeef ef deeeef  deeef fdd Z	d)deeeef ef deeeef  deeef fd!d"Z 	d)deeeef ef deeeef  deeef 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)get_value_by_path)set_value_by_pathzgoogle_genai.operations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   	to_object r   Z/home/air/segue/gemini/backup/venv/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_vertexE   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r/t|dgtt | ddg t | dgd urBt|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_mldevZ   s   r,   c                 C   4   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_mldevo      r0   c                       i  t | dgd urt dg fddt | dgD  t | dgd ur/t dgt | dg t | dgd urBt dgt | dg  S )	NgeneratedSamplesgenerated_videosc                       g | ]}t | qS r   )r0   .0itemr   r   r   
<listcomp>       z6_GenerateVideosResponse_from_mldev.<locals>.<listcomp>raiMediaFilteredCountrai_media_filtered_countraiMediaFilteredReasonsrai_media_filtered_reasonsr   r   r   r   r9   r   "_GenerateVideosResponse_from_mldev~   ,   

	

rA   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dgd urft|dgtt | ddg| t | ddgd ur~t|dgtt | ddg| |S )NnamemetadatadoneerrorresponsegenerateVideoResponseresult)r   r   rA   r   r   r   r   #_GenerateVideosOperation_from_mldev   s4   rJ   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   rN   c                 C   r-   r.   )r   r   rN   r   r   r   r   _GeneratedVideo_from_vertex   r1   rO   c                    r2   )	Nvideosr4   c                    r5   r   )rO   r6   r9   r   r   r:      r;   z7_GenerateVideosResponse_from_vertex.<locals>.<listcomp>r<   r=   r>   r?   r   r@   r   r9   r   #_GenerateVideosResponse_from_vertex   rB   rQ   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rdt|dgtt | dg| t | dgd urzt|dgtt | dg| |S )NrC   rD   rE   rF   rG   rI   )r   r   rQ   r   r   r   r   $_GenerateVideosOperation_from_vertex  s4   rR   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
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|}|d}|rd|}nd}nt|}|d}|r0d|}nd}|d}|rB| dt| }|	dd  d }|j
d urY|j
jd urY|j
j}t|}t|}| jd|||}	|	jsqdnt|	j}
| jjrt|
}
nt|
}
t jj|
| d	}| j| |S 
Nr   r   r   z{operationName}_query?r   get rG   kwargs)r
   _GetOperationParameters_api_clientvertexair   rZ   
format_mapr   r   popr   http_optionsr   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsrR   rJ   GenerateVideosOperation_from_response
model_dump_verify_responseselfr   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsrc   rG   response_dictreturn_valuer   r   r   _get_videos_operation0  sF   






z Operations._get_videos_operationr    c                C   s  t j|||d}| jjstdt|}|d}|r!d|}nd}|d}|r3| dt| }|	dd  d }	|j
d urJ|j
jd urJ|j
j}	t|}t|}| jd|||	}
|
jsbd	nt|
j}| jjrpt|}t jj|| d
}| j| |S Nr   r    r   z6This method is only supported in the Vertex AI client.r   z${resourceName}:fetchPredictOperationrX   rY   r   postr[   r\   )r
    _FetchPredictOperationParametersr_   r`   
ValueErrorr"   rZ   ra   r   rb   r   rc   r   rd   re   rf   rg   rh   ri   rR   rj   rk   rl   rm   ro   r   r    r   rp   rq   rr   rs   rt   rc   rG   ru   rv   r   r   r   _fetch_predict_videos_operationk  sF   




z*Operations._fetch_predict_videos_operation	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   rc   N)rc   ry   rW   r   rC   r|   r_   r`   
rpartitionr
   HttpOptions
isinstancedictrZ   GetOperationConfigrc   FetchPredictOperationConfigr~   rw   ro   r   r   r   r    rc   dict_optionsfetch_operation_configr   r   r   rZ     s8   	

zOperations.get__name__
__module____qualname__strr   r
   GetOperationConfigOrDictrj   rw   !FetchPredictOperationConfigOrDictr~   rZ   r   r   r   r   rT   .  s6    
@
=rT   c                	   @   rS   )AsyncOperationsNrU   r   r   r   c                   s4  t j||d}| jjr t|}|d}|rd|}nd}nt|}|d}|r1d|}nd}|d}|rC| dt| }|	dd  d }|j
d urZ|j
jd urZ|j
j}t|}t|}| jd|||I d H }	|	jsudnt|	j}
| jjrt|
}
nt|
}
t jj|
| d	}| j| |S rV   )r
   r^   r_   r`   r   rZ   ra   r   r   rb   r   rc   r   rd   re   async_requestrg   rh   ri   rR   rJ   rj   rk   rl   rm   rn   r   r   r   rw     sL   







z%AsyncOperations._get_videos_operationr    c                   s  t j|||d}| jjstdt|}|d}|r"d|}nd}|d}|r4| dt| }|	dd  d }	|j
d urK|j
jd urK|j
j}	t|}t|}| jd|||	I d H }
|
jsfd	nt|
j}| jjrtt|}t jj|| d
}| j| |S rx   )r
   r{   r_   r`   r|   r"   rZ   ra   r   rb   r   rc   r   rd   re   r   rg   rh   ri   rR   rj   rk   rl   rm   r}   r   r   r   r~     sH   





z/AsyncOperations._fetch_predict_videos_operationr   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   rZ   F  s:   

zAsyncOperations.getr   r   r   r   r   r     s6    
B
=r   )N)%rh   loggingtypingr   r   r   urllib.parser   r[   r   r   r	   r*   r
   r   r   r   r   	getLoggerloggerr   r   objectr   r   r"   r,   r0   rA   rJ   rN   rO   rQ   rR   
BaseModulerT   r   r   r   r   r   <module>   s   












"

(





"

& !