
    .MgGG                    D   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mZ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) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3m4Z4 erd dl5m6Z7 dZ8 edeejr                  ejt                  f         Z; edee'e   e(e   f         Z< G d de-e;e<f         Z= G d de=ejr                  e'e   f   e.      Z> G d de=ejt                  e(e   f   e/      Z?ddZ@y)     )annotationsN)TYPE_CHECKINGAnyUnionMappingTypeVar)Selfoverride   )_exceptions   )	load_authrefresh_auth)Beta	AsyncBeta)	NOT_GIVENNotGiven	TransportProxiesTypesAsyncTransport)is_dictasyncifyis_given)
model_copytyped_cached_property)FinalRequestOptions)__version__)StreamAsyncStream)APIStatusError)DEFAULT_MAX_RETRIESDEFAULT_CONNECTION_LIMITS
BaseClientSyncAPIClientAsyncAPIClientSyncHttpxClientWrapperAsyncHttpxClientWrapper)MessagesAsyncMessages)Credentialszvertex-2023-10-16_HttpxClientT)bound_DefaultStreamTc                  R    e Zd Zedd       Zedd       Ze	 	 	 	 	 	 	 	 dd       Zy)BaseVertexClientc                    t        d      )Nzregion not set)RuntimeError)selfs    jE:\wamp.anq\www\apps\calme\nutritwin\resources\nutritwin\Lib\site-packages\anthropic/lib/vertex/_client.pyregionzBaseVertexClient.region)   s    +,,    c                J    t         j                  j                  d      }|r|S y )NANTHROPIC_VERTEX_PROJECT_ID)osenvirongetr2   
project_ids     r3   r<   zBaseVertexClient.project_id-   s!    ZZ^^$AB
r5   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    )r2   err_msgr?   r>   s       r3   _make_status_errorz#BaseVertexClient._make_status_error5   s0    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Dr5   Nreturnstr)rL   
str | None)rI   rM   r?   objectr>   zhttpx.ResponserL   r    )__name__
__module____qualname__r   r4   r<   r
   rJ    r5   r3   r/   r/   (   sh    - -   EE 	E
 !E 
E Er5   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ddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZedd	       Zedd
       Z	ddZ
eedddeddeddddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS )AnthropicVertexr(   messagesr   betaNFr4   r<   access_tokencredentialsbase_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client	transportproxiesconnection_pool_limits_strict_response_validationc                  t        |      s$t        j                  j                  dt              }t        |      st        d      |'t        j                  j                  d      }|d| d}t        |   t        |||||	|
||||       t        |      r|| _	        || _
        || _        || _        t        |       | _        t        |       | _        y 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_URLzhttps://z-aiplatform.googleapis.com/v1)versionr[   r\   r]   custom_headerscustom_queryr`   ra   rb   limitsrd   )r   r8   r9   r:   r   
ValueErrorsuper__init__r   r<   r4   rY   rZ   r(   rV   r   rW   r2   r4   r<   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   	__class__s                  r3   ro   zAnthropicVertex.__init__[   s    , ZZ^^$5yAF a  zz~~&ABH%fX-JK#*&#)(C 	 	
 J(DO(& J	r5   c                F    t        || j                  | j                        S N)r<   r4   _prepare_optionsr<   r4   r2   optionss     r3   ru   z AnthropicVertex._prepare_options   s    DOODKKXXr5   c                |    |j                   j                  d      ry d| j                          |j                   d<   y NAuthorizationzBearer headersr:   _ensure_access_tokenr2   requests     r3   _prepare_requestz AnthropicVertex._prepare_request   s6    ??/-4T5N5N5P4Q+R(r5   c                   | j                   | j                   S | j                  s1t        | 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)
rY   rZ   r   r<   expiredtokenr   r1   
isinstancerM   r;   s     r3   r}   z$AnthropicVertex._ensure_access_token   s    ($$$+4+P(Dj??",##4+;+;+A+A))*%%QRR$**00#666%%%r5   r4   r<   rY   rZ   r[   r\   r`   rc   r]   r^   set_default_headersr_   set_default_query_extra_kwargsc                  |
|t        d      ||t        d      | j                  }|
i ||
}n||}| j                  }|i ||}n||}|5|t        d      t        | j                  t
              st        d      d}n1| j                  t        ur| j                  }nd}|xs | j                  } | j                  dt        |      r|n| j                  t        |      r|n| j                  xs t        |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.
        NzPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusivezNThe 'http_client' argument is mutually exclusive with 'connection_pool_limits'zfA custom HTTP client has been set and is mutually exclusive with the 'connection_pool_limits' argument)
r4   r<   rY   rZ   r[   r\   r`   r]   r^   r_   rS   )rm   _custom_headers_custom_queryr   _clientr&   _limitsr"   rq   r   r4   r<   r   rY   rZ   r[   r   r\   r]   r2   r4   r<   rY   rZ   r[   r\   r`   rc   r]   r^   r   r_   r   r   r|   paramss                    r3   copyzAnthropicVertex.copy   s   * &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!-& !qrrdll,BC |  K||#<<)-&)-&%5Kt~~ 
%f-64;;%-j%9zt?[R[%:):):#7t'7'7.$.w$ADLLw#'/'<$BRBR# 
 
 	
r5   )r4   str | NotGivenr<   r   rY   rN   rZ   GoogleCredentials | Noner[   str | httpx.URL | Noner\   'float | httpx.Timeout | None | NotGivenr]   intr^   Mapping[str, str] | Noner_   Mapping[str, object] | Noner`   httpx.Client | Nonera   zTransport | Nonerb   ProxiesTypes | Nonerc   httpx.Limits | Nonerd   boolrL   Nonerw   r   rL   r   r   zhttpx.RequestrL   r   rK   )r4   r   r<   r   rY   rN   rZ   r   r[   r   r\   r   r`   r   rc   r   r]   int | NotGivenr^   r   r   r   r_   r   r   r   r   Mapping[str, Any]rL   r	   rP   rQ   rR   __annotations__r   r!   ro   r
   ru   r   r}   r   with_options__classcell__rq   s   @r3   rU   rU   W   s   
J
 "+%.#'04+/;D.4859+/&*'+6:,1)8 8 #	8
 !8 .8 )8 98 8 28 38 )8 $8" %#8& !4'8( &*)8* 
+8t Y Y S S&* "+%.#'04+/;D+/6:&/488<599=+-!E
 E
 #	E

 !E
 .E
 )E
 9E
 )E
 !4E
 $E
 2E
 6E
 3E
 7E
  )!E
" 
#E
R Lr5   rU   c                  "    e Zd ZU ded<   ded<   eedddeedddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZedd	       Zedd
       Z	ddZ
eedddeddeddddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS )AsyncAnthropicVertexr)   rV   r   rW   NFrX   c                  t        |      s$t        j                  j                  dt              }t        |      st        d      |'t        j                  j                  d      }|d| d}t        |   t        |||||	|
||||       t        |      r|| _	        || _
        || _        || _        t        |       | _        t        |       | _        y rf   )r   r8   r9   r:   r   rm   rn   ro   r   r<   r4   rY   rZ   r)   rV   r   rW   rp   s                  r3   ro   zAsyncAnthropicVertex.__init__  s    , ZZ^^$5yAF a  zz~~&ABH%fX-JK#*&#)(C 	 	
 J(DO(&%d+dO	r5   c                N   K   t        || j                  | j                        S wrs   rt   rv   s     r3   ru   z%AsyncAnthropicVertex._prepare_options=  s     DOODKKXXs   #%c                   K   |j                   j                  d      ry d| j                          d {    |j                   d<   y 7 wry   r{   r~   s     r3   r   z%AsyncAnthropicVertex._prepare_requestA  s@     ??/-44;T;T;V5V4W+X(5Vs   1A
AA
c                @  K   | j                   | j                   S | j                  sC t        t              | j                         d {   \  | _        }| j                  s|| _        | j                  j
                  s| j                  j                  s' t        t              | j                         d {    | j                  j                  st        d      t        | j                  j                  t              sJ | j                  j                  S 7 7 cwr   )rY   rZ   r   r   r<   r   r   r   r1   r   rM   r;   s     r3   r}   z)AsyncAnthropicVertex._ensure_access_tokenI  s     ($$$1D)1DPTP_P_1`+`(Dj??",##4+;+;+A+A((<()9)9:::%%QRR$**00#666%%% ,a
 ;s&   AD
DA-D8D9A"DDr   c                  |
|t        d      ||t        d      | j                  }|
i ||
}n||}| j                  }|i ||}n||}|5|t        d      t        | j                  t
              st        d      d}n1| j                  t        ur| j                  }nd}|xs | j                  } | j                  dt        |      r|n| j                  t        |      r|n| j                  xs t        |xs | j                  |xs | j                  |xs | j                  t        |t               r| j"                  n||t        |	      r|	n| j$                  ||d
|S r   )rm   r   r   r   r   r'   r   r"   rq   r   r4   r<   r   rY   rZ   r[   r   r\   r]   r   s                    r3   r   zAsyncAnthropicVertex.copy[  s   * &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!-& !qrrdll,CD |  K||#<<)-&)-&%5Kt~~ 
%f-64;;%-j%9zt?[R[%:):):#7t'7'7.$.w$ADLLw#'/'<$BRBR# 
 
 	
r5   )r4   r   r<   r   rY   rN   rZ   r   r[   r   r\   r   r]   r   r^   r   r_   r   r`   httpx.AsyncClient | Nonera   zAsyncTransport | Nonerb   r   rc   r   rd   r   rL   r   r   r   rK   )r4   r   r<   r   rY   rN   rZ   r   r[   r   r\   r   r`   r   rc   r   r]   r   r^   r   r   r   r_   r   r   r   r   r   rL   r	   r   r   s   @r3   r   r      s   
O
 "+%.#'04+/;D.485904+/'+6:,1)8$ 8$ #	8$
 !8$ .8$ )8$ 98$ 8$ 28$ 38$ .8$ )8$" %#8$& !4'8$( &*)8$* 
+8$t Y Y Y Y&* "+%.#'04+/;D046:&/488<599=+-!E
 E
 #	E

 !E
 .E
 )E
 9E
 .E
 !4E
 $E
 2E
 6E
 3E
 7E
  )!E
" 
#E
R Lr5   r   c                   t        | d      }t        |j                        r |j                  j                  dt               |j
                  dv r|j                  dk(  r|t        d      t        |j                        st        d      |j                  j                  d      }|j                  j                  d	d
      }|rdnd}d| d| d| d| |_        t        |j                        r|j                  j                  d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/:)
r   r   	json_data
setdefaultDEFAULT_VERSIONurlmethodr1   popr:   )input_optionsr<   r4   rw   r   r   	specifiers          r3   ru   ru     s   T2Gw  !$$%8/J{{@@W^^W]E] c  w(()\]]!!%%g.""&&x7*0&l	":,k&A^_d^eefgpfqr7$$%!!'40Nr5   )r   r   r<   rN   r4   rM   rL   r   )A
__future__r   r8   typingr   r   r   r   r   typing_extensionsr	   r
   httpx r   _authr   r   _betar   r   _typesr   r   r   r   r   _utilsr   r   r   _compatr   r   _modelsr   _versionr   
_streamingr   r   r    _base_clientr!   r"   r#   r$   r%   r&   r'   resources.messagesr(   r)   google.auth.credentialsr*   GoogleCredentialsr   ClientAsyncClientr+   r-   r/   rU   r   ru   rS   r5   r3   <module>r      s   " 	 > > ,   * " R R 1 1 8 * # - )   :H &uU\\5CTCT5T/UV+5kRUFV9V3WX,Ez-"@A ,E^e&u||VC['@A= ePe+E,=,={3?O,OPR` ePr5   