
    .MgU:                        d dl mZ d dlZd dlZd dl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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' ddl(m)Z) ddl*m+Z+m,Z, ddl-m.Z.m/Z/ dZ0 e	deejb                  ejd                  f         Z3 e	deee   e e   f         Z4ddZ5 G d de$e3e4f         Z6 G d de6ejb                  ee   f   e%      Z7 G d de6ejd                  e e   f   e&      Z8y)    )annotationsN)AnyUnionMappingTypeVar)Selfoverride   )_exceptions   )Beta	AsyncBeta)	NOT_GIVENTimeoutNotGiven)is_dictis_given)
model_copy)__version__)StreamAsyncStream)APIStatusError)DEFAULT_MAX_RETRIES
BaseClientSyncAPIClientAsyncAPIClientFinalRequestOptionsAWSEventStreamDecoder)MessagesAsyncMessages)CompletionsAsyncCompletionszbedrock-2023-05-31_HttpxClientT)bound_DefaultStreamTc                   t        | d      }t        |j                        r}|j                  j                  dt               t        |j                        rH|j                  j                  d      }|r+|j                  j                  d|j                  d             |j                  dv r|j                  dk(  rt        |j                        st        d	      |j                  j                  d
d       }t        j                  j                  t!        |      d      }|j                  j                  dd      }|rd| d|_	        |S d| d|_	        |S )NT)deepanthropic_versionzanthropic-betaanthropic_beta,>   /v1/complete/v1/messages/v1/messages?beta=truepostz<Expected dictionary json_data for post /completions endpointmodel:)safestreamFz/model/z/invoke-with-response-streamz/invoke)r   r   	json_data
setdefaultDEFAULT_VERSIONr   headersgetspliturlmethodRuntimeErrorpopurllibparsequotestr)input_optionsoptionsbetasr0   r3   s        kE:\wamp.anq\www\apps\calme\nutritwin\resources\nutritwin\Lib\site-packages\anthropic/lib/bedrock/_client.py_prepare_optionsrF   #   s,   T2Gw  !$$%8/JGOO$OO''(89E!!,,-=u{{3?OP{{PPU\UcUcgmUmw(()]^^!!%%gt4""3u:C"8""&&x7#E7*FGGK N $E7'2GKN    c                  .    e Zd Ze	 	 	 	 	 	 	 	 dd       Zy)BaseBedrockClientc                  |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   )selferr_msgrL   rK   s       rE   _make_status_errorz$BaseBedrockClient._make_status_error>   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DrG   N)rW   rA   rL   objectrK   zhttpx.Responsereturnr   )__name__
__module____qualname__r	   rX    rG   rE   rI   rI   =   s@    EE 	E
 !E 
E ErG   rI   c                  "    e Zd ZU ded<   ded<   ded<   ddddddeeddddf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd	Zedd
       Zedd       Z	edd       Z
dddddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS )AnthropicBedrockr    messagesr"   completionsr   betaNFc           
        || _         || _        |#t        j                  j	                  d      xs d}|| _        || _        || _        |t        j                  j	                  d      }|d| j
                   d}t        | %  t        ||||	|
||       t        |       | _        t        |       | _        t        |       | _        y N
AWS_REGION	us-east-1ANTHROPIC_BEDROCK_BASE_URLzhttps://bedrock-runtime.z.amazonaws.com)versionbase_urltimeoutmax_retriescustom_headerscustom_queryhttp_client_strict_response_validation)aws_secret_keyaws_access_keyosenvironr8   
aws_regionaws_profileaws_session_tokensuper__init__r   r   rc   r    ra   r"   rb   rV   rq   rr   ru   rv   rw   rj   rk   rl   default_headersdefault_queryro   rp   	__class__s                rE   ry   zAnthropicBedrock.__init__e   s    0 -,5DJ$&!2zz~~&BCH1$//1B.QH#*&#(C 	 		
 J	 &t,rG   c                    t               S Nr   rV   s    rE   _make_sse_decoderz"AnthropicBedrock._make_sse_decoder       $&&rG   c                    t        |      S r   rF   rV   rC   s     rE   rF   z!AnthropicBedrock._prepare_options   s    ((rG   c                ^   ddl m} |j                         j                         } ||j                  t        |j                        |j                  | j                  | j                  | j                  | j                  xs d| j                  |	      }|j                  j                  |       y Nr   )get_auth_headersrg   )	r;   r:   r7   rr   rq   rw   regionprofiledata_authr   readdecoder;   rA   r:   r7   rr   rq   rw   ru   rv   updaterV   requestr   r   r7   s        rE   _prepare_requestz!AnthropicBedrock._prepare_request   s    +||~$$&">>GKK OO...."44??1k$$

 	w'rG   rq   rr   ru   rw   rj   rk   ro   rl   r{   set_default_headersr|   set_default_query_extra_kwargsc                  |	|
t        d      ||t        d      | j                  }|	i ||	}n|
|
}| j                  }|i ||}n||} | j                  d|xs | j                  |xs | j
                  |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)
rq   rr   ru   rw   rj   rk   ro   rl   r{   r|   r^   
ValueError_custom_headers_custom_queryr}   rq   rr   ru   rw   rj   
isinstancer   rk   r   rl   rV   rq   rr   ru   rw   rj   rk   ro   rl   r{   r   r|   r   r   r7   paramss                   rE   copyzAnthropicBedrock.copy      ( &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&Ft~~ 
)@T-@-@)@T-@-@!4T__/I43I3I.$.w$ADLLw#'/'<$BRBR# 
 
 	
rG   )rq   
str | Nonerr   r   ru   r   rv   r   rw   r   rj   str | httpx.URL | Nonerk   'float | httpx.Timeout | None | NotGivenrl   intr{   Mapping[str, str] | Noner|   Mapping[str, object] | Nonero   httpx.Client | Nonerp   boolrZ   NonerZ   r   rC   r   rZ   r   r   zhttpx.RequestrZ   r   )rq   r   rr   r   ru   r   rw   r   rj   r   rk   !float | Timeout | None | NotGivenro   r   rl   int | NotGivenr{   r   r   r   r|   r   r   r   r   Mapping[str, Any]rZ   r   r[   r\   r]   __annotations__r   r   ry   r	   r   rF   r   r   with_options__classcell__r}   s   @rE   r`   r`   `   s   
J &*%)!%"&(,+/;D.4859+/ -2-5-"5- #5- 	5-
  5- &5- )5- 95- 5- 25- 35- )5-, &*-5-. 
/5-n ' ' ) ) ( (* &*%)!%(,+/5>+/&/488<599=+-2
 #2
 #	2

 2
 &2
 )2
 32
 )2
 $2
 22
 62
 32
 72
 )2
  
!2
l LrG   r`   c                  "    e Zd ZU ded<   ded<   ded<   ddddddeeddddf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd	Zedd
       Zedd       Z	edd       Z
dddddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS )AsyncAnthropicBedrockr!   ra   r#   rb   r   rc   NFc           
        || _         || _        |#t        j                  j	                  d      xs d}|| _        || _        || _        |t        j                  j	                  d      }|d| j
                   d}t        | %  t        ||||	|
||       t        |       | _        t        |       | _        t        |       | _        y re   )rq   rr   rs   rt   r8   ru   rv   rw   rx   ry   r   r!   ra   r#   rb   r   rc   rz   s                rE   ry   zAsyncAnthropicBedrock.__init__   s    0 -,5DJ$&!2zz~~&BCH1$//1B.QH#*&#(C 	 		
 &d++D1dO	rG   c                    t               S r   r   r   s    rE   r   z'AsyncAnthropicBedrock._make_sse_decoder,  r   rG   c                    K   t        |      S wr   r   r   s     rE   rF   z&AsyncAnthropicBedrock._prepare_options0  s     ((s   c                f  K   ddl m} |j                         j                         } ||j                  t        |j                        |j                  | j                  | j                  | j                  | j                  xs d| j                  |	      }|j                  j                  |       y wr   r   r   s        rE   r   z&AsyncAnthropicBedrock._prepare_request4  s     +||~$$&">>GKK OO...."44??1k$$

 	w's   B/B1r   c                  |	|
t        d      ||t        d      | j                  }|	i ||	}n|
|
}| j                  }|i ||}n||} | j                  d|xs | j                  |xs | j
                  |xs | j                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d
|S r   r   r   s                   rE   r   zAsyncAnthropicBedrock.copyG  r   rG   )rq   r   rr   r   ru   r   rv   r   rw   r   rj   r   rk   r   rl   r   r{   r   r|   r   ro   httpx.AsyncClient | Nonerp   r   rZ   r   r   r   r   )rq   r   rr   r   ru   r   rw   r   rj   r   rk   r   ro   r   rl   r   r{   r   r   r   r|   r   r   r   r   r   rZ   r   r   r   s   @rE   r   r      s   !!
O &*%)!%"&(,+/;D.485904 -2-5$"5$ #5$ 	5$
  5$ &5$ )5$ 95$ 5$ 25$ 35$ .5$, &*-5$. 
/5$n ' ' ) ) ( (* &*%)!%(,+/5>04&/488<599=+-2
 #2
 #	2

 2
 &2
 )2
 32
 .2
 $2
 22
 62
 32
 72
 )2
  
!2
l LrG   r   )rB   r   rZ   r   )9
__future__r   rs   urllib.parser>   typingr   r   r   r   typing_extensionsr   r	   httpx r   _betar   r   _typesr   r   r   _utilsr   r   _compatr   _versionr   
_streamingr   r   r   _base_clientr   r   r   r   r   _stream_decoderr   resources.messagesr    r!   resources.completionsr"   r#   r6   ClientAsyncClientr$   r&   rF   rI   r`   r   r^   rG   rE   <module>r      s    " 	  / / ,   " 2 2 ' ! # - )  3 9 B&uU\\5CTCT5T/UV+5kRUFV9V3WX4 E
=/#AB  EFM(vc{)BC] M`M-e.?.?SAQ.QRTb MrG   