
     `i@                    ^   d dl mZ d dlZd dlmZmZ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mZ dd	lmZmZ dd
lmZmZ ddl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&m'Z' ddl(m)Z)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/ erd dl0m1Z2 dZ3 edeej4        ej5        f                   Z6 edee$e         e%e         f                   Z7 G d de*e6e7f                   Z8 G d de8ej4        e$e         f         e+          Z9 G d de8ej5        e%e         f         e,          Z:d&d%Z;dS )'    )annotationsN)TYPE_CHECKINGAnyUnionMappingTypeVar)Selfoverride   )_exceptions   )	load_authrefresh_auth)Beta	AsyncBeta)	NOT_GIVENNotGiven)is_dictasyncifyis_given)
model_copytyped_cached_property)FinalRequestOptions)__version__)StreamAsyncStream)AnthropicErrorAPIStatusError)DEFAULT_MAX_RETRIES
BaseClientSyncAPIClientAsyncAPIClient)MessagesAsyncMessages)Credentialszvertex-2023-10-16_HttpxClientT)bound_DefaultStreamTc                  V    e Zd Zedd            Zedd            Zedd            ZdS )BaseVertexClientreturnstrc                     t          d          )Nzregion not set)RuntimeError)selfs    p/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/anthropic/lib/vertex/_client.pyregionzBaseVertexClient.region&   s    +,,,    
str | Nonec                L    t           j                            d          }|r|S d S )NANTHROPIC_VERTEX_PROJECT_ID)osenvirongetr/   
project_ids     r0   r:   zBaseVertexClient.project_id*   s)    Z^^$ABB
 	tr2   err_msgbodyobjectresponsehttpx.Responser   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 |j         d
k    rt          j
        |||          S |j         dk    rt          j        |||          S t          |||          S )Ni  )r>   r<   i  i  i  i  i  i  i  i  i  )status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorServiceUnavailableErrorDeadlineExceededErrorInternalServerErrorr   )r/   r;   r<   r>   s       r0   _make_status_errorz#BaseVertexClient._make_status_error2   s    3&&.wPTUUUU3&&27XTXYYYY3&&4WxVZ[[[[3&&,WxdSSSS3&&,WxdSSSS3&&7(Y]^^^^3&&-gtTTTT3&&6wX\]]]]3&&4WxVZ[[[[3&&27XTXYYYYgtDDDDr2   Nr+   r,   )r+   r3   )r;   r,   r<   r=   r>   r?   r+   r   )__name__
__module____qualname__r   r1   r:   r
   rL    r2   r0   r*   r*   %   sz        - - - -     $E $E $E X$E $E $Er2   r*   c                       e Zd ZU ded<   ded<   eedddeedddddd0 fdZed1d"            Zed2d%            Z	d3d'Z
eedddededdddi d(d4d/ZeZ xZS )5AnthropicVertexr#   messagesr   betaNFr1   r:   access_tokencredentialsbase_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationr1   str | NotGivenr:   rW   r3   rX   GoogleCredentials | NonerY   str | httpx.URL | NonerZ   'float | httpx.Timeout | None | NotGivenr[   intr\   Mapping[str, str] | Noner]   Mapping[str, object] | Noner^   httpx.Client | Noner_   boolr+   Nonec          
        t          |          s%t          j                            dt                    }t          |          st          d          |0t          j                            d          }||dk    rd}nd| d}t                                          t          |||||	|
|           t          |          r|| _	        || _
        || _        || _        t          |           | _        t          |           | _        d S 	NCLOUD_ML_REGIONzNo region was given. The client should be instantiated with the `region` argument or the `CLOUD_ML_REGION` environment variable should be set.ANTHROPIC_VERTEX_BASE_URLglobalz$https://aiplatform.googleapis.com/v1zhttps://z-aiplatform.googleapis.com/v1)versionrY   rZ   r[   custom_headerscustom_queryr^   r_   )r   r6   r7   r8   r   
ValueErrorsuper__init__r   r:   r1   rW   rX   r#   rT   r   rU   r/   r1   r:   rW   rX   rY   rZ   r[   r\   r]   r^   r_   	__class__s               r0   rt   zAnthropicVertex.__init__^   s      	BZ^^$5yAAF 	 a   z~~&ABBHX%%EHHO&OOOH#*&#(C 	 		
 		
 		
 J 	)(DO(& JJ			r2   optionsr   c                :    t          || j        | j                  S N)r:   r1   _prepare_optionsr:   r1   r/   rw   s     r0   r{   z AnthropicVertex._prepare_options   s    DODKXXXXr2   requesthttpx.Requestc                |    |j                             d          rd S d|                                  |j         d<   d S NAuthorizationzBearer headersr8   _ensure_access_tokenr/   r}   s     r0   _prepare_requestz AnthropicVertex._prepare_request   sE    ?// 	F+RT5N5N5P5P+R+R(((r2   r,   c                j   | j         | j         S | j        s+t          | j                  \  | _        }| j        s|| _        | j        j        s| j        j        st          | j                   | j        j        st          d          t          | j        j        t                    sJ | j        j        S N)r:   z0Could not resolve API token from the environment)
rW   rX   r   r:   expiredtokenr   r.   
isinstancer,   r9   s     r0   r   z$AnthropicVertex._ensure_access_token   s    ($$ 	-+4+P+P+P(Dj? -",# 	+4+;+A 	+)***% 	SQRRR$*0#66666%%r2   r1   r:   rW   rX   rY   rZ   r^   r[   r\   set_default_headersr]   set_default_query_extra_kwargsint | NotGivenr   r   r   Mapping[str, Any]r	   c                  |	|
t          d          ||t          d          | j        }|	i ||	}n|
|
}| j        }|i ||}n||}|p| j        } | j        dt          |          r|n| j        t          |          r|n| j        pt          |p| j	        |p| j
        |p| 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.
        NzPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)
r1   r:   rW   rX   rY   rZ   r^   r[   r\   r]   rQ   rr   _custom_headers_custom_query_clientrv   r   r1   r:   r   rW   rX   rY   r   r   rZ   r[   r/   r1   r:   rW   rX   rY   rZ   r^   r[   r\   r   r]   r   r   r   paramss                   r0   copyzAnthropicVertex.copy   N   ( &+>+Joppp$):)Fklll&&44O4GG ,)G#$00-0FF*&F!1T\t~ 
%f-->664;%-j%9%9[zzt?[R[%:):#7t'7.$.w$A$ANDLLw#'/'<'<R$BR# 
 
 
 
 	
r2   )r1   r`   r:   r`   rW   r3   rX   ra   rY   rb   rZ   rc   r[   rd   r\   re   r]   rf   r^   rg   r_   rh   r+   ri   rw   r   r+   r   r}   r~   r+   ri   rM   )r1   r`   r:   r`   rW   r3   rX   ra   rY   rb   rZ   rc   r^   rg   r[   r   r\   re   r   re   r]   rf   r   rf   r   r   r+   r	   rN   rO   rP   __annotations__r   r   rt   r
   r{   r   r   r   with_options__classcell__rv   s   @r0   rS   rS   Z   s!        JJJ
 "+%.#'04+/;D.4859+/,12 2 2 2 2 2 2 2h Y Y Y XY S S S XS& & & &* "+%.#'04+/;D+/&/488<599=+-4
 4
 4
 4
 4
 4
p LLLLLr2   rS   c                       e Zd ZU ded<   ded<   eedddeedddddd0 fdZed1d"            Zed2d%            Z	d3d'Z
eedddededdddi d(d4d/ZeZ xZS )5AsyncAnthropicVertexr$   rT   r   rU   NFrV   r1   r`   r:   rW   r3   rX   ra   rY   rb   rZ   rc   r[   rd   r\   re   r]   rf   r^   httpx.AsyncClient | Noner_   rh   r+   ri   c          
        t          |          s%t          j                            dt                    }t          |          st          d          |0t          j                            d          }||dk    rd}nd| d}t                                          t          |||||	|
|           t          |          r|| _	        || _
        || _        || _        t          |           | _        t          |           | _        d S rk   )r   r6   r7   r8   r   rr   rs   rt   r   r:   r1   rW   rX   r$   rT   r   rU   ru   s               r0   rt   zAsyncAnthropicVertex.__init__   s!      	BZ^^$5yAAF 	 a   z~~&ABBHX%%EHHO&OOOH#*&#(C 	 		
 		
 		
 J 	)(DO(&%d++dOO			r2   rw   r   c                >   K   t          || j        | j                  S ry   rz   r|   s     r0   r{   z%AsyncAnthropicVertex._prepare_options#  s      DODKXXXXr2   r}   r~   c                   K   |j                             d          rd S d|                                  d {V  |j         d<   d S r   r   r   s     r0   r   z%AsyncAnthropicVertex._prepare_request'  s[      ?// 	F+X4;T;T;V;V5V5V5V5V5V5V+X+X(((r2   r,   c                  K   | j         | j         S | j        s? t          t                    | j                   d {V \  | _        }| j        s|| _        | j        j        s| j        j        s( t          t                    | j                   d {V  | j        j        st          d          t          | j        j        t                    sJ | j        j        S r   )rW   rX   r   r   r:   r   r   r   r.   r   r,   r9   s     r0   r   z)AsyncAnthropicVertex._ensure_access_token/  s      ($$ 	-1D)1D1DPTP_1`1`1`+`+`+`+`+`+`(Dj? -",# 	;4+;+A 	;((<(()9:::::::::% 	SQRRR$*0#66666%%r2   r   r   r   r   r   r   r	   c                  |	|
t          d          ||t          d          | j        }|	i ||	}n|
|
}| j        }|i ||}n||}|p| j        } | j        dt          |          r|n| j        t          |          r|n| j        pt          |p| j	        |p| j
        |p| j        t          |t                    r| j        n||t          |          r|n| j        ||d
|S r   r   r   s                   r0   r   zAsyncAnthropicVertex.copyA  r   r2   )r1   r`   r:   r`   rW   r3   rX   ra   rY   rb   rZ   rc   r[   rd   r\   re   r]   rf   r^   r   r_   rh   r+   ri   r   r   rM   )r1   r`   r:   r`   rW   r3   rX   ra   rY   rb   rZ   rc   r^   r   r[   r   r\   re   r   re   r]   rf   r   rf   r   r   r+   r	   r   r   s   @r0   r   r      s!        OOO
 "+%.#'04+/;D.485904,12$ 2$ 2$ 2$ 2$ 2$ 2$ 2$h Y Y Y XY Y Y Y XY& & & &* "+%.#'04+/;D04&/488<599=+-4
 4
 4
 4
 4
 4
p LLLLLr2   r   input_optionsr   r:   r3   r1   r,   r+   c               t   t          | d          }t          |j                  r |j                            dt                     |j        dv r|j        dk    r|t          d          t          |j                  st          d          |j                            d          }|j        	                    d	d
          }|rdnd}d| d| d| d| |_        |j        dv r*|j        dk    r|t          d          d| d| d|_        |j        
                    d          rt          d          |S )NT)deepanthropic_version>   /v1/messages/v1/messages?beta=truepostzNo project_id was given and it could not be resolved from credentials. The client should be instantiated with the `project_id` argument or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.z;Expected json data to be a dictionary for post /v1/messagesmodelstreamFstreamRawPredict
rawPredictz
/projects/z/locations/z/publishers/anthropic/models/:>   /v1/messages/count_tokens#/v1/messages/count_tokens?beta=truez4/publishers/anthropic/models/count-tokens:rawPredictz/v1/messages/batchesz7The Batch API is not supported in the Vertex client yet)r   r   	json_data
setdefaultDEFAULT_VERSIONurlmethodr.   popr8   
startswithr   )r   r:   r1   rw   r   r   	specifiers          r0   r{   r{   |  s   T222Gw !! K$$%8/JJJ{@@@W^W]E]E] c   w()) 	^\]]]!%%g.."&&x77*0B&&l	r:rr&rr_drrgprr{ZZZ_f_mqw_w_w c   w:vv&vvv{455 XVWWWNr2   )r   r   r:   r3   r1   r,   r+   r   )<
__future__r   r6   typingr   r   r   r   r   typing_extensionsr	   r
   httpx r   _authr   r   _betar   r   _typesr   r   _utilsr   r   r   _compatr   r   _modelsr   _versionr   
_streamingr   r   r   r   _base_clientr   r    r!   r"   resources.messagesr#   r$   google.auth.credentialsr%   GoogleCredentialsr   ClientAsyncClientr&   r(   r*   rS   r   r{   rQ   r2   r0   <module>r      s   " " " " " " 				 > > > > > > > > > > > > > > , , , , , , , ,        * * * * * * * * " " " " " " " " ) ) ) ) ) ) ) ) 1 1 1 1 1 1 1 1 1 1 8 8 8 8 8 8 8 8 * * * * * * # # # # # # - - - - - - - - 9 9 9 9 9 9 9 9            : 9 9 9 9 9 9 9 IHHHHHH &uU\5CT5T/UVVV'+5kRUFV9V3WXXX2E 2E 2E 2E 2Ez-"@A 2E 2E 2EjN N N N N&u|VC['@A= N N NbN N N N N+E,={3?O,OPR` N N Nb           r2   