
    b\jMJ                    p   % S SK Jr  S SKrS SKrS SKrS SKJrJrJ	r	J
r
Jr  S SKJrJr  S SKrSSKJr  SSKJrJr  SS	KJrJrJr  SS
KJrJr  SSKJr  SSKJr  SSK J!r!J"r"  SSKJ#r#J$r$  SSK%J&r&  SSK'J(r(J)r)J*r*J+r+J,r,J-r-  SSK.J/r/  SSK0J1r1J2r2  SSK3J4r4J5r5  \Rl                  " \75      r8S\9S'   Sr:\
" S\\Rv                  \Rx                  4   S9r=\
" S\\!\   \"\   4   S9r>S"S jr?S#S jr@ " S S\)\=\>4   5      rA " S S\A\Rv                  \!\   4   \*5      rB " S  S!\A\Rx                  \"\   4   \+5      rCg)$    )annotationsN)AnyUnionMappingTypeVarSequence)Selfoverride   )_exceptions   )Beta	AsyncBeta)	NOT_GIVENTimeoutNotGiven)is_dictis_given)
model_copy)__version__)StreamAsyncStream)AnthropicErrorAPIStatusError)MiddlewareInput)DEFAULT_MAX_RETRIES
BaseClientSyncAPIClientAsyncAPIClientFinalRequestOptionsmerge_headersAWSEventStreamDecoder)MessagesAsyncMessages)CompletionsAsyncCompletionszlogging.Loggerlogzbedrock-2023-05-31_HttpxClientT)bound_DefaultStreamTc                l   [        U SS9n[        UR                  5      (       a  UR                  R                  S[        5        [        UR                  5      (       aM  UR                  R                  S5      nU(       a+  UR                  R                  SUR                  S5      5        UR                  S;   a  UR                  S:X  a  [        UR                  5      (       d  [        S	5      eUR                  R                  S
S 5      n[        R                  R                  [!        U5      SS9nUR                  R                  SS5      nU(       a  SU S3Ul	        OSU S3Ul	        UR                  R#                  S5      (       a  [%        S5      eUR                  S:X  a  [%        S5      eU$ )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/invokez/v1/messages/batchesz-The Batch API is not supported in Bedrock yetz/v1/messages/count_tokensz.Token counting is not supported in Bedrock yet)r   r   	json_data
setdefaultDEFAULT_VERSIONr   headersgetspliturlmethodRuntimeErrorpopurllibparsequotestr
startswithr   )input_optionsoptionsbetasr5   r8   s        S/var/www/website/venv/lib/python3.13/site-packages/anthropic/lib/bedrock/_client.py_prepare_optionsrL   (   sg   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#E7'2GK{{455LMM{{11MNNN    c                    [         R                  R                  S5      n U c2   SSKnUR	                  5       nUR
                  (       a  UR
                  n U c  [        R                  S5        Sn U $ ! [         a     N(f = f)z]
Infer the AWS region from the environment variables or
from the boto3 session if available.

AWS_REGIONNr   z0No AWS region specified, defaulting to us-east-1	us-east-1)	osenvironr=   boto3Sessionregion_nameImportErrorr(   warning)
aws_regionrS   sessions      rK   _infer_regionrZ   H   sw    
 -J	mmoG""$00
 FG 
  		s   1A1 1
A>=A>c                  8    \ rS rSr\        SS j5       rSrg)BaseBedrockClient_   c                  UR                   S:X  a  [        R                  " XUS9$ UR                   S:X  a  [        R                  " XUS9$ UR                   S:X  a  [        R                  " XUS9$ UR                   S:X  a  [        R
                  " XUS9$ UR                   S:X  a  [        R                  " XUS9$ UR                   S:X  a  [        R                  " XUS9$ UR                   S:X  a  [        R                  " XUS9$ UR                   S	:X  a  [        R                  " XUS9$ UR                   S
:  a  [        R                  " XUS9$ [        XUS9$ )Ni  )responsebodyi  i  i  i  i  i  i  i  )status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorServiceUnavailableErrorInternalServerErrorr   )selferr_msgr`   r_   s       rK   _make_status_error$BaseBedrockClient._make_status_error`   s@    3&..wPTUU3&227TXYY3&44WVZ[[3&,,WdSS3&,,WdSS3&77Y]^^3&--gtTT3&66wX\]]3&227TXYYgtDDrM    N)rl   rF   r`   objectr_   zhttpx.Responsereturnr   )__name__
__module____qualname____firstlineno__r
   rm   __static_attributes__ro   rM   rK   r\   r\   _   s@    !E!E 	!E
 !!E 
!E !ErM   r\   c                  \  ^  \ rS rSr% S\S'   S\S'   S\S'   SSSSSSS\\SSSSS	4                             SU 4S
 jjjr\SS j5       r	\SS j5       r
\SS j5       rSSSSSS\S\SSSS\0 S.                               SS jjr\rSS jrSrU =r$ )AnthropicBedrock   r$   messagesr&   completionsr   betaNFc                  > Uc  [         R                  R                  S5      nUS L=(       d    US L=(       d    US L=(       d    US LnUb  U(       a  [        S5      eX`l        Xl        X l        Uc
  [        5       OUU l        X@l	        XPl
        Uc  [         R                  R                  S5      nUc  SU R                   S3n[        TU ]1  [        UUU	U
UUUUS9	  [        U 5      U l        [!        U 5      U l        [%        U 5      U l        g NAWS_BEARER_TOKEN_BEDROCKzzCannot specify both `api_key` and AWS credentials (`aws_access_key`, `aws_secret_key`, `aws_session_token`, `aws_profile`)ANTHROPIC_BEDROCK_BASE_URLzhttps://bedrock-runtime.z.amazonaws.com)	versionbase_urltimeoutmax_retriescustom_headerscustom_queryhttp_client
middleware_strict_response_validation)rQ   rR   r=   
ValueErrorapi_keyaws_secret_keyaws_access_keyrZ   rX   aws_profileaws_session_tokensuper__init__r   r   r|   r$   rz   r&   r{   rk   r   r   rX   r   r   r   r   r   r   default_headersdefault_queryr   r   r   has_aws_credentials	__class__s                   rK   r   AnthropicBedrock.__init__   s&   4 ?jjnn%?@G $& 'T)' ,' $&	 	 #6 M  $+,,-7-?-/Z&!2zz~~&BCH1$//1B.QH#*&#!(C 	 
	
 J	 &t,rM   c                    [        5       $ Nr"   rk   s    rK   _make_sse_decoder"AnthropicBedrock._make_sse_decoder       $&&rM   c                    [        U5      $ r   rL   rk   rI   s     rK   rL   !AnthropicBedrock._prepare_options   s    ((rM   c                   U R                   b  SU R                    3UR                  S'   g SSKJn  UR	                  5       R                  5       nU" UR                  [        UR                  5      UR                  U R                  U R                  U R                  U R                  =(       d    SU R                  US9	nUR                  R                  U5        g NzBearer Authorizationr   )get_auth_headersrP   )	r@   r?   r<   r   r   r   regionprofiledatar   r<   _authr   readdecoder@   rF   r?   r   r   r   rX   r   updaterk   requestr   r   r<   s        rK   _prepare_request!AnthropicBedrock._prepare_request   s    <<#18/GGOOO,+||~$$&">>GKK OO...."44??1k$$

 	w'rM   r   r   rX   r   r   r   r   r   r   r   set_default_headersr   set_default_queryr   _extra_kwargsc                  U
b  Ub  [        S5      eUb  Ub  [        S5      eU R                  nU
b  [        UU
5      nOUb  UnU R                  nUb  0 UEUEnOUb  UnU R                  " SU=(       d    U R
                  U=(       d    U R                  U=(       d    U R                  U=(       d    U R                  U=(       d    U R                  U=(       d    U R                  [        U[        5      (       a  U R                  OUU[        U	5      (       a  U	OU R                  UU[        U[        5      (       a  U R                   OUS.UD6$ zn
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   rX   r   r   r   r   r   r   r   r   r   ro   r   _custom_headersr!   _custom_queryr   r   r   rX   r   r   r   
isinstancer   r   r   r   _middlewarerk   r   r   rX   r   r   r   r   r   r   r   r   r   r   r   r   r<   paramss                     rK   copyAnthropicBedrock.copy   @   , &+>+Jopp$):)Fkll&&&#G_=G ,)G##$00-0F*&F~~ 
)@T-@-@)@T-@-@!4T__/I43I3I+t||.$.w$A$ADLLw#'/'<'<$BRBR# +5j(+K+Kt''Q[
 
 	
rM   c                <    U R                  / U R                  QUQS9$ zA new client with the given middleware appended after this client's middleware.

Convenience for applying extra middleware to a single request:

```py
client.with_middleware(my_middleware).messages.create(...)
```
)r   r   r   rk   r   s     rK   with_middleware AnthropicBedrock.with_middleware-  &     yy$Dd&6&6$D$DyEErM   	r   r   r   rX   r   r   r|   r{   rz   )r   
str | Noner   r   rX   r   r   r   r   r   r   r   r   str | httpx.URL | Noner   'float | httpx.Timeout | None | NotGivenr   intr   Mapping[str, str] | Noner   Mapping[str, object] | Noner   httpx.Client | Noner    Sequence[MiddlewareInput] | Noner   boolrq   Nonerq   r#   rI   r    rq   r    r   zhttpx.Requestrq   r   ) r   r   r   r   rX   r   r   r   r   r   r   r   r   !float | Timeout | None | NotGivenr   r   r   int | NotGivenr   r   r   r   r   r   r   r   r   +Sequence[MiddlewareInput] | None | NotGivenr   Mapping[str, Any]rq   r	   r   r   rq   r	   rr   rs   rt   ru   __annotations__r   r   r   r
   r   rL   r   r   with_optionsr   rv   __classcell__r   s   @rK   rx   rx      s   
J &*%)!%"&(,"+/;D.4859+/7; -21F-"F- #F- 	F-
  F- &F- F- )F- 9F- F- 2F- 3F- )F- 5F-0 &*1F-2 
3F- F-P ' ' ) ) ( (2 &*%)!%(,"+/5>+/&/488<599=BK+-#6
 #6
 #	6

 6
 &6
 6
 )6
 36
 )6
 $6
 26
 66
 36
 76
  @!6
" )#6
$ 
%6
t L	F 	FrM   rx   c                  \  ^  \ rS rSr% S\S'   S\S'   S\S'   SSSSSSS\\SSSSS	4                             SU 4S
 jjjr\SS j5       r	\SS j5       r
\SS j5       rSSSSSS\S\SSSS\0 S.                               SS jjr\rSS jrSrU =r$ )AsyncAnthropicBedrocki9  r%   rz   r'   r{   r   r|   NFc                  > Uc  [         R                  R                  S5      nUS L=(       d    US L=(       d    US L=(       d    US LnUb  U(       a  [        S5      eX`l        Xl        X l        Uc
  [        5       OUU l        X@l	        XPl
        Uc  [         R                  R                  S5      nUc  SU R                   S3n[        TU ]1  [        UUU	U
UUUUS9	  [        U 5      U l        [!        U 5      U l        [%        U 5      U l        g r~   )rQ   rR   r=   r   r   r   r   rZ   rX   r   r   r   r   r   r%   rz   r'   r{   r   r|   r   s                   rK   r   AsyncAnthropicBedrock.__init__>  s'   4 ?jjnn%?@G $& 'T)' ,' $&	 	 #6 M  $+,,-7-?-/Z&!2zz~~&BCH1$//1B.QH#*&#!(C 	 
	
 &d++D1dO	rM   c                    [        5       $ r   r"   r   s    rK   r   'AsyncAnthropicBedrock._make_sse_decoder  r   rM   c                    #    [        U5      $ 7fr   r   r   s     rK   rL   &AsyncAnthropicBedrock._prepare_options  s     ((s   c                  #    U R                   b  SU R                    3UR                  S'   g SSKJn  UR	                  5       R                  5       nU" UR                  [        UR                  5      UR                  U R                  U R                  U R                  U R                  =(       d    SU R                  US9	nUR                  R                  U5        g 7fr   r   r   s        rK   r   &AsyncAnthropicBedrock._prepare_request  s     <<#18/GGOOO,+||~$$&">>GKK OO...."44??1k$$

 	w's   CCr   c                  U
b  Ub  [        S5      eUb  Ub  [        S5      eU R                  nU
b  [        UU
5      nOUb  UnU R                  nUb  0 UEUEnOUb  UnU R                  " SU=(       d    U R
                  U=(       d    U R                  U=(       d    U R                  U=(       d    U R                  U=(       d    U R                  U=(       d    U R                  [        U[        5      (       a  U R                  OUU[        U	5      (       a  U	OU R                  UU[        U[        5      (       a  U R                   OUS.UD6$ r   r   r   s                     rK   r   AsyncAnthropicBedrock.copy  r   rM   c                <    U R                  / U R                  QUQS9$ r   r   r   s     rK   r   %AsyncAnthropicBedrock.with_middleware  r   rM   r   )r   r   r   r   rX   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   httpx.AsyncClient | Noner   r   r   r   rq   r   r   r   r   ) r   r   r   r   rX   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rq   r	   r   r   r   s   @rK   r   r   9  s   !!
O &*%)!%"&(,"+/;D.4859047; -21F$"F$ #F$ 	F$
  F$ &F$ F$ )F$ 9F$ F$ 2F$ 3F$ .F$ 5F$0 &*1F$2 
3F$ F$P ' ' ) ) ( (2 &*%)!%(,"+/5>04&/488<599=BK+-#6
 #6
 #	6

 6
 &6
 6
 )6
 36
 .6
 $6
 26
 66
 36
 76
  @!6
" )#6
$ 
%6
t L	F 	FrM   r   )rH   r    rq   r    )rq   rF   )D
__future__r   rQ   loggingurllib.parserC   typingr   r   r   r   r   typing_extensionsr	   r
   httpx r   _betar   r   _typesr   r   r   _utilsr   r   _compatr   _versionr   
_streamingr   r   r   r   r   r   _base_clientr   r   r   r   r    r!   _stream_decoderr#   resources.messagesr$   r%   resources.completionsr&   r'   	getLoggerrr   r(   r   r;   ClientAsyncClientr)   r+   rL   rZ   r\   rx   r   ro   rM   rK   <module>r     s   " 	   9 9 ,   " 2 2 ' ! # - 9 *  3 9 B''1^ 1&uU\\5CTCT5T/UV+5kRUFV9V3WX@.#E
=/#AB #ELqF(vc{)BC] qFhqF-e.?.?SAQ.QRTb qFrM   