
    4RjX                       d dl mZ d dlZd dlZd dlmZmZmZmZ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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  ddl!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,m-Z- ddl.m/Z/m0Z0 ddl1m2Z2m3Z3 ddl4m2Z5m3Z6 e	g e7f   Z8e	g df   Z9 edeejt                  ejv                  f         Z< edee$e   e%e   f         Z= G d de'      Z> G d de,e<e=f         Z? G d de2      Z@ G d de5      ZA G d de/      ZB G d  d!e3      ZC G d" d#e6      ZD G d$ d%e0      ZE G d& d'e?ejt                  e$e   f   e      ZF G d( d)e?ejv                  e%e   f   e      ZGy)*    )annotationsN)	AnyUnionMappingTypeVarCallableSequence	Awaitablecastoverload)cached_property)Selfoverride   )	NOT_GIVENOmitHeadersTimeoutNotGiven)is_given)	AnthropicAsyncAnthropic)
model_copy)FinalRequestOptions)StreamAsyncStream)AnthropicError)MiddlewareInput)DEFAULT_MAX_RETRIES
BaseClientmerge_headers)Beta	AsyncBeta)MessagesAsyncMessageszstr | Awaitable[str]_HttpxClientT)bound_DefaultStreamTc                        e Zd Zd fdZ xZS )MutuallyExclusiveAuthErrorc                $    t         |   d       y )NznThe `api_key` and `azure_ad_token_provider` arguments are mutually exclusive; Only one can be passed at a time)super__init__)self	__class__s    ]/var/www/html/meridian/meridian-ai/venv/lib/python3.12/site-packages/anthropic/lib/foundry.pyr-   z#MutuallyExclusiveAuthError.__init__#   s    |	
    returnNone)__name__
__module____qualname__r-   __classcell__r/   s   @r0   r*   r*   "   s    
 
r1   r*   c                      e Zd Zy)BaseFoundryClientN)r5   r6   r7    r1   r0   r;   r;   )   s    r1   r;   c                  (    e Zd Zeedd              Zy)MessagesFoundryc                     yz?Batches endpoint is not supported for Anthropic Foundry client.Nr<   r.   s    r0   batcheszMessagesFoundry.batches-        r1   Nr2   r5   r6   r7   r   r   rB   r<   r1   r0   r>   r>   ,         r1   r>   c                  (    e Zd Zeedd              Zy)BetaFoundryMessagesc                     yr@   r<   rA   s    r0   rB   zBetaFoundryMessages.batches5   rC   r1   Nr2   rD   r<   r1   r0   rG   rG   4   rE   r1   rG   c                  (    e Zd Zeedd              Zy)BetaFoundryc                ,    t        | j                        S zKReturn beta messages resource instance with excluded unsupported endpoints.)rG   _clientrA   s    r0   messageszBetaFoundry.messages=   s     #4<<00r1   N)r3   BetaMessagesr5   r6   r7   r   r   rN   r<   r1   r0   rJ   rJ   <   s    1  1r1   rJ   c                  (    e Zd Zeedd              Zy)AsyncMessagesFoundryc                     yr@   r<   rA   s    r0   rB   zAsyncMessagesFoundry.batchesE   rC   r1   Nr2   rD   r<   r1   r0   rR   rR   D   rE   r1   rR   c                  (    e Zd Zeedd              Zy)AsyncBetaFoundryMessagesc                     yr@   r<   rA   s    r0   rB   z AsyncBetaFoundryMessages.batchesM   rC   r1   Nr2   rD   r<   r1   r0   rU   rU   L   rE   r1   rU   c                  (    e Zd Zeedd              Zy)AsyncBetaFoundryc                ,    t        | j                        S rL   )rU   rM   rA   s    r0   rN   zAsyncBetaFoundry.messagesU   s     (55r1   N)r3   AsyncBetaMessagesrP   r<   r1   r0   rX   rX   T   s    6  6r1   rX   c                  &    e Zd Zeddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zedddeedddddd
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z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d              Zeddddededdddei d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       ZeZddZedd       Zeedd              Zedd       Z xZS )AnthropicFoundryNFresourceapi_keyazure_ad_token_providerwebhook_keytimeoutmax_retriesdefault_headersdefault_queryhttp_client
middleware_strict_response_validationc                    y Nr<   r.   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   s               r0   r-   zAnthropicFoundry.__init__`        r1   
r_   r`   ra   rb   rc   rd   re   rf   rg   rh   c                    y rj   r<   r.   base_urlr_   r`   ra   rb   rc   rd   re   rf   rg   rh   s               r0   r-   zAnthropicFoundry.__init__q   rl   r1   r^   r_   r`   ra   rp   rb   rc   rd   re   rf   rg   rh   c               |   ||nt         j                  j                  d      }||nt         j                  j                  d      }||nt         j                  j                  d      }||t        d      ||t	        d      d| d}n|t	        d	      t
        |   |||||||	|
||

       || _        y)a  Construct a new synchronous Anthropic Foundry client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `ANTHROPIC_FOUNDRY_API_KEY`
        - `resource` from `ANTHROPIC_FOUNDRY_RESOURCE`
        - `base_url` from `ANTHROPIC_FOUNDRY_BASE_URL`

        Args:
            resource: Your Foundry resource name, e.g. `example-resource` for `https://example-resource.services.ai.azure.com/anthropic/`
            azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.
        NANTHROPIC_FOUNDRY_API_KEYANTHROPIC_FOUNDRY_RESOURCEANTHROPIC_FOUNDRY_BASE_URLMissing credentials. Please pass one of `api_key`, `azure_ad_token_provider`, or the `ANTHROPIC_FOUNDRY_API_KEY` environment variable.tMust provide one of the `base_url` or `resource` arguments, or the `ANTHROPIC_FOUNDRY_RESOURCE` environment variablehttps://!.services.ai.azure.com/anthropic/,base_url and resource are mutually exclusive
r_   ra   rp   rb   rc   rd   re   rf   rg   rh   osenvirongetr   
ValueErrorr,   r-   _azure_ad_token_providerr.   r^   r_   r`   ra   rp   rb   rc   rd   re   rf   rg   rh   r/   s                r0   r-   zAnthropicFoundry.__init__       6 %0'bjjnnE`6a'38Hd9e'38Hd9e?6>  Y    K  "(+LMH!KLL##+'#!(C 	 	
 )@%r1   c                     y)z>Models endpoint is not supported for Anthropic Foundry client.Nr<   rA   s    r0   modelszAnthropicFoundry.models   rC   r1   c                    t        |       S zFReturn messages resource instance with excluded unsupported endpoints.client)r>   rA   s    r0   rN   zAnthropicFoundry.messages   s     d++r1   c                    t        |       S )BReturn beta resource instance with excluded unsupported endpoints.)rJ   rA   s    r0   betazAnthropicFoundry.beta   s     4  r1   r_   r`   ra   rp   rb   rf   rc   rd   set_default_headersre   set_default_queryrg   _extra_kwargsc               $   ||	t        d      |
|t        d      | j                  }|t        ||      }n|	|	}| j                  }|
i ||
}n||} | j                  d|xs | j
                  |xs | j                  |xs | j                  t        |xs | j                        t        |t              r| j                  n||xs | j                  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_   r`   ra   rp   rb   rf   rc   rd   re   rg   r<   r   _custom_headersr!   _custom_queryr/   r_   r   ra   strrp   
isinstancer   rb   rM   r   rc   _middlewarer.   r_   r`   ra   rp   rb   rf   rc   rd   r   re   r   rg   r   headersparamss                   r0   copyzAnthropicFoundry.copy   -   * &+>+Jopp$):)Fkll&&&#G_=G ,)G##$00-0F*&Ft~~ 
+t||$;$\t?\?\#7t'7'72T]]3$.w$ADLLw#3t||'/'<$BRBR# +5j(+Kt''Q[
 
 	
r1   c                r    | j                   }|) |       }|rt        |t              st        d|       |S y NzOExpected `azure_ad_token_provider` argument to return a string but it returned )r   r   r   r   r.   providertokens      r0   _get_azure_ad_tokenz$AnthropicFoundry._get_azure_ad_token  sI    00JE
5# 6 efkelm  Lr1   c                |   t        |j                        ri |j                  ni }t        |      }||_        | j                         }||j	                  d      d| |d<   |S | j
                  B|j	                  d      | j
                  |d<   |j	                  d      | j
                  |d<   |S t        d      NAuthorizationzBearer z	x-api-keyzapi-keyzUnable to handle authr   r   r   r   r   r_   r   r.   optionsr   azure_ad_tokens       r0   _prepare_optionsz!AnthropicFoundry._prepare_options  s    @H@Y)<GOO)<_aW%!113%{{?+3-4^4D+E(  \\% {{;'/'+||${{9%-%)\\	"
  455r1   c                    i S rj   r<   rA   s    r0   auth_headerszAnthropicFoundry.auth_headers-  s	     	r1   c                     y rj   r<   r.   r   custom_headerss      r0   _validate_headersz"AnthropicFoundry._validate_headers9  s     	r1   )r^   
str | Noner_   r   r`   AzureADTokenProvider | Nonera   r   rb   !float | Timeout | None | NotGivenrc   intrd   Mapping[str, str] | Nonere   Mapping[str, object] | Nonerf   httpx.Client | Nonerg    Sequence[MiddlewareInput] | Nonerh   boolr3   r4   )rp   r   r_   r   r`   r   ra   r   rb   r   rc   r   rd   r   re   r   rf   r   rg   r   rh   r   r3   r4   )r^   r   r_   r   r`   r   ra   r   rp   r   rb   r   rc   r   rd   r   re   r   rf   r   rg   r   rh   r   r3   r4   r2   )r3   r>   )r3   r"   )r_   r   r`   r   ra   r   rp   str | httpx.URL | Nonerb   r   rf   r   rc   int | NotGivenrd   r   r   r   re   r   r   r   rg   +Sequence[MiddlewareInput] | None | NotGivenr   Mapping[str, Any]r3   r   r3   r   r   r   r3   r   r3   zdict[str, str]r   r   r   r   r3   r4   r5   r6   r7   r   r   r   r-   r   r   r   rN   r   r   with_optionsr   r   propertyr   r   r8   r9   s   @r0   r\   r\   _   s     $"?C"&5>.4859+/7;,1  	
 "=   3  2 3 ) 5 &* 
   
 #?C"&5>.4859+/7;,1  	
 "=   3  2 3 ) 5 &* 
 &  $"?C"&#5>.4859+/7;,19@ 9@ 	9@
 "=9@  9@ 9@ 39@ 9@ 29@ 39@ )9@ 59@ &*9@ 
9@v    ,  , !  !  #?C"&+/5>+/&/488<599=BK+-2
 2
 "=	2

  2
 )2
 32
 )2
 $2
 22
 62
 32
 72
 @2
 )2
  
!2
 2
h L
  4     r1   r\   c                  &    e Zd Zeddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zedddeedddddd
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z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d              Zeddddededdddei d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       ZeZddZedd       Zeedd              Zedd       Z xZS )AsyncAnthropicFoundryNFr]   c                    y rj   r<   rk   s               r0   r-   zAsyncAnthropicFoundry.__init__A  rl   r1   rm   c                    y rj   r<   ro   s               r0   r-   zAsyncAnthropicFoundry.__init__R  rl   r1   rq   c               |   ||nt         j                  j                  d      }||nt         j                  j                  d      }||nt         j                  j                  d      }||t        d      ||t	        d      d| d}n|t	        d	      t
        |   |||||||	|
||

       || _        y)a  Construct a new asynchronous Anthropic Foundry client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `ANTHROPIC_FOUNDRY_API_KEY`
        - `resource` from `ANTHROPIC_FOUNDRY_RESOURCE`
        - `base_url` from `ANTHROPIC_FOUNDRY_BASE_URL`

        Args:
            resource: Your Foundry resource name, e.g. `example-resource` for `https://example-resource.services.ai.azure.com/anthropic/`
            azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.
        Nrs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r   s                r0   r-   zAsyncAnthropicFoundry.__init__c  r   r1   c                     y)z<Models endpoint is not supported for Azure Anthropic client.Nr<   rA   s    r0   r   zAsyncAnthropicFoundry.models  rC   r1   c                    t        |       S r   )rR   rA   s    r0   rN   zAsyncAnthropicFoundry.messages  s     $400r1   c                    t        |       S )r   r   )rX   rA   s    r0   r   zAsyncAnthropicFoundry.beta  s      t,,r1   r   c               $   ||	t        d      |
|t        d      | j                  }|t        ||      }n|	|	}| j                  }|
i ||
}n||} | j                  d|xs | j
                  |xs | j                  |xs | j                  t        |xs | j                        t        |t              r| j                  n||xs | j                  t        |      r|n| j                  ||t        |t              r| j                   n|d
|S r   r   r   s                   r0   r   zAsyncAnthropicFoundry.copy  r   r1   c                   K   | j                   }|_ |       }t        j                  |      r
| d {   }|rt        t	        t
        |      t              st        d|       t        |      S y 7 >wr   )r   inspectisawaitabler   r   r   r   r   r   s      r0   r   z)AsyncAnthropicFoundry._get_azure_ad_token  ss     00JE""5)#
4U+;S A efkelm  u: $s   0A3A1?A3c                  K   t        |j                        ri |j                  ni }t        |      }||_        | j                          d {   }||j	                  d      d| |d<   |S | j
                  B|j	                  d      | j
                  |d<   |j	                  d      | j
                  |d<   |S t        d      7 zwr   r   r   s       r0   r   z&AsyncAnthropicFoundry._prepare_options  s     @H@Y)<GOO)<_aW%!#7799%{{?+3-4^4D+E(  \\% {{;'/'+||${{9%-%)\\	"
  455 :s   AC
CA;C
c                    i S rj   r<   rA   s    r0   r   z"AsyncAnthropicFoundry.auth_headers  s	    
 	r1   c                     y rj   r<   r   s      r0   r   z'AsyncAnthropicFoundry._validate_headers  s     	r1   )r^   r   r_   r   r`    AsyncAzureADTokenProvider | Nonera   r   rb   r   rc   r   rd   r   re   r   rf   httpx.AsyncClient | Nonerg   r   rh   r   r3   r4   )rp   r   r_   r   r`   r   ra   r   rb   r   rc   r   rd   r   re   r   rf   r   rg   r   rh   r   r3   r4   )r^   r   r_   r   r`   r   ra   r   rp   r   rb   r   rc   r   rd   r   re   r   rf   r   rg   r   rh   r   r3   r4   r2   )r3   rR   )r3   rX   )r_   r   r`   r   ra   r   rp   r   rb   r   rf   r   rc   r   rd   r   r   r   re   r   r   r   rg   r   r   r   r3   r   r   r   r   r   r   r9   s   @r0   r   r   @  s     $"DH"&5>.4859047;,1  	
 "B   3  2 3 . 5 &* 
   
 #DH"&5>.4859047;,1  	
 "B   3  2 3 . 5 &* 
 &  $"DH"&#5>.4859047;,19@ 9@ 	9@
 "B9@  9@ 9@ 39@ 9@ 29@ 39@ .9@ 59@ &*9@ 
9@v    1  1 -  -  #DH"&+/5>04&/488<599=BK+-2
 2
 "B	2

  2
 )2
 32
 .2
 $2
 22
 62
 32
 72
 @2
 )2
  
!2
 2
h L  .   
  r1   r   )H
__future__r   r}   r   typingr   r   r   r   r   r	   r
   r   r   	functoolsr   typing_extensionsr   r   httpx_typesr   r   r   r   r   _utilsr   rM   r   r   _compatr   _modelsr   
_streamingr   r   _exceptionsr   r   r   _base_clientr   r    r!   resources.betar"   r#   resources.messagesr$   r%   resources.beta.messagesrO   rZ   r   AzureADTokenProviderAsyncAzureADTokenProviderClientAsyncClientr&   r(   r*   r;   r>   rG   rJ   rR   rU   rX   r\   r   r<   r1   r0   <module>r      sf   " 	  ^ ^ ^ % ,  @ @  /   ) , ( ) 
 - 8 bC( $R)?%?@ uU\\5CTCT5T/UV+5kRUFV9V3WX
 
 I
=/#AB Hh , 1$ 1= 0 6y 6^(vc{)BCY ^BW-e.?.?SAQ.QRTb Wr1   