o
    pkjO                     @   s   d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
mZ ddlmZmZmZ ddlZzddlZW n ey=   dZY nw edu rFejfnejejfZddlmZmZmZmZmZmZ dd	lmZmZ G d
d dZG dd dZdS )zACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.   )SDKConfiguration)errorstypesutils)AfterErrorContextAfterSuccessContextBeforeRequestContextHookContext)RetryConfigSerializedRequestBodyget_body_content    N)AnyCallableListMappingOptionalTuple)parse_qsurlparsec                   @     e Zd ZU eed< dZee ed< 	 	d dedee ddfddZdd	 Z	d
ee
 dee fddZ									d!dee deeg ee f  dee deeeef  deeee
f  deee  deee  dejfddZ									d!dee deeg ee f  dee deeeef  deeee
f  deee  deee  dejfddZ		d"dedejdeegef dedeeeee f  dejfddZdS )#BaseSDKsdk_configurationN
parent_ref
sdk_configreturnc                 C      || _ || _d S Nr   r   selfr   r    r!   X/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/google/genai/_gaos/basesdk.py__init__4      
zBaseSDK.__init__c                 C   2   | j  \}}|d u r|}|d u r|}t||S r   r   get_server_detailsr   template_urlr    base_urlurl_variablessdk_urlsdk_variablesr!   r!   r"   _get_url<      zBaseSDK._get_urltimeoutc                 C   r   |d u rd S t |ttfrt|d S t |tr5|j|j|j|jg}dd |D }|s-d S tt|d S t	d)N  c                 S      g | ]}|d ur|qS r   r!   .0valuer!   r!   r"   
<listcomp>N       z.BaseSDK._coerce_timeout_ms.<locals>.<listcomp>4timeout must be a float, int, httpx.Timeout, or None

isinstanceintfloat_HTTPX_TIMEOUT_TYPESconnectreadwritepoolmax	TypeErrorr    r0   valuesfinite_valuesr!   r!   r"   _coerce_timeout_msG      
zBaseSDK._coerce_timeout_ms
timeout_msget_serialized_bodyurl_overridehttp_headersextra_query_paramsallow_empty_valueallowed_fieldsc                 C   8   | j j}| ||||||||||	|
|||||||||S r   )r   client_build_request_with_clientr    methodpathr*   r+   requestrequest_body_requiredrequest_has_path_paramsrequest_has_query_paramsuser_agent_headeraccept_header_value_globalssecurityrJ   rK   rL   rM   rN   rO   rP   rR   r!   r!   r"   _build_requestT   .   zBaseSDK._build_requestc           !   
   C     i }|}|d u r,t | ||||r|nd |r|nd }t |	r"|nd |	r'|nd |}ntt|}t|jdd}t ||}||d< | j	j
||
< |d urTt|rT| }t |tj}|d urst ||\}}i ||}i ||}|d ur| D ]!\}}|d u rq{t|ttfrdd |D ||< q{t|g||< q{t }|d ur| }|r|d u rtd|d ur|}|jd ur|jdvr|j|d< |d ur| D ]\}}|||< q|d ur|d	 nd } |j||||j|j|j|| d ur| d
S tjd
S )NTkeep_blank_valuesAcceptc                 S      g | ]}t |qS r!   strr5   vr!   r!   r"   r7          z6BaseSDK._build_request_with_client.<locals>.<listcomp>request body is requiredzmultipart/form-datazmultipart/mixedcontent-typer2   paramscontentdatafilesheadersr0   r   generate_urlr.   get_query_paramsr   rg   r   queryget_headersr   
user_agentcallableget_security_from_envr   Securityget_securityitemsr;   listtupler   
ValueError
media_typebuild_requestrp   rq   rr   httpxUSE_CLIENT_DEFAULT!r    rR   rU   rV   r*   r+   rW   rX   rY   rZ   r[   r\   r]   r^   rJ   rK   rL   rM   rN   rO   rP   query_paramsurlparsed_overriders   security_headerssecurity_query_paramsnamer6   serialized_request_bodyrbheaderr0   r!   r!   r"   rS         




	



z"BaseSDK._build_request_with_clientFhook_ctxrW   is_error_status_codestreamretry_configc           
         s   | j j | j j| j jd ddtf fdd}|d ur0t|t|d |d }n| }||jrc	t
|d \}}	|	d urPjddd	 |	|d urX|}|S d
 td|t|}|S )N_hooksr   _attemptc              
      s  d }z9 t}djv rd|jvrjd |jd< d|j|j|jt|  d u r3td j	|d}W n* t
ye } ztd |\}}|d ur[jddd |W Y d }~nd }~ww |d u rtd td	d
|j|j|jrd |S |j |S Nr0   z0Request:
Method: %s
URL: %s
Headers: %s
Body: %szclient is required)r   Request ExceptionTexc_infozRaising no response SDK errorzNo response receivedz6Response:
Status Code: %s
URL: %s
Headers: %s
Body: %sz<streaming response>before_requestr   
extensionsdebugrU   r   rs   r   r   send	Exceptionafter_errorr   r   NoResponseErrorstatus_codetextr   http_resreqe_rR   r   hooksloggerrW   r   r!   r"   do   sJ   

zBaseSDK.do_request.<locals>.dor   r   Tr   Raising unexpected SDK errorUnexpected error occurredr   )r   rR   debug_logger__dict__r<   r   retryRetriesr   r   r   r   r   GenAiDefaultErrorafter_successr   
r    r   rW   r   r   r   r   r   resulterrr!   r   r"   
do_request   s&   &

zBaseSDK.do_requestr   	NNNNNNNNNFN)__name__
__module____qualname__r   __annotations__r   r   objectr#   r.   r   r<   rH   r   r   rg   r   r   r   Requestr_   rS   r	   boolr   r
   Responser   r!   r!   r!   r"   r   ,      
 



=


pr   c                   @   r   )#AsyncBaseSDKr   Nr   r   r   c                 C   r   r   r   r   r!   r!   r"   r#   ?  r$   zAsyncBaseSDK.__init__c                 C   r%   r   r&   r)   r!   r!   r"   r.   G  r/   zAsyncBaseSDK._get_urlr0   c                 C   r1   )Nr2   c                 S   r3   r   r!   r4   r!   r!   r"   r7   Y  r8   z3AsyncBaseSDK._coerce_timeout_ms.<locals>.<listcomp>r9   r:   rE   r!   r!   r"   rH   R  rI   zAsyncBaseSDK._coerce_timeout_msrJ   rK   rL   rM   rN   rO   rP   c                 C   rQ   r   )r   async_clientrS   rT   r!   r!   r"   _build_request_async_  r`   z!AsyncBaseSDK._build_request_asyncc           !   
   C   ra   )NTrb   rd   c                 S   re   r!   rf   rh   r!   r!   r"   r7     rj   z;AsyncBaseSDK._build_request_with_client.<locals>.<listcomp>rk   rl   rm   r2   rn   rt   r   r!   r!   r"   rS     r   z'AsyncBaseSDK._build_request_with_clientFr   rW   r   r   r   c           
         s   | j j| j j| j jd  ddtf fdd}|d ur4t|t|d |d I d H }n| I d H }||jrm 	t
|d I d H \}}	|	d urZjddd	 |	|d urb|}|S d
 td| t|I d H }|S )N_async_hooksr   r   c              
      s(  d }z?  tI d H }djv r!d|jvr!jd |jd< d|j|j|jt| d u r7tdj	|dI d H }W n- t
yo } z! td |I d H \}}|d urejddd |W Y d }~nd }~ww |d u r~d td	d
|j|j|jrd |S |j |S r   r   r   async_hooksrR   r   r   rW   r   r!   r"   r     sT   

	

z)AsyncBaseSDK.do_request_async.<locals>.dor   r   Tr   r   r   r   )r   r   r   r   r<   r   retry_asyncr   r   r   r   r   r   r   r   r   r   r!   r   r"   do_request_async  s4   ,

	

zAsyncBaseSDK.do_request_asyncr   r   r   )r   r   r   r   r   r   r   r   r#   r.   r   r<   rH   r   r   rg   r   r   r   r   r   rS   r	   r   r   r
   r   r   r!   r!   r!   r"   r   7  r   r   ) __doc__sdkconfigurationr    r   r   r   r   r   r   r   r	   r
   r   r   r   httpx2ImportErrorTimeoutr>   typingr   r   r   r   r   r   urllib.parser   r   r   r   r!   r!   r!   r"   <module>   s*   
   