
    !l^iWI                       d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	 d dl
Z
ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZ dd	lmZmZ dd
lmZ ddlmZ ddlm Z m!Z! ddlm"Z" ddl#m$Z$m%Z%m&Z& erddl'm(Z( ddl)m*Z*m+Z+ g dZ, G d de%      Z- G d de&      Z. G d d      Z/ G d d      Z0 G d d      Z1 G d d      Z2e-Z3e.Z4y)    )annotationsN)TYPE_CHECKINGAnyMapping)Selfoverride   )_exceptionsQuerystring)OmitHeadersTimeoutNotGiven	TransportProxiesTypesRequestOptions	not_given)is_givenget_async_library)cached_property)__version__)StreamAsyncStream)APIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)interactions)InteractionsResourceAsyncInteractionsResource)r   r   r   r   GeminiNextGenAPIClientAsyncGeminiNextGenAPIClientClientAsyncClientc                      e Zd ZU ded<   ded<   dddeeddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd	Zedd
       Zedd       Z	edd       Z
eedd              Zeedd              Zeed fd              Zedd       Zdddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZddZe	 	 	 	 	 	 	 	 dd       Z xZS ) r"   
str | Noneapi_keystrapi_versionNv1betaF	r(   r*   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationc       	   
        |t         j                  j                  d      }|| _        |d}|| _        |t         j                  j                  d      }|d}t
        
|   t        |||||||	       t        | _	        y)zConstruct a new synchronous GeminiNextGenAPIClient client instance.

        This automatically infers the `api_key` argument from the `GEMINI_API_KEY` environment variable if it is not provided.
        NGEMINI_API_KEYr+   GEMINI_NEXT_GEN_API_BASE_URL)https://generativelanguage.googleapis.comversionr-   r/   r.   r2   custom_headerscustom_queryr3   )
osenvirongetr(   r*   super__init__r   r   _default_stream_clsselfr(   r*   r-   r.   r/   r0   r1   r2   r3   	__class__s             `/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/google/genai/_interactions/_client.pyr@   zGeminiNextGenAPIClient.__init__F   s    8 ?jjnn%56G"K&zz~~&DEHBH##*&(C 	 		
 $*     c                    ddl m}  ||       S )Nr	   )r    )resources.interactionsr    )rC   r    s     rE   r   z#GeminiNextGenAPIClient.interactions|   s    @#D))rF   c                    t        |       S N)%GeminiNextGenAPIClientWithRawResponserC   s    rE   with_raw_responsez(GeminiNextGenAPIClient.with_raw_response   s    4T::rF   c                    t        |       S rJ   )*GeminiNextGenAPIClientWithStreamedResponserL   s    rE   with_streaming_responsez.GeminiNextGenAPIClient.with_streaming_response       9$??rF   c                    t        d      S Ncomma)array_formatr   rL   s    rE   qszGeminiNextGenAPIClient.qs        00rF   c                *    | j                   }|i S d|iS Nx-goog-api-keyr(   rC   r(   s     rE   auth_headersz#GeminiNextGenAPIClient.auth_headers   "     ,,?I '**rF   c                <    i t         |   ddi| j                  S )NX-Stainless-Asyncfalse)r?   r0   _custom_headersrC   rD   s    rE   r0   z&GeminiNextGenAPIClient.default_headers   s4    
g%

 ""
 	
rF   c                    | j                   r|j                  d      ry t        |j                  d      t              ry t	        d      NrZ   z"Could not resolve authentication method. Expected the api_key to be set. Or for the `x-goog-api-key` headers to be explicitly omitted"r(   r>   
isinstancer   	TypeErrorrC   headersr:   s      rE   _validate_headersz(GeminiNextGenAPIClient._validate_headers   D    <<GKK(89n(()9:DA V
 	
rF   r(   r*   r-   r.   r2   r/   r0   set_default_headersr1   set_default_query_extra_kwargsc                  ||t        d      |	|
t        d      | j                  }|i ||}n||}| j                  }|	i ||	}n|
|
}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d|S z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        zPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)r(   r*   r-   r.   r2   r/   r0   r1    
ValueErrorrb   _custom_query_clientrD   r(   r*   r-   rg   r   r.   r   r/   rC   r(   r*   r-   r.   r2   r/   r0   rn   r1   ro   rp   rj   paramss                 rE   copyzGeminiNextGenAPIClient.copy      $ &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 

+t||#7t'7'7.$.w$ADLLw#'/'<$BRBR# 

 

 
	
rF   c                    | j                   S rJ   r*   rL   s    rE   _get_api_version_path_paramz2GeminiNextGenAPIClient._get_api_version_path_param       rF   c                  |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j
                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   d	k\  rt        j                  |||      S t        |||      S 
Ni  )responsebodyi  i  i  i  i  i  i  status_coder
   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   rC   err_msgr   r   s       rE   _make_status_errorz)GeminiNextGenAPIClient._make_status_error   0    3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&77(Y]^^3&--gtTT3&227XTXYYgtDDrF   )r(   r'   r*   r'   r-   str | httpx.URL | Noner.   !float | Timeout | None | NotGivenr/   intr0   Mapping[str, str] | Noner1   Mapping[str, object] | Noner2   httpx.Client | Noner3   boolreturnNone)r   r    )r   rK   )r   rO   r   r   r   zdict[str, str]r   zdict[str, str | Omit]rj   r   r:   r   r   r   )r(   r'   r*   r'   r-   r   r.   r   r2   r   r/   int | NotGivenr0   r   rn   r   r1   r   ro   r   rp   Mapping[str, Any]r   r   r   r)   r   r)   r   objectr   zhttpx.Responser   r   __name__
__module____qualname____annotations__r   r   r@   r   r   rM   rP   propertyr   rV   r]   r0   rk   rz   with_optionsr~   r   __classcell__rD   s   @rE   r"   r"   A   s-   
 #"*+/5>.4859 ,0 -2-4* 4*  	4*
 )4* 34* 4* 24* 34* )4*, &*-4*. 
/4*l * *
 ; ; @ @ 1  1 +  + 
  
 
 
 #"&+/5>+/&/488<599=+-/
 /
  	/

 )/
 3/
 )/
 $/
 2/
 6/
 3/
 7/
 )/
 
/
f L  EE 	E
 !E 
E ErF   r"   c                      e Zd ZU ded<   ded<   dddeeddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd	Zedd
       Zedd       Z	edd       Z
eedd              Zeedd              Zeed fd              Zedd       Zdddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZddZe	 	 	 	 	 	 	 	 dd       Z xZS ) r#   r'   r(   r)   r*   Nr+   Fr,   c       	   
        |t         j                  j                  d      }|| _        |d}|| _        |t         j                  j                  d      }|d}t
        
|   t        |||||||	       t        | _	        y)zConstruct a new async AsyncGeminiNextGenAPIClient client instance.

        This automatically infers the `api_key` argument from the `GEMINI_API_KEY` environment variable if it is not provided.
        Nr5   r+   r6   r7   r8   )
r<   r=   r>   r(   r*   r?   r@   r   r   rA   rB   s             rE   r@   z$AsyncGeminiNextGenAPIClient.__init__
  s    8 ?jjnn%56G"K&zz~~&DEHBH##*&(C 	 		
 $/ rF   c                    ddl m}  ||       S )Nr	   )r!   )rH   r!   )rC   r!   s     rE   r   z(AsyncGeminiNextGenAPIClient.interactions@  s    E(..rF   c                    t        |       S rJ   )*AsyncGeminiNextGenAPIClientWithRawResponserL   s    rE   rM   z-AsyncGeminiNextGenAPIClient.with_raw_responseF  rQ   rF   c                    t        |       S rJ   )/AsyncGeminiNextGenAPIClientWithStreamedResponserL   s    rE   rP   z3AsyncGeminiNextGenAPIClient.with_streaming_responseJ  s    >tDDrF   c                    t        d      S rS   r   rL   s    rE   rV   zAsyncGeminiNextGenAPIClient.qsN  rW   rF   c                *    | j                   }|i S d|iS rY   r[   r\   s     rE   r]   z(AsyncGeminiNextGenAPIClient.auth_headersS  r^   rF   c                R    i t         |   ddt                i| j                  S )Nr`   zasync:)r?   r0   r   rb   rc   s    rE   r0   z+AsyncGeminiNextGenAPIClient.default_headers[  s@    
g%
6*;*=)>!?
 ""
 	
rF   c                    | j                   r|j                  d      ry t        |j                  d      t              ry t	        d      re   rf   ri   s      rE   rk   z-AsyncGeminiNextGenAPIClient._validate_headersd  rl   rF   rm   c                  ||t        d      |	|
t        d      | j                  }|i ||}n||}| j                  }|	i ||	}n|
|
}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d|S rr   rt   rx   s                 rE   rz   z AsyncGeminiNextGenAPIClient.copyo  r{   rF   c                    | j                   S rJ   r}   rL   s    rE   r~   z7AsyncGeminiNextGenAPIClient._get_api_version_path_param  r   rF   c                  |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j
                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   d	k\  rt        j                  |||      S t        |||      S r   r   r   s       rE   r   z.AsyncGeminiNextGenAPIClient._make_status_error  r   rF   )r(   r'   r*   r'   r-   r   r.   r   r/   r   r0   r   r1   r   r2   httpx.AsyncClient | Noner3   r   r   r   )r   r!   )r   r   )r   r   r   r   r   r   )r(   r'   r*   r'   r-   r   r.   r   r2   r   r/   r   r0   r   rn   r   r1   r   ro   r   rp   r   r   r   r   r   r   r   s   @rE   r#   r#     s/   
 #"*+/5>.4859 15 -2-4/ 4/  	4/
 )4/ 34/ 4/ 24/ 34/ .4/, &*-4/. 
/4/l / /
 @ @ E E 1  1 +  + 
  
 
 
 #"&+/5>04&/488<599=+-/
 /
  	/

 )/
 3/
 ./
 $/
 2/
 6/
 3/
 7/
 )/
 
/
f L  EE 	E
 !E 
E ErF   r#   c                  2    e Zd ZU ded<   ddZedd       Zy)rK   r"   rw   c                    || _         y rJ   rw   rC   clients     rE   r@   z.GeminiNextGenAPIClientWithRawResponse.__init__  	    rF   c                F    ddl m}  || j                  j                        S )Nr	   )#InteractionsResourceWithRawResponse)rH   r   rw   r   )rC   r   s     rE   r   z2GeminiNextGenAPIClientWithRawResponse.interactions  s    O24<<3L3LMMrF   Nr   r"   r   r   )r   z0interactions.InteractionsResourceWithRawResponser   r   r   r   r@   r   r   rs   rF   rE   rK   rK     s#    ## N NrF   rK   c                  2    e Zd ZU ded<   ddZedd       Zy)r   r#   rw   c                    || _         y rJ   r   r   s     rE   r@   z3AsyncGeminiNextGenAPIClientWithRawResponse.__init__  r   rF   c                F    ddl m}  || j                  j                        S )Nr	   )(AsyncInteractionsResourceWithRawResponse)rH   r   rw   r   )rC   r   s     rE   r   z7AsyncGeminiNextGenAPIClientWithRawResponse.interactions  s    T78Q8QRRrF   Nr   r#   r   r   )r   z5interactions.AsyncInteractionsResourceWithRawResponser   rs   rF   rE   r   r     s#    (( S SrF   r   c                  2    e Zd ZU ded<   ddZedd       Zy)rO   r"   rw   c                    || _         y rJ   r   r   s     rE   r@   z3GeminiNextGenAPIClientWithStreamedResponse.__init__  r   rF   c                F    ddl m}  || j                  j                        S )Nr	   ))InteractionsResourceWithStreamingResponse)rH   r   rw   r   )rC   r   s     rE   r   z7GeminiNextGenAPIClientWithStreamedResponse.interactions  s    U89R9RSSrF   Nr   )r   z6interactions.InteractionsResourceWithStreamingResponser   rs   rF   rE   rO   rO     s#    ## T TrF   rO   c                  2    e Zd ZU ded<   ddZedd       Zy)r   r#   rw   c                    || _         y rJ   r   r   s     rE   r@   z8AsyncGeminiNextGenAPIClientWithStreamedResponse.__init__  r   rF   c                F    ddl m}  || j                  j                        S )Nr	   ).AsyncInteractionsResourceWithStreamingResponse)rH   r   rw   r   )rC   r   s     rE   r   z<AsyncGeminiNextGenAPIClientWithStreamedResponse.interactions  s    Z=dll>W>WXXrF   Nr   )r   z;interactions.AsyncInteractionsResourceWithStreamingResponser   rs   rF   rE   r   r     s#    (( Y YrF   r   )5
__future__r   r<   typingr   r   r   typing_extensionsr   r   httpx r
   _qsr   _typesr   r   r   r   r   r   r   r   _utilsr   r   _compatr   _versionr   
_streamingr   r   r   _base_clientr   r   r   	resourcesr   rH   r    r!   __all__r"   r#   rK   r   rO   r   r$   r%   rs   rF   rE   <module>r      s   $ # 	 . . ,   	 	 	 0 $ ! D '  'W	AE] AEHAE. AEH
N 
N
S 
S
T 
T
Y 
Y 
 )rF   