
     `iD                    6   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 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 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'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z. ddl/m-Z0m.Z1 e	g e2f         Z3e	g df         Z4 edeej5        ej6        f                   Z7 edee"e         e#e         f                   Z8 G d de%          Z9 G d de(e7e8f                   Z: G d de-          Z; G d de0          Z< G d de*          Z= G d d e.          Z> G d! d"e1          Z? G d# d$e+          Z@ G d% d&e:ej5        e"e         f         e          ZA G d' d(e:ej6        e#e         f         e          ZBdS ))    )annotationsN)AnyUnionMappingTypeVarCallable	Awaitablecastoverload)cached_property)Selfoverride   )	NOT_GIVENOmitTimeoutNotGiven)is_given)	AnthropicAsyncAnthropic)
model_copy)FinalRequestOptions)StreamAsyncStream)AnthropicError)DEFAULT_MAX_RETRIES
BaseClient)Beta	AsyncBeta)MessagesAsyncMessageszstr | Awaitable[str]_HttpxClientT)bound_DefaultStreamTc                        e Zd Zd fdZ xZS )MutuallyExclusiveAuthErrorreturnNonec                J    t                                          d           d S )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    i/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/anthropic/lib/foundry.pyr+   z#MutuallyExclusiveAuthError.__init__   s,    |	
 	
 	
 	
 	
    r'   r(   )__name__
__module____qualname__r+   __classcell__r-   s   @r.   r&   r&      s=        
 
 
 
 
 
 
 
 
 
r/   r&   c                      e Zd ZdS )BaseFoundryClientN)r1   r2   r3    r/   r.   r7   r7   $   s          r/   r7   c                  6    e Zd Zeedd                        ZdS )MessagesFoundryr'   r(   c                    dS z?Batches endpoint is not supported for Anthropic Foundry client.Nr8   r,   s    r.   batcheszMessagesFoundry.batches(   	     tr/   Nr0   r1   r2   r3   r   r   r>   r8   r/   r.   r:   r:   '   <           X _  r/   r:   c                  6    e Zd Zeedd                        ZdS )BetaFoundryMessagesr'   r(   c                    dS r<   r8   r=   s    r.   r>   zBetaFoundryMessages.batches0   r?   r/   Nr0   r@   r8   r/   r.   rC   rC   /   rA   r/   rC   c                  6    e Zd Zeedd                        ZdS )BetaFoundryr'   BetaMessagesc                *    t          | j                  S zKReturn beta messages resource instance with excluded unsupported endpoints.)rC   _clientr=   s    r.   messageszBetaFoundry.messages8   s     #4<000r/   N)r'   rG   r1   r2   r3   r   r   rK   r8   r/   r.   rF   rF   7   s<        1 1 1 X _1 1 1r/   rF   c                  6    e Zd Zeedd                        ZdS )AsyncMessagesFoundryr'   r(   c                    dS r<   r8   r=   s    r.   r>   zAsyncMessagesFoundry.batches@   r?   r/   Nr0   r@   r8   r/   r.   rN   rN   ?   rA   r/   rN   c                  6    e Zd Zeedd                        ZdS )AsyncBetaFoundryMessagesr'   r(   c                    dS r<   r8   r=   s    r.   r>   z AsyncBetaFoundryMessages.batchesH   r?   r/   Nr0   r@   r8   r/   r.   rQ   rQ   G   rA   r/   rQ   c                  6    e Zd Zeedd                        ZdS )AsyncBetaFoundryr'   AsyncBetaMessagesc                *    t          | j                  S rI   )rQ   rJ   r=   s    r.   rK   zAsyncBetaFoundry.messagesP   s     (555r/   N)r'   rU   rL   r8   r/   r.   rT   rT   O   s<        6 6 6 X _6 6 6r/   rT   c                  f    e Zd Zedddeeddddd	d1d            Zeddeedddddd2d            Zddddeeddddd
d3 fdZeed4d                        Z	eed5d                         Z
eed6d"                        Zeddddededdddi d#d7 fd,            ZeZd8d-Zed9d0            Z xZS ):AnthropicFoundryNF	resourceapi_keyazure_ad_token_providertimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationrZ   
str | Noner[   r\   AzureADTokenProvider | Noner]   !float | Timeout | None | NotGivenr^   intr_   Mapping[str, str] | Noner`   Mapping[str, object] | Nonera   httpx.Client | Nonerb   boolr'   r(   c       	            d S Nr8   
r,   rZ   r[   r\   r]   r^   r_   r`   ra   rb   s
             r.   r+   zAnthropicFoundry.__init__[   	     sr/   r[   r\   r]   r^   r_   r`   ra   rb   base_urlstrc       	            d S rl   r8   
r,   rp   r[   r\   r]   r^   r_   r`   ra   rb   s
             r.   r+   zAnthropicFoundry.__init__j   rn   r/   
rZ   r[   r\   rp   r]   r^   r_   r`   ra   rb   c       
   
        ||nt           j                            d          }||nt           j                            d          }||nt           j                            d          }||t          d          ||t	          d          d| d}n|t	          d	          t                                          |||||||	|

           || _        dS )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[   rp   r]   r^   r_   r`   ra   rb   osenvirongetr   
ValueErrorr*   r+   _azure_ad_token_providerr,   rZ   r[   r\   rp   r]   r^   r_   r`   ra   rb   r-   s              r.   r+   zAnthropicFoundry.__init__y      2 %0''bjnnE`6a6a'388Hd9e9e'388Hd9e9e?6>  Y     K   N(MMMHH!KLLL#+'#(C 	 		
 		
 		
 )@%%%r/   c                    dS )z>Models endpoint is not supported for Anthropic Foundry client.Nr8   r=   s    r.   modelszAnthropicFoundry.models   r?   r/   r:   c                "    t          |           S zFReturn messages resource instance with excluded unsupported endpoints.client)r:   r=   s    r.   rK   zAnthropicFoundry.messages   s     d++++r/   r   c                     t          |           S )BReturn beta resource instance with excluded unsupported endpoints.)rF   r=   s    r.   betazAnthropicFoundry.beta   s     4   r/   r[   r\   
auth_tokenrp   r]   ra   r^   r_   set_default_headersr`   set_default_query_extra_kwargsr   str | httpx.URL | Noneint | NotGivenr   r   r   Mapping[str, Any]r   c               r    t                                          ||||||||	|
|d|p| j        i|          S z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        r\   )r[   r   rp   r]   ra   r^   r_   r   r`   r   r   r*   copyr   r,   r[   r\   r   rp   r]   ra   r^   r_   r   r`   r   r   r-   s                r.   r   zAnthropicFoundry.copy   ]    ( ww||!##+ 3'/)+B+cdFc  
 
 	
r/   c                    | j         }|5 |            }|rt          |t                    st          d|           |S d S NzOExpected `azure_ad_token_provider` argument to return a string but it returned )r   
isinstancerq   r   r,   providertokens      r.   _get_azure_ad_tokenz$AnthropicFoundry._get_azure_ad_token   s^    0HJJE 
5# 6 6  mfkmm   Ltr/   optionsr   c                V   t          |j                  r	i |j        ni }t          |          }||_        |                                 }||                    d          d| |d<   n?| j        )|                    d          | j        J | j        |d<   nt          d          |S NAuthorizationzBearer zapi-keyzUnable to handle authr   headersr   r   r   r[   r   r,   r   r   azure_ad_tokens       r.   _prepare_optionsz!AnthropicFoundry._prepare_options   s    @H@Y@Y)a)<GO)<)<_aW%%!1133%{{?++3+E^+E+E(\%{{9%%-|///%)\	" 4555r/   )rZ   rc   r[   rc   r\   rd   r]   re   r^   rf   r_   rg   r`   rh   ra   ri   rb   rj   r'   r(   )rp   rq   r[   rc   r\   rd   r]   re   r^   rf   r_   rg   r`   rh   ra   ri   rb   rj   r'   r(   )rZ   rc   r[   rc   r\   rd   rp   rc   r]   re   r^   rf   r_   rg   r`   rh   ra   ri   rb   rj   r'   r(   r0   )r'   r:   )r'   r   )r[   rc   r\   rd   r   rc   rp   r   r]   re   ra   ri   r^   r   r_   rg   r   rg   r`   rh   r   rh   r   r   r'   r   r'   rc   r   r   r'   r   r1   r2   r3   r   r   r   r+   r   r   r   rK   r   r   with_optionsr   r   r4   r5   s   @r.   rX   rX   Z   s         $"?C5>.4859+/,1     X 
 #?C5>.4859+/,1     X"  $"?C#5>.4859+/,15@ 5@ 5@ 5@ 5@ 5@ 5@ 5@n    X _ , , , X _, ! ! ! X _!  #?C!%+/5>+/&/488<599=+-"
 "
 "
 "
 "
 "
 "
 X"
H L
 
 
 
    X    r/   rX   c                  f    e Zd Zedddeeddddd	d1d            Zeddeedddddd2d            Zddddeeddddd
d3 fdZeed4d                        Z	eed5d                         Z
eed6d"                        Zeddddededdddi d#d7 fd,            ZeZd8d-Zed9d0            Z xZS ):AsyncAnthropicFoundryNFrY   rZ   rc   r[   r\    AsyncAzureADTokenProvider | Noner]   re   r^   rf   r_   rg   r`   rh   ra   httpx.AsyncClient | Nonerb   rj   r'   r(   c       	            d S rl   r8   rm   s
             r.   r+   zAsyncAnthropicFoundry.__init__  rn   r/   ro   rp   rq   c       	            d S rl   r8   rs   s
             r.   r+   zAsyncAnthropicFoundry.__init__  rn   r/   rt   c       
   
        ||nt           j                            d          }||nt           j                            d          }||nt           j                            d          }||t          d          ||t	          d          d| d}n|t	          d	          t                                          |||||||	|

           || _        dS )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.
        Nrv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   s              r.   r+   zAsyncAnthropicFoundry.__init__*  r   r/   c                    dS )z<Models endpoint is not supported for Azure Anthropic client.Nr8   r=   s    r.   r   zAsyncAnthropicFoundry.modelsa  r?   r/   rN   c                "    t          |           S r   )rN   r=   s    r.   rK   zAsyncAnthropicFoundry.messagesg  s     $40000r/   rT   c                "    t          |           S )r   r   )rT   r=   s    r.   r   zAsyncAnthropicFoundry.betam  s      t,,,,r/   r   r   r   r   r   r   r   r   r   c               r    t                                          ||||||||	|
|d|p| j        i|          S r   r   r   s                r.   r   zAsyncAnthropicFoundry.copys  r   r/   c                   K   | j         }|q |            }t          j        |          r| d {V }|r(t          t	          t
          |          t                    st          d|           t          |          S d S r   )r   inspectisawaitabler   r
   r   rq   r   r   s      r.   r   z)AsyncAnthropicFoundry._get_azure_ad_token  s      0HJJE"5)) $# 
4U+;+;S A A  mfkmm   u::tr/   r   r   c                f  K   t          |j                  r	i |j        ni }t          |          }||_        |                                  d {V }||                    d          d| |d<   n?| j        )| j        J |                    d          
| j        |d<   nt          d          |S r   r   r   s       r.   r   z&AsyncAnthropicFoundry._prepare_options  s      @H@Y@Y)a)<GO)<)<_aW%%!#7799999999%{{?++3+E^+E+E(\%<+++{{9%%-%)\	" 4555r/   )rZ   rc   r[   rc   r\   r   r]   re   r^   rf   r_   rg   r`   rh   ra   r   rb   rj   r'   r(   )rp   rq   r[   rc   r\   r   r]   re   r^   rf   r_   rg   r`   rh   ra   r   rb   rj   r'   r(   )rZ   rc   r[   rc   r\   r   rp   rc   r]   re   r^   rf   r_   rg   r`   rh   ra   r   rb   rj   r'   r(   r0   )r'   rN   )r'   rT   )r[   rc   r\   r   r   rc   rp   r   r]   re   ra   r   r^   r   r_   rg   r   rg   r`   rh   r   rh   r   r   r'   r   r   r   r   r5   s   @r.   r   r     s         $"DH5>.485904,1     X 
 #DH5>.485904,1     X"  $"DH#5>.485904,15@ 5@ 5@ 5@ 5@ 5@ 5@ 5@n    X _ 1 1 1 X _1 - - - X _-  #DH!%+/5>04&/488<599=+-"
 "
 "
 "
 "
 "
 "
 X"
H L       X    r/   r   )C
__future__r   r   r   typingr   r   r   r   r   r	   r
   r   	functoolsr   typing_extensionsr   r   httpx_typesr   r   r   r   _utilsr   rJ   r   r   _compatr   _modelsr   
_streamingr   r   _exceptionsr   _base_clientr   r   resources.betar   r   resources.messagesr    r!   resources.beta.messagesrG   rU   rq   AzureADTokenProviderAsyncAzureADTokenProviderClientAsyncClientr"   r$   r&   r7   r:   rC   rF   rN   rQ   rT   rX   r   r8   r/   r.   <module>r      s   " " " " " " 				  T T T T T T T T T T T T T T T T T T T T % % % % % % , , , , , , , ,  7 7 7 7 7 7 7 7 7 7 7 7       / / / / / / / /             ) ) ) ) ) ) , , , , , , , , ( ( ( ( ( ( : : : : : : : : , , , , , , , , 8 8 8 8 8 8 8 8 b b b b b b b bC( $R)?%?@ uU\5CT5T/UVVV'+5kRUFV9V3WXXX
 
 
 
 
 
 
 
 I H H H H
=/#AB H H H    h       ,   1 1 1 1 1$ 1 1 1    =       0   6 6 6 6 6y 6 6 6n n n n n(vc{)BCY n n nbp p p p p-e.?SAQ.QRTb p p p p pr/   