
    4RjK                       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 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' ddl(m)Z)m*Z*m+Z+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2 ddl3m4Z4m5Z5 ddl6m4Z7m5Z8 dZ9dZ: edeejv                  ejx                  f         Z= edee"e   e#e   f         Z> G d de      Z? G d de       Z@ G d de*e=e>f         ZA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d%d ZB G d! d"eAejv                  e"e   f   e+      ZC G d# d$eAejx                  e#e   f   e,      ZDy)&    )annotationsN)AnyUnionMappingTypeVarSequence)Selfoverride   )_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven)is_given)cached_property)__version__   )get_auth_headers)SyncAPIResourceAsyncAPIResource)StreamAsyncStream)AnthropicErrorAPIStatusError)MiddlewareInput)DEFAULT_MAX_RETRIES
BaseClientSyncAPIClientAsyncAPIClientmerge_headers)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    e/var/www/html/meridian/meridian-ai/venv/lib/python3.12/site-packages/anthropic/lib/bedrock/_mantle.pymessageszMantleBeta.messages0   s    DLL))    N)returnr3   __name__
__module____qualname__r   r8    r9   r7   r0   r0   /   s    * *r9   r0   c                      e Zd Zedd       Zy)AsyncMantleBetac                ,    t        | j                        S r2   )AsyncBetaMessagesr4   r5   s    r7   r8   zAsyncMantleBeta.messages6   s     ..r9   N)r:   rC   r;   r?   r9   r7   rA   rA   5   s    / /r9   rA   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   )r6   err_msgrH   rG   s       r7   _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Dr9   N)rT   strrH   objectrG   zhttpx.Responser:   r   )r<   r=   r>   r
   rU   r?   r9   r7   rE   rE   >   s@    $E$E 	$E
 !$E 
$E $Er9   rE   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_keyrY   rZ   aws_profileapi_key_env_vars)r[   	use_sigv4r]   !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)r[   rY   rZ   
aws_regionr\   	skip_authbase_urldefault_headersr^   resolved_api_keyresolved_regionmerged_headerss               r7   _resolve_mantle_configrl   j   s     	N>Z%))#5
	 +5
 %Z0O::>>"EF" [ 
 -_,==OP%'No.Xy.@@r9   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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 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ei d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d dZeZd!dZ xZS )"AnthropicBedrockMantler(   r8   r0   beta
str | Nonere   rY   rZ   aws_session_tokenr\   boolrf   
_use_sigv4NFrY   rZ   rq   re   r\   r[   rf   rg   timeoutmax_retriesrh   default_queryhttp_client
middleware_strict_response_validationc               4   t        ||||||||      \  }}}}t        |      }t        |   t        ||	|
|||||	       || _        || _        || _        || _        || _	        || _
        || _        || _        t        |       | _        t        |       | _        y N)r[   rY   rZ   re   r\   rf   rg   rh   )	versionrg   ru   rv   custom_headerscustom_queryrx   ry   rz   )rl   r$   super__init__r   r[   re   rY   rZ   rq   r\   rf   rs   r(   r8   r0   ro   r6   rY   rZ   rq   re   r\   r[   rf   rg   ru   rv   rh   rw   rx   ry   rz   ri   resolved_base_urlr^   rk   rj   	__class__s                        r7   r   zAnthropicBedrockMantle.__init__   s    & J`))!#+	J
F+Y )4&#)&#!(C 	 
	
 (),,!2&"# t$	r9   c                    t        d      S Ncomma)array_formatr   r5   s    r7   qszAnthropicBedrockMantle.qs        00r9   c                d    | j                   s| j                  ri S | j                  }|i S dd| iS NAuthorizationzBearer rf   rs   r[   r6   r[   s     r7   auth_headersz#AnthropicBedrockMantle.auth_headers   ;     >>T__I,,?I77)!455r9   c                >    i t         |   ddd| j                  S )Nfalse
2023-06-01zX-Stainless-Asynczanthropic-versionr   rh   _custom_headersr6   r   s    r7   rh   z&AnthropicBedrockMantle.default_headers   s5    
g%
!(!-
 ""	
 	
r9   c                     y r2   r?   r6   headersr~   s      r7   _validate_headersz(AnthropicBedrockMantle._validate_headers      r9   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   rY   rZ   rq   regionprofiledataservice_namerf   rs   readdecoder   r   rV   r   r   rY   rZ   rq   re   r\   DEFAULT_SERVICE_NAMErd   r6   requestr   r   s       r7   _prepare_requestz'AnthropicBedrockMantle._prepare_request  s    >>||~$$&">>GKK OO...."44??$$-
 	w'r9   r[   rY   rZ   rq   re   r\   rf   rg   ru   rx   rv   rh   set_default_headersrw   set_default_queryry   _extra_kwargsc               n   ||t        d      ||t        d      | j                  }|t        ||      }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"                  ||t        |t              r| j$                  n|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)r[   rY   rZ   rq   re   r\   rf   rg   ru   rx   rv   rh   rw   ry   r?   
ValueErrorr   r#   _custom_queryr   r[   rY   rZ   rq   re   r\   rf   rg   
isinstancer   ru   r   rv   _middlewarer6   r[   rY   rZ   rq   re   r\   rf   rg   ru   rx   rv   rh   r   rw   r   ry   r   r   paramss                       r7   copyzAnthropicBedrockMantle.copy  U   0 &+>+Jopp$):)Fkll&&&#G_=G ,)G##$00-0F*&Ft~~ 
+t||)@T-@-@)@T-@-@/I43I3I!4T__#7t'7'7#,#8idnn.$.w$ADLLw#'/'<$BRBR# +5j(+Kt''Q[
 
 	
r9   c                B    | j                  g | j                  |      S 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(...)
        ```
        )ry   r   r   r6   ry   s     r7   with_middlewarez&AnthropicBedrockMantle.with_middlewareY  &     yy$Dd&6&6$D$DyEEr9   ) rY   rp   rZ   rp   rq   rp   re   rp   r\   rp   r[   rp   rf   rr   rg   str | httpx.URL | Noneru   !float | Timeout | None | NotGivenrv   intrh   Mapping[str, str] | Nonerw   Mapping[str, object] | Nonerx   httpx.Client | Nonery    Sequence[MiddlewareInput] | Nonerz   rr   r:   Noner:   r   r:   zdict[str, str]r:   zdict[str, str | Omit]r   r   r~   r   r:   r   r   zhttpx.Requestr:   r   )$r[   rp   rY   rp   rZ   rp   rq   rp   re   rp   r\   rp   rf   bool | Nonerg   r   ru   r   rx   r   rv   int | NotGivenrh   r   r   r   rw   r   r   r   ry   +Sequence[MiddlewareInput] | None | NotGivenr   Mapping[str, Any]r:   r	   ry   r   r:   r	   r<   r=   r>   __annotations__r   r   r   propertyr
   r   r   rh   r   r   r   with_optionsr   __classcell__r   s   @r7   rn   rn      s   
!!O
 &*%)(,!%"&"+/5>.4859+/7;,1#6% #6% #	6%
 &6% 6%  6% 6% 6% )6% 36% 6% 26% 36% )6%  5!6%" &*#6%$ 
%6%p 1  1 6  6 
  
   ( (. #%)%)(,!%"&!%+/5>+/&/488<599=BK+-':
 :
 #	:

 #:
 &:
 :
  :
 :
 ):
 3:
 ):
 $:
 2:
 6:
  3!:
" 7#:
$ @%:
& )':
( 
):
x L	Fr9   rn   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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 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ei d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d dZeZd!dZ xZS )"AsyncAnthropicBedrockMantler)   r8   rA   ro   rp   re   rY   rZ   rq   r\   rr   rf   rs   NFrt   c               4   t        ||||||||      \  }}}}t        |      }t        |   t        ||	|
|||||	       || _        || _        || _        || _        || _	        || _
        || _        || _        t        |       | _        t        |       | _        y r|   )rl   r$   r   r   r   r[   re   rY   rZ   rq   r\   rf   rs   r)   r8   rA   ro   r   s                        r7   r   z$AsyncAnthropicBedrockMantle.__init__u  s    & J`))!#+	J
F+Y )4&#)&#!(C 	 
	
 (),,!2&"#%d+#D)	r9   c                    t        d      S r   r   r5   s    r7   r   zAsyncAnthropicBedrockMantle.qs  r   r9   c                d    | j                   s| j                  ri S | j                  }|i S dd| iS r   r   r   s     r7   r   z(AsyncAnthropicBedrockMantle.auth_headers  r   r9   c                >    i t         |   ddd| j                  S )Nzasync:asyncior   r   r   r   s    r7   rh   z+AsyncAnthropicBedrockMantle.default_headers  s5    
g%
!0!-
 ""	
 	
r9   c                     y r2   r?   r   s      r7   r   z-AsyncAnthropicBedrockMantle._validate_headers  r   r9   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       r7   r   z,AsyncAnthropicBedrockMantle._prepare_request  s     >>||~$$&">>GKK OO...."44??$$-
 	w's   CCr   c               n   ||t        d      ||t        d      | j                  }|t        ||      }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"                  ||t        |t              r| j$                  n|d|S r   r   r   s                       r7   r   z AsyncAnthropicBedrockMantle.copy  r   r9   c                B    | j                  g | j                  |      S r   r   r   s     r7   r   z+AsyncAnthropicBedrockMantle.with_middleware  r   r9   ) rY   rp   rZ   rp   rq   rp   re   rp   r\   rp   r[   rp   rf   rr   rg   r   ru   r   rv   r   rh   r   rw   r   rx   httpx.AsyncClient | Nonery   r   rz   rr   r:   r   r   r   r   r   r   )$r[   rp   rY   rp   rZ   rp   rq   rp   re   rp   r\   rp   rf   r   rg   r   ru   r   rx   r   rv   r   rh   r   r   r   rw   r   r   r   ry   r   r   r   r:   r	   r   r   r   s   @r7   r   r   h  s   
!!O
 &*%)(,!%"&"+/5>.4859047;,1#6* #6* #	6*
 &6* 6*  6* 6* 6* )6* 36* 6* 26* 36* .6*  5!6*" &*#6*$ 
%6*p 1  1 6  6 
  
   ( (. #%)%)(,!%"&!%+/5>04&/488<599=BK+-':
 :
 #	:

 #:
 &:
 :
  :
 :
 ):
 3:
 .:
 $:
 2:
 6:
  3!:
" 7#:
$ @%:
& )':
( 
):
x L	Fr9   r   )r[   rp   rY   rp   rZ   rp   re   rp   r\   rp   rf   rr   rg   r   rh   r   r:   z8tuple[str | None, str | httpx.URL, bool, dict[str, str]])E
__future__r   ra   typingr   r   r   r   r   typing_extensionsr	   r
   httpx r   _qsr   _typesr   r   r   r   _utilsr   _compatr   _versionr   	aws._authr   	_resourcer   r   
_streamingr   r   r   r   r   r   _base_clientr   r    r!   r"   r#   aws._credentialsr$   r%   r&   r'   resources.messagesr(   r)   resources.beta.messagesr3   rC   r   r`   ClientAsyncClientr,   r.   r0   rA   rE   rl   rn   r   r?   r9   r7   <module>r      s   " 	 9 9 ,    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~F-ellF3K.GH- ~FH~F"253D3DkRUFV3V"WYg ~Fr9   