
    Ii*E                       d dl m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 ddlmZmZmZmZ dd	l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!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,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m0Z3m1Z4 dZ5dZ6 edeejn                  ejp                  f         Z9 edee!e   e"e   f         Z: G d de      Z; G d de      Z< G d de'e9e:f         Z=	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d$dZ> G d  d!e=ejn                  e!e   f   e(      Z? G d" d#e=ejp                  e"e   f   e)      Z@y)%    )annotationsN)AnyUnionMappingTypeVar)Selfoverride   )_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven)is_given)cached_property)__version__   )get_auth_headers)SyncAPIResourceAsyncAPIResource)StreamAsyncStream)AnthropicErrorAPIStatusError)DEFAULT_MAX_RETRIES
BaseClientSyncAPIClientAsyncAPIClient)resolve_regionresolve_api_keyresolve_auth_modevalidate_credentials)MessagesAsyncMessageszbedrock-mantle)AWS_BEARER_TOKEN_BEDROCKANTHROPIC_AWS_API_KEY_HttpxClientT)bound_DefaultStreamTc                      e Zd Zedd       Zy)
MantleBetac                ,    t        | j                        S N)BetaMessages_clientselfs    d/volume1/homes/robertsu/coba/app/.venv/lib/python3.12/site-packages/anthropic/lib/bedrock/_mantle.pymessageszMantleBeta.messages.   s    DLL))    N)returnr0   __name__
__module____qualname__r   r5    r6   r4   r-   r-   -   s    * *r6   r-   c                      e Zd Zedd       Zy)AsyncMantleBetac                ,    t        | j                        S r/   )AsyncBetaMessagesr1   r2   s    r4   r5   zAsyncMantleBeta.messages4   s     ..r6   N)r7   r@   r8   r<   r6   r4   r>   r>   3   s    / /r6   r>   c                  .    e Zd Ze	 	 	 	 	 	 	 	 dd       Zy)BaseMantleClientc               *   |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  )responsebodyi  i  i  i  i  i  i  i  i  )status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorRequestTooLargeErrorUnprocessableEntityErrorRateLimitErrorOverloadedErrorInternalServerErrorr   )r3   err_msgrE   rD   s       r4   _make_status_errorz#BaseMantleClient._make_status_error=   sx    3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&33GhUYZZ3&77(Y]^^3&--gtTT3&..wPTUU3&227XTXYYgtDDr6   N)rQ   strrE   objectrD   zhttpx.Responser7   r   )r9   r:   r;   r	   rR   r<   r6   r4   rB   rB   <   s@    $E$E 	$E
 !$E 
$E $Er6   rB   c                .   |rd}d}	n3t        ||       t        | |||t              }t        | |t              }	t	        |      }
|t
        j                  j                  d      }||
t        d      d|
 d	}i }|r|j                  |       |	|||fS )
zResolve and validate all Mantle client configuration.

    Returns (resolved_api_key, resolved_base_url, use_sigv4, merged_headers).
    FN)aws_access_keyaws_secret_key)api_keyrV   rW   aws_profileapi_key_env_vars)rX   	use_sigv4rZ   !ANTHROPIC_BEDROCK_MANTLE_BASE_URLzNo AWS region or base URL found. Set `aws_region` in the constructor, the `AWS_REGION` / `AWS_DEFAULT_REGION` environment variable, or provide a `base_url` / `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` environment variable.zhttps://bedrock-mantle.z.api.aws/anthropic)
r$   r#   _MANTLE_API_KEY_ENV_VARSr"   r!   osenvirongetr   update)rX   rV   rW   
aws_regionrY   	skip_authbase_urldefault_headersr[   resolved_api_keyresolved_regionmerged_headerss               r4   _resolve_mantle_configri   h   s     	N>Z%))#5
	 +5
 %Z0O::>>"EF" [ 
 -_,==OP%'No.Xy.@@r6   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ddddddddeeddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d f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dddddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS ) AnthropicBedrockMantler%   r5   r-   beta
str | Nonerb   rV   rW   aws_session_tokenrY   boolrc   
_use_sigv4NFrV   rW   rn   rb   rY   rX   rc   rd   timeoutmax_retriesre   default_queryhttp_client_strict_response_validationc          
     2   t        ||||||||      \  }}}}t        |      }t        |   t        ||	|
||||       || _        || _        || _        || _        || _	        || _
        || _        || _        t        |       | _        t        |       | _        y N)rX   rV   rW   rb   rY   rc   rd   re   )versionrd   rr   rs   custom_headerscustom_queryru   rv   )ri   r!   super__init__r   rX   rb   rV   rW   rn   rY   rc   rp   r%   r5   r-   rl   r3   rV   rW   rn   rb   rY   rX   rc   rd   rr   rs   re   rt   ru   rv   rf   resolved_base_urlr[   rh   rg   	__class__s                       r4   r}   zAnthropicBedrockMantle.__init__   s    $ J`))!#+	J
F+Y )4&#)&#(C 	 		
 (),,!2&"# t$	r6   c                    t        d      S Ncomma)array_formatr   r2   s    r4   qszAnthropicBedrockMantle.qs        00r6   c                d    | j                   s| j                  ri S | j                  }|i S dd| iS NAuthorizationzBearer rc   rp   rX   r3   rX   s     r4   auth_headersz#AnthropicBedrockMantle.auth_headers   ;     >>T__I,,?I77)!455r6   c                >    i t         |   ddd| j                  S )Nfalse
2023-06-01zX-Stainless-Asynczanthropic-versionr|   re   _custom_headersr3   r   s    r4   re   z&AnthropicBedrockMantle.default_headers   s5    
g%
!(!-
 ""	
 	
r6   c                     y r/   r<   r3   headersrz   s      r4   _validate_headersz(AnthropicBedrockMantle._validate_headers       r6   c                   | j                   s| j                  sy |j                         j                         }t	        |j
                  t        |j                        |j                  | j                  | j                  | j                  | j                  | j                  |t        
      }|j                  j                  |       y N)
methodurlr   rV   rW   rn   regionprofiledataservice_namerc   rp   readdecoder   r   rS   r   r   rV   rW   rn   rb   rY   DEFAULT_SERVICE_NAMEra   r3   requestr   r   s       r4   _prepare_requestz'AnthropicBedrockMantle._prepare_request  s    >>||~$$&">>GKK OO...."44??$$-
 	w'r6   rX   rV   rW   rn   rb   rY   rc   rd   rr   ru   rs   re   set_default_headersrt   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                  |xs | j                  ||n| j                  |xs | j                  t        |	t              r| j                  n|	|
t        |      r|n| j                   ||d|S NzPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)rX   rV   rW   rn   rb   rY   rc   rd   rr   ru   rs   re   rt   r<   
ValueErrorr   _custom_queryr   rX   rV   rW   rn   rb   rY   rc   rd   
isinstancer   rr   r   rs   r3   rX   rV   rW   rn   rb   rY   rc   rd   rr   ru   rs   re   r   rt   r   r   r   paramss                      r4   copyzAnthropicBedrockMantle.copy  C   ( &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&Ft~~ 
+t||)@T-@-@)@T-@-@/I43I3I!4T__#7t'7'7#,#8idnn.$.w$ADLLw#'/'<$BRBR# 
 
 	
r6   )rV   rm   rW   rm   rn   rm   rb   rm   rY   rm   rX   rm   rc   ro   rd   str | httpx.URL | Nonerr   !float | Timeout | None | NotGivenrs   intre   Mapping[str, str] | Nonert   Mapping[str, object] | Noneru   httpx.Client | Nonerv   ro   r7   Noner7   r   r7   zdict[str, str]r7   zdict[str, str | Omit]r   r   rz   r   r7   r   r   zhttpx.Requestr7   r   )"rX   rm   rV   rm   rW   rm   rn   rm   rb   rm   rY   rm   rc   bool | Nonerd   r   rr   r   ru   r   rs   int | NotGivenre   r   r   r   rt   r   r   r   r   Mapping[str, Any]r7   r   r9   r:   r;   __annotations__r   r   r}   propertyr	   r   r   re   r   r   r   with_options__classcell__r   s   @r4   rk   rk      se   
!!O
 &*%)(,!%"&"+/5>.4859+/,1!4% #4% #	4%
 &4% 4%  4% 4% 4% )4% 34% 4% 24% 34% )4%  &*!4%" 
#4%l 1  1 6  6 
  
   ( (. #%)%)(,!%"&!%+/5>+/&/488<599=+-%5
 5
 #	5

 #5
 &5
 5
  5
 5
 )5
 35
 )5
 $5
 25
 65
  3!5
" 7#5
$ )%5
& 
'5
n Lr6   rk   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ddddddddeeddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d f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dddddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS ) AsyncAnthropicBedrockMantler&   r5   r>   rl   rm   rb   rV   rW   rn   rY   ro   rc   rp   NFrq   c          
     2   t        ||||||||      \  }}}}t        |      }t        |   t        ||	|
||||       || _        || _        || _        || _        || _	        || _
        || _        || _        t        |       | _        t        |       | _        y rx   )ri   r!   r|   r}   r   rX   rb   rV   rW   rn   rY   rc   rp   r&   r5   r>   rl   r~   s                       r4   r}   z$AsyncAnthropicBedrockMantle.__init__a  s    $ J`))!#+	J
F+Y )4&#)&#(C 	 		
 (),,!2&"#%d+#D)	r6   c                    t        d      S r   r   r2   s    r4   r   zAsyncAnthropicBedrockMantle.qs  r   r6   c                d    | j                   s| j                  ri S | j                  }|i S dd| iS r   r   r   s     r4   r   z(AsyncAnthropicBedrockMantle.auth_headers  r   r6   c                >    i t         |   ddd| j                  S )Nzasync:asyncior   r   r   r   s    r4   re   z+AsyncAnthropicBedrockMantle.default_headers  s5    
g%
!0!-
 ""	
 	
r6   c                     y r/   r<   r   s      r4   r   z-AsyncAnthropicBedrockMantle._validate_headers  r   r6   c                  K   | j                   s| j                  sy |j                         j                         }t	        |j
                  t        |j                        |j                  | j                  | j                  | j                  | j                  | j                  |t        
      }|j                  j                  |       y wr   r   r   s       r4   r   z,AsyncAnthropicBedrockMantle._prepare_request  s     >>||~$$&">>GKK OO...."44??$$-
 	w's   CC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                  |xs | j                  ||n| j                  |xs | j                  t        |	t              r| j                  n|	|
t        |      r|n| j                   ||d|S r   r   r   s                      r4   r   z AsyncAnthropicBedrockMantle.copy  r   r6   )rV   rm   rW   rm   rn   rm   rb   rm   rY   rm   rX   rm   rc   ro   rd   r   rr   r   rs   r   re   r   rt   r   ru   httpx.AsyncClient | Nonerv   ro   r7   r   r   r   r   r   r   )"rX   rm   rV   rm   rW   rm   rn   rm   rb   rm   rY   rm   rc   r   rd   r   rr   r   ru   r   rs   r   re   r   r   r   rt   r   r   r   r   r   r7   r   r   r   s   @r4   r   r   T  se   
!!O
 &*%)(,!%"&"+/5>.485904,1!4* #4* #	4*
 &4* 4*  4* 4* 4* )4* 34* 4* 24* 34* .4*  &*!4*" 
#4*l 1  1 6  6 
  
   ( (. #%)%)(,!%"&!%+/5>04&/488<599=+-%5
 5
 #	5

 #5
 &5
 5
  5
 5
 )5
 35
 .5
 $5
 25
 65
  3!5
" 7#5
$ )%5
& 
'5
n Lr6   r   )rX   rm   rV   rm   rW   rm   rb   rm   rY   rm   rc   ro   rd   r   re   r   r7   z8tuple[str | None, str | httpx.URL, bool, dict[str, str]])A
__future__r   r^   typingr   r   r   r   typing_extensionsr   r	   httpx r   _qsr   _typesr   r   r   r   _utilsr   _compatr   _versionr   	aws._authr   	_resourcer   r   
_streamingr   r   r   r   _base_clientr   r   r   r    aws._credentialsr!   r"   r#   r$   resources.messagesr%   r&   resources.beta.messagesr0   r@   r   r]   ClientAsyncClientr)   r+   r-   r>   rB   ri   rk   r   r<   r6   r4   <module>r      s   " 	 / / ,    8 8  & # ( : - 9   : c' P uU\\5CTCT5T/UV+5kRUFV9V3WX* */& /&Ez-"@A &EX4A4A 4A 	4A
 4A 4A 4A %4A .4A >4Atl-ellF3K.GH- ldl"253D3DkRUFV3V"WYg lr6   