o
    Zh-Q                  	   @   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!	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   N/var/www/html/lang_env/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   sP   i }t |dgd urtdt |dgd urtdt |dgd ur&td|S )Nr   z8operation_name parameter is not supported in Gemini API.resource_namez7resource_name parameter is not supported in Gemini API.r   z0config parameter is not supported in Gemini API.)r   
ValueErrorr   r   r   r   )_FetchPredictOperationParameters_to_mldevF   s   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   r"   r   ZresourceNamer   r   r   r   r   r   *_FetchPredictOperationParameters_to_vertexX   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uriZencodedVideovideo_bytesencoding	mime_typer   r   tZt_bytesr   r   r   r   _Video_from_mldevn   s   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gt| t |dg t |dgd ur?t|dgt |dg |S )NZgcsUrir'   ZbytesBase64Encodedr(   ZmimeTyper*   r+   r   r   r   r   _Video_from_vertex   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_mldev      r2   c                 C   r/   r0   )r   r   r.   r   r   r   r   _GeneratedVideo_from_vertex   r3   r4   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 )	NZ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                    r5   )	NZvideosr6   c                    r7   r   )r4   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   rE   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responseZ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 |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 )NrF   rG   rH   rI   rJ   rK   )r   r   rE   r   r   r   r   $_GenerateVideosOperation_from_vertex  s(   rM   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   s8  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 }t
|trZ|dd }nt|drf|d urf|j}t|}t|}| jd|||}	| jjrt| j|	}	nt| j|	}	t jj|	| d	}
| j|
 |
S 
Nr   r   r   z{operationName}_query?r   http_optionsgetrJ   kwargs)r
   _GetOperationParameters_api_clientvertexair!   rV   
format_mapr   r   pop
isinstancedicthasattrrU   r   convert_to_dictencode_unserializable_typesrequestrM   rL   GenerateVideosOperation_from_response
model_dump_verify_responseselfr   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsrU   response_dictreturn_valuer   r   r   _get_operationB  sZ   





zOperations._get_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 }	t
|trI|dd }	nt|drU|d urU|j}	t|}t|}| jd	|||	}
| jjrst| j|
}
nt| j|
}
t jj|
| d
}| j| |S Nr   r"   r   z6This method is only supported in the Vertex AI client.r   z${resourceName}:fetchPredictOperationrS   rT   r   rU   postrW   )r
    _FetchPredictOperationParametersrZ   r[   r#   r%   rV   r\   r   r]   r^   r_   r`   rU   r   ra   rb   rc   rM   rL   rd   re   rf   rg   ri   r   r"   r   rj   rk   rl   rm   rn   rU   ro   rp   r   r   r   _fetch_predict_operation  sT   




z#Operations._fetch_predict_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   rU   N)rU   rs   rR   r   rF   r#   rZ   r[   
rpartitionr
   ZHttpOptionsr^   r_   rV   ZGetOperationConfigrU   ZFetchPredictOperationConfigrw   rq   ri   ry   r   r   r"   rU   Zdict_optionsZfetch_operation_configr   r   r   rV     s8   

zOperations.get__name__
__module____qualname__strr   r
   ZGetOperationConfigOrDictrd   rq   Z!FetchPredictOperationConfigOrDictrw   r   Zexperimental_warningrV   r   r   r   r   rO   @  <    
F
>rO   c                	   @   rN   )AsyncOperationsNrP   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 }t
|tr[|dd }nt|drg|d urg|j}t|}t|}| jd|||I d H }	| jjrt| j|	}	nt| j|	}	t jj|	| d	}
| j|
 |
S rQ   )r
   rY   rZ   r[   r!   rV   r\   r   r   r]   r^   r_   r`   rU   r   ra   rb   async_requestrM   rL   rd   re   rf   rg   rh   r   r   r   rq     s\   






zAsyncOperations._get_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 }	t
|trJ|dd }	nt|drV|d urV|j}	t|}t|}| jd	|||	I d H }
| jjrwt| j|
}
nt| j|
}
t jj|
| d
}| j| |S rr   )r
   ru   rZ   r[   r#   r%   rV   r\   r   r]   r^   r_   r`   rU   r   ra   rb   r   rM   rL   rd   re   rf   rg   rv   r   r   r   rw   1  sV   





z(AsyncOperations._fetch_predict_operationrx   ry   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 rz   r{   r}   r   r   r   rV   o  s:   

zAsyncOperations.getr~   r   r   r   r   r     r   r   )N)&loggingtypingr   r   r   urllib.parser    r   r   r	   r,   r
   rZ   r   r   r   r   r   	getLoggerloggerr_   objectr   r!   r$   r%   r-   r.   r2   r4   rC   rE   rL   rM   Z
BaseModulerO   r   r   r   r   r   <module>   s  


















$

$

&

! /