
    i
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j7        ej8        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=d2d-Z> G d. d/e=ej7        e!e         f         e(          Z? G d0 d1e=ej8        e"e         f         e)          Z@dS )3    )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dS )
MantleBetareturnBetaMessagesc                *    t          | j                  S N)r/   _clientselfs    Z/root/projects/qq-shell/venv/lib/python3.11/site-packages/anthropic/lib/bedrock/_mantle.pymessageszMantleBeta.messages.   s    DL)))    N)r.   r/   __name__
__module____qualname__r   r6    r7   r5   r-   r-   -   s2        * * * _* * *r7   r-   c                  &    e Zd Zedd            ZdS )AsyncMantleBetar.   AsyncBetaMessagesc                *    t          | j                  S r1   )r?   r2   r3   s    r5   r6   zAsyncMantleBeta.messages4   s     ...r7   N)r.   r?   r8   r<   r7   r5   r>   r>   3   s2        / / / _/ / /r7   r>   c                  &    e Zd Zedd	            Zd
S )BaseMantleClienterr_msgstrbodyobjectresponsehttpx.Responser.   r   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  )rG   rE   i  i  i  i  i  i  i  i  i  )status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorRequestTooLargeErrorUnprocessableEntityErrorRateLimitErrorOverloadedErrorInternalServerErrorr   )r4   rC   rE   rG   s       r5   _make_status_errorz#BaseMantleClient._make_status_error=   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&&3GhUYZZZZ3&&7(Y]^^^^3&&-gtTTTT3&&.wPTUUUU3&&27XTXYYYYgtDDDDr7   N)rC   rD   rE   rF   rG   rH   r.   r   )r9   r:   r;   r	   rU   r<   r7   r5   rB   rB   <   s8        $E $E $E X$E $E $Er7   rB   api_key
str | Noneaws_access_keyaws_secret_key
aws_regionaws_profile	skip_authboolbase_urlstr | httpx.URL | Nonedefault_headersMapping[str, str] | Noner.   8tuple[str | None, str | httpx.URL, bool, dict[str, str]]c                b   |rd}d}	nAt          ||           t          | |||t                    }t          | |t                    }	t	          |          }
|t
          j                            d          }||
t          d          d|
 d	}i }|r|	                    |           |	|||fS )
zResolve and validate all Mantle client configuration.

    Returns (resolved_api_key, resolved_base_url, use_sigv4, merged_headers).
    FN)rX   rY   )rV   rX   rY   r[   api_key_env_vars)rV   	use_sigv4rd   !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)rV   rX   rY   rZ   r[   r\   r^   r`   re   resolved_api_keyresolved_regionmerged_headerss               r5   _resolve_mantle_configro   h   s      
	N>ZZZZ%))#5
 
 
	 +5
 
 
 %Z00O:>>"EFF" [  
 Q_PPP%'N /o...Xy.@@r7   c                  x    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d8 fd!Zeed9d#                        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>d7ZeZ xZS )?AnthropicBedrockMantler%   r6   r-   betarW   rZ   rX   rY   aws_session_tokenr[   r]   r\   
_use_sigv4NFrX   rY   rs   rZ   r[   rV   r\   r^   timeoutmax_retriesr`   default_queryhttp_client_strict_response_validationrV   r^   r_   rv   !float | Timeout | None | NotGivenrw   intr`   ra   rx   Mapping[str, object] | Nonery   httpx.Client | Nonerz   r.   Nonec          
     z   t          ||||||||          \  }}}}t          |          }t                                          t          ||	|
||||           || _        || _        || _        || _        || _	        || _
        || _        || _        t          |           | _        t          |           | _        d S N)rV   rX   rY   rZ   r[   r\   r^   r`   )versionr^   rv   rw   custom_headerscustom_queryry   rz   )ro   r!   super__init__r   rV   rZ   rX   rY   rs   r[   r\   rt   r%   r6   r-   rr   r4   rX   rY   rs   rZ   r[   rV   r\   r^   rv   rw   r`   rx   ry   rz   rl   resolved_base_urlre   rn   rm   	__class__s                       r5   r   zAnthropicBedrockMantle.__init__   s    $ J`))!#+	J
 	J
 	J
F+Y )44&#)&#(C 	 		
 		
 		
 (),,!2&"# t$$			r7   r   c                "    t          d          S Ncomma)array_formatr   r3   s    r5   qszAnthropicBedrockMantle.qs        0000r7   dict[str, str]c                @    | j         s| j        ri S | j        }|i S d|iS Nz	X-Api-Keyr\   rt   rV   r4   rV   s     r5   auth_headersz#AnthropicBedrockMantle.auth_headers   8     > 	T_ 	I,?IW%%r7   dict[str, str | Omit]c                F    i t                      j        ddd| j        S )Nfalse
2023-06-01zX-Stainless-Asynczanthropic-versionr   r`   _custom_headersr4   r   s    r5   r`   z&AnthropicBedrockMantle.default_headers   s>    
gg%
!(!-
 
 
 "	
 	
r7   headersr   r   c                    d S r1   r<   r4   r   r   s      r5   _validate_headersz(AnthropicBedrockMantle._validate_headers       r7   requesthttpx.Requestc                L   | j         s| j        sd S |                                                                }t	          |j        t          |j                  |j        | j	        | j
        | j        | j        | j        |t          
  
        }|j                            |           d S N)
methodurlr   rX   rY   rs   regionprofiledataservice_namer\   rt   readdecoder   r   rD   r   r   rX   rY   rs   rZ   r[   DEFAULT_SERVICE_NAMErk   r4   r   r   r   s       r5   _prepare_requestz'AnthropicBedrockMantle._prepare_request  s    > 	 	F||~~$$&&">GK  O.."4?$-
 
 
 	w'''''r7   rV   rX   rY   rs   rZ   r[   r\   r^   rv   ry   rw   r`   set_default_headersrx   set_default_query_extra_kwargsbool | Noneint | NotGivenr   r   r   Mapping[str, Any]r   c                  ||t          d          ||t          d          | j        }|i ||}n||}| j        }|i ||}n||} | j        d|p| j        |p| j        |p| j        |p| j        |p| j        |p| j	        ||n| j
        |p| 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)rV   rX   rY   rs   rZ   r[   r\   r^   rv   ry   rw   r`   rx   r<   
ValueErrorr   _custom_queryr   rV   rX   rY   rs   rZ   r[   r\   r^   
isinstancer   rv   r   rw   r4   rV   rX   rY   rs   rZ   r[   r\   r^   rv   ry   rw   r`   r   rx   r   r   r   paramss                      r5   copyzAnthropicBedrockMantle.copy  H   ( &+>+Joppp$):)Fklll&&44O4GG ,)G#$00-0FF*&Ft~ 
+t|)@T-@)@T-@/I43I!4T_#7t'7#,#8iidn.$.w$A$ANDLLw#'/'<'<R$BR# 
 
 
 
 	
r7   )rX   rW   rY   rW   rs   rW   rZ   rW   r[   rW   rV   rW   r\   r]   r^   r_   rv   r{   rw   r|   r`   ra   rx   r}   ry   r~   rz   r]   r.   r   r.   r   r.   r   r.   r   r   r   r   r   r.   r   r   r   r.   r   )"rV   rW   rX   rW   rY   rW   rs   rW   rZ   rW   r[   rW   r\   r   r^   r_   rv   r{   ry   r~   rw   r   r`   ra   r   ra   rx   r}   r   r}   r   r   r.   r   r9   r:   r;   __annotations__r   r   r   propertyr	   r   r   r`   r   r   r   with_options__classcell__r   s   @r5   rq   rq      s        !!!!OOO
 &*%)(,!%"&"+/5>.4859+/,1!4% 4% 4% 4% 4% 4% 4% 4%l 1 1 1 X X1 & & & X X& 
 
 
 
 
 X X
    X ( ( ( X(. #%)%)(,!%"&!%+/5>+/&/488<599=+-%5
 5
 5
 5
 5
 5
n LLLLLr7   rq   c                  x    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d8 fd!Zeed9d#                        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>d7ZeZ xZS )?AsyncAnthropicBedrockMantler&   r6   r>   rr   rW   rZ   rX   rY   rs   r[   r]   r\   rt   NFru   rV   r^   r_   rv   r{   rw   r|   r`   ra   rx   r}   ry   httpx.AsyncClient | Nonerz   r.   r   c          
     z   t          ||||||||          \  }}}}t          |          }t                                          t          ||	|
||||           || _        || _        || _        || _        || _	        || _
        || _        || _        t          |           | _        t          |           | _        d S r   )ro   r!   r   r   r   rV   rZ   rX   rY   rs   r[   r\   rt   r&   r6   r>   rr   r   s                       r5   r   z$AsyncAnthropicBedrockMantle.__init__a  s    $ J`))!#+	J
 	J
 	J
F+Y )44&#)&#(C 	 		
 		
 		
 (),,!2&"#%d++#D))			r7   r   c                "    t          d          S r   r   r3   s    r5   r   zAsyncAnthropicBedrockMantle.qs  r   r7   r   c                @    | j         s| j        ri S | j        }|i S d|iS r   r   r   s     r5   r   z(AsyncAnthropicBedrockMantle.auth_headers  r   r7   r   c                F    i t                      j        ddd| j        S )Nzasync:asyncior   r   r   r   s    r5   r`   z+AsyncAnthropicBedrockMantle.default_headers  s>    
gg%
!0!-
 
 
 "	
 	
r7   r   r   r   c                    d S r1   r<   r   s      r5   r   z-AsyncAnthropicBedrockMantle._validate_headers  r   r7   r   r   c                P  K   | j         s| j        sd S |                                                                }t	          |j        t          |j                  |j        | j	        | j
        | j        | j        | j        |t          
  
        }|j                            |           d S r   r   r   s       r5   r   z,AsyncAnthropicBedrockMantle._prepare_request  s      > 	 	F||~~$$&&">GK  O.."4?$-
 
 
 	w'''''r7   r   r   r   r   r   r   r   r   c                  ||t          d          ||t          d          | j        }|i ||}n||}| j        }|i ||}n||} | j        d|p| j        |p| j        |p| j        |p| j        |p| j        |p| j	        ||n| j
        |p| j        t          |	t                    r| j        n|	|
t          |          r|n| j        ||d|S r   r   r   s                      r5   r   z AsyncAnthropicBedrockMantle.copy  r   r7   )rX   rW   rY   rW   rs   rW   rZ   rW   r[   rW   rV   rW   r\   r]   r^   r_   rv   r{   rw   r|   r`   ra   rx   r}   ry   r   rz   r]   r.   r   r   r   r   r   r   )"rV   rW   rX   rW   rY   rW   rs   rW   rZ   rW   r[   rW   r\   r   r^   r_   rv   r{   ry   r   rw   r   r`   ra   r   ra   rx   r}   r   r}   r   r   r.   r   r   r   s   @r5   r   r   T  s        !!!!OOO
 &*%)(,!%"&"+/5>.485904,1!4* 4* 4* 4* 4* 4* 4* 4*l 1 1 1 X X1 & & & X X& 
 
 
 
 
 X X
    X ( ( ( X(. #%)%)(,!%"&!%+/5>04&/488<599=+-%5
 5
 5
 5
 5
 5
n LLLLLr7   r   )rV   rW   rX   rW   rY   rW   rZ   rW   r[   rW   r\   r]   r^   r_   r`   ra   r.   rb   )A
__future__r   rh   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.messagesr/   r?   r   rg   ClientAsyncClientr)   r+   r-   r>   rB   ro   rq   r   r<   r7   r5   <module>r      s   " " " " " " 				 / / / / / / / / / / / / , , , , , , , ,              8 8 8 8 8 8 8 8 8 8 8 8       & & & & & & # # # # # # ( ( ( ( ( ( : : : : : : : : - - - - - - - - 9 9 9 9 9 9 9 9                       : 9 9 9 9 9 9 9 c c c c c c c c' P uU\5CT5T/UVVV'+5kRUFV9V3WXXX* * * * * * * */ / / / /& / / /&E &E &E &E &Ez-"@A &E &E &EX4A 4A 4A 4Atl l l l l-elF3K.GH- l l ldl l l l l"253DkRUFV3V"WYg l l l l lr7   