
    עiR                       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  ddl!m"Z"m#Z# ddlm$Z$ ddl%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+ erddl,m-Z- ddl.m/Z/m0Z0 g dZ1 G d de'      Z2 G d de(      Z3 G d d      Z4 G d d      Z5 G d d      Z6 G d d      Z7e2Z8e3Z9y)     )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)FinalRequestOptions)__version__)StreamAsyncStream)APIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)GeminiNextGenAPIClientAdapter"AsyncGeminiNextGenAPIClientAdapter)interactions)InteractionsResourceAsyncInteractionsResource)r   r   r   r   GeminiNextGenAPIClientAsyncGeminiNextGenAPIClientClientAsyncClientc                      e Zd ZU ded<   ded<   ded<   dddeed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ed d       Zdddeded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_version$GeminiNextGenAPIClientAdapter | Noneclient_adapterNv1betaF
r+   r-   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_clientr/   _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_KEYr0   GEMINI_NEXT_GEN_API_BASE_URL)https://generativelanguage.googleapis.comversionr2   r4   r3   r7   custom_headerscustom_queryr8   )osenvirongetr+   r-   r/   super__init__r   r   _default_stream_clsselfr+   r-   r2   r3   r4   r5   r6   r7   r/   r8   	__class__s              c/sites/domain-asset-master/.venv/lib/python3.12/site-packages/google/genai/_interactions/_client.pyrE   zGeminiNextGenAPIClient.__init__I   s    : ?jjnn%56G"K&zz~~&DEHBH,##*&(C 	 		
 $*     c                    ddl m}  ||       S )Nr	   )r#   )resources.interactionsr#   )rH   r#   s     rJ   r"   z#GeminiNextGenAPIClient.interactions   s    @#D))rK   c                    t        |       S N)%GeminiNextGenAPIClientWithRawResponserH   s    rJ   with_raw_responsez(GeminiNextGenAPIClient.with_raw_response   s    4T::rK   c                    t        |       S rO   )*GeminiNextGenAPIClientWithStreamedResponserQ   s    rJ   with_streaming_responsez.GeminiNextGenAPIClient.with_streaming_response       9$??rK   c                    t        d      S Ncomma)array_formatr   rQ   s    rJ   qszGeminiNextGenAPIClient.qs        00rK   c                *    | j                   }|i S d|iS Nx-goog-api-keyr+   rH   r+   s     rJ   auth_headersz#GeminiNextGenAPIClient.auth_headers   "     ,,?I '**rK   c                <    i t         |   ddi| j                  S )NX-Stainless-Asyncfalse)rD   r5   _custom_headersrH   rI   s    rJ   r5   z&GeminiNextGenAPIClient.default_headers   s4    
g%

 ""
 	
rK   c                :   |j                  d      s0|j                  d      st        |j                  d      t              ry | j                  r|j                  d      ry |j                  d      st        |j                  d      t              ry t	        d      NAuthorizationr_   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"rC   
isinstancer   r+   	TypeErrorrH   headersr?   s      rJ   _validate_headersz(GeminiNextGenAPIClient._validate_headers       ;;'>+=+=o+NR\]k]o]op  ^A  CG  SH<<GKK(89./:n>P>PQa>bdh3i V
 	
rK   c                   | j                   r| j                   j                         s|S |j                  xs i }|j                  d      xs |j                  d      }|r|S | j                   j	                         }|ri |||_        |S Nrk   r_   )r/   is_vertex_airp   rC   get_auth_headersrH   optionsrp   has_authadapted_headerss        rJ   _prepare_optionsz'GeminiNextGenAPIClient._prepare_options   s    ""$*=*=*J*J*LN//'R;;/P7;;?O3PN-->>@!GO rK   r+   r-   r2   r3   r7   r4   r5   set_default_headersr6   set_default_queryr/   _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                  ||| j                  xs |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-   r2   r3   r7   r4   r5   r6   r/    
ValueErrorrg   _custom_query_clientrI   r+   r-   r2   rm   r   r3   r   r4   r/   rH   r+   r-   r2   r3   r7   r4   r5   r}   r6   r~   r/   r   rp   paramss                  rJ   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# ..@.
 
 	
rK   c                    | j                   S rO   r-   rQ   s    rJ   _get_api_version_path_paramz2GeminiNextGenAPIClient._get_api_version_path_param       rK   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   rH   err_msgr   r   s       rJ   _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DrK   )r+   r*   r-   r*   r2   str | httpx.URL | Noner3   !float | Timeout | None | NotGivenr4   intr5   Mapping[str, str] | Noner6   Mapping[str, object] | Noner7   httpx.Client | Noner/   r.   r8   boolreturnNone)r   r#   )r   rP   )r   rT   r   r   r   zdict[str, str]r   zdict[str, str | Omit]rp   r   r?   r   r   r   rx   r   r   r   )r+   r*   r-   r*   r2   r   r3   r   r7   r   r4   int | NotGivenr5   r   r}   r   r6   r   r~   r   r/   r.   r   Mapping[str, Any]r   r   r   r,   r   r,   r   objectr   zhttpx.Responser   r   __name__
__module____qualname____annotations__r   r   rE   r   r"   rR   rU   propertyr   r[   rb   r5   rq   r{   r   with_optionsr   r   __classcell__rI   s   @rJ   r%   r%   C   sa   88
 #"*+/5>.4859 ,0?C -2/7* 7*  	7*
 )7* 37* 7* 27* 37* )7* =7*. &*/7*0 
17*r * *
 ; ; @ @ 1  1 +  + 
  
 

 

  ( #"&+/5>+/&/488<599=?C+-1
 1
  	1

 )1
 31
 )1
 $1
 21
 61
 31
 71
 =1
 )1
 
1
j L  EE 	E
 !E 
E ErK   r%   c                      e Zd ZU ded<   ded<   ded<   dddeed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ed d       Zdddeded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-   )AsyncGeminiNextGenAPIClientAdapter | Noner/   Nr0   Fr1   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.
        Nr:   r0   r;   r<   r=   )rA   rB   rC   r+   r-   r/   rD   rE   r   r   rF   rG   s              rJ   rE   z$AsyncGeminiNextGenAPIClient.__init__'  s    : ?jjnn%56G"K&zz~~&DEHBH,##*&(C 	 		
 $/ rK   c                    ddl m}  ||       S )Nr	   )r$   )rM   r$   )rH   r$   s     rJ   r"   z(AsyncGeminiNextGenAPIClient.interactions`  s    E(..rK   c                    t        |       S rO   )*AsyncGeminiNextGenAPIClientWithRawResponserQ   s    rJ   rR   z-AsyncGeminiNextGenAPIClient.with_raw_responsef  rV   rK   c                    t        |       S rO   )/AsyncGeminiNextGenAPIClientWithStreamedResponserQ   s    rJ   rU   z3AsyncGeminiNextGenAPIClient.with_streaming_responsej  s    >tDDrK   c                    t        d      S rX   r   rQ   s    rJ   r[   zAsyncGeminiNextGenAPIClient.qsn  r\   rK   c                *    | j                   }|i S d|iS r^   r`   ra   s     rJ   rb   z(AsyncGeminiNextGenAPIClient.auth_headerss  rc   rK   c                R    i t         |   ddt                i| j                  S )Nre   zasync:)rD   r5   r   rg   rh   s    rJ   r5   z+AsyncGeminiNextGenAPIClient.default_headers{  s@    
g%
6*;*=)>!?
 ""
 	
rK   c                :   |j                  d      s0|j                  d      st        |j                  d      t              ry | j                  r|j                  d      ry |j                  d      st        |j                  d      t              ry t	        d      rj   rl   ro   s      rJ   rq   z-AsyncGeminiNextGenAPIClient._validate_headers  rr   rK   c                0  K   | j                   r| j                   j                         s|S |j                  xs i }|j                  d      xs |j                  d      }|r|S | j                   j	                          d {   }|ri |||_        |S 7 wrt   )r/   ru   rp   rC   async_get_auth_headersrw   s        rJ   r{   z,AsyncGeminiNextGenAPIClient._prepare_options  s     ""$*=*=*J*J*LN//'R;;/P7;;?O3PN $ 3 3 J J LL!GO  Ms   A>B BBr|   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                  ||| j                  xs |d	|S r   r   r   s                  rJ   r   z AsyncGeminiNextGenAPIClient.copy  r   rK   c                    | j                   S rO   r   rQ   s    rJ   r   z7AsyncGeminiNextGenAPIClient._get_api_version_path_param  r   rK   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       rJ   r   z.AsyncGeminiNextGenAPIClient._make_status_error  r   rK   )r+   r*   r-   r*   r2   r   r3   r   r4   r   r5   r   r6   r   r7   httpx.AsyncClient | Noner/   r   r8   r   r   r   )r   r$   )r   r   )r   r   r   r   r   r   r   )r+   r*   r-   r*   r2   r   r3   r   r7   r   r4   r   r5   r   r}   r   r6   r   r~   r   r/   r   r   r   r   r   r   r   r   r   s   @rJ   r&   r&   !  se   ==
 #"*+/5>.4859 15DH -2/7/ 7/  	7/
 )7/ 37/ 7/ 27/ 37/ .7/ B7/. &*/7/0 
17/r / /
 @ @ E E 1  1 +  + 
  
 

 

  ( #"&+/5>04&/488<599=DH+-1
 1
  	1

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