
    jG                    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    `/DATA/AppData/hermes/projects/honcho/.venv/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                  n    e Zd Zeddddeeddddd
d2d            Zedddeeddddd	d3d            Zdddddeedddddd4 fdZeed5d                        Z	eed6d!                        Z
eed7d#                        Zedddddededdddi d$d8 fd-            ZeZd9d.Zed:d1            Z xZS );AnthropicFoundryNF
resourceapi_keyazure_ad_token_providerwebhook_keytimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationrZ   
str | Noner[   r\   AzureADTokenProvider | Noner]   r^   !float | Timeout | None | NotGivenr_   intr`   Mapping[str, str] | Nonera   Mapping[str, object] | Nonerb   httpx.Client | Nonerc   boolr'   r(   c       
            d S Nr8   r,   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s              r.   r+   zAnthropicFoundry.__init__[   	     sr/   	r[   r\   r]   r^   r_   r`   ra   rb   rc   base_urlstrc       
            d S rm   r8   r,   rq   r[   r\   r]   r^   r_   r`   ra   rb   rc   s              r.   r+   zAnthropicFoundry.__init__k   ro   r/   rZ   r[   r\   r]   rq   r^   r_   r`   ra   rb   rc   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[   r]   rq   r^   r_   r`   ra   rb   rc   osenvirongetr   
ValueErrorr*   r+   _azure_ad_token_providerr,   rZ   r[   r\   r]   rq   r^   r_   r`   ra   rb   rc   r-   s               r.   r+   zAnthropicFoundry.__init__{      4 %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_tokenr]   rq   r^   rb   r_   r`   set_default_headersra   set_default_query_extra_kwargsr   str | httpx.URL | Noneint | NotGivenr   r   r   Mapping[str, Any]r   c               t    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   r]   rq   r^   rb   r_   r`   r   ra   r   r   r*   copyr   r,   r[   r\   r   r]   rq   r^   rb   r_   r`   r   ra   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   
isinstancerr   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   rd   r[   rd   r\   re   r]   rd   r^   rf   r_   rg   r`   rh   ra   ri   rb   rj   rc   rk   r'   r(   )rq   rr   r[   rd   r\   re   r]   rd   r^   rf   r_   rg   r`   rh   ra   ri   rb   rj   rc   rk   r'   r(   )rZ   rd   r[   rd   r\   re   r]   rd   rq   rd   r^   rf   r_   rg   r`   rh   ra   ri   rb   rj   rc   rk   r'   r(   r0   )r'   r:   )r'   r   )r[   rd   r\   re   r   rd   r]   rd   rq   r   r^   rf   rb   rj   r_   r   r`   rh   r   rh   ra   ri   r   ri   r   r   r'   r   r'   rd   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         $"?C"&5>.4859+/,1     X 
 #?C"&5>.4859+/,1     X$  $"?C"&#5>.4859+/,17@ 7@ 7@ 7@ 7@ 7@ 7@ 7@r    X _ , , , X _, ! ! ! X _!  #?C!%"&+/5>+/&/488<599=+-$
 $
 $
 $
 $
 $
 $
 X$
L L
 
 
 
    X    r/   rX   c                  n    e Zd Zeddddeeddddd
d2d            Zedddeeddddd	d3d            Zdddddeedddddd4 fdZeed5d                        Z	eed6d!                        Z
eed7d#                        Zedddddededdddi d$d8 fd-            ZeZd9d.Zed:d1            Z xZS );AsyncAnthropicFoundryNFrY   rZ   rd   r[   r\    AsyncAzureADTokenProvider | Noner]   r^   rf   r_   rg   r`   rh   ra   ri   rb   httpx.AsyncClient | Nonerc   rk   r'   r(   c       
            d S rm   r8   rn   s              r.   r+   zAsyncAnthropicFoundry.__init__  ro   r/   rp   rq   rr   c       
            d S rm   r8   rt   s              r.   r+   zAsyncAnthropicFoundry.__init__"  ro   r/   ru   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.
        Nrw   rx   ry   rz   r{   r|   r}   r~   r   r   r   s               r.   r+   zAsyncAnthropicFoundry.__init__2  r   r/   c                    dS )z<Models endpoint is not supported for Azure Anthropic client.Nr8   r=   s    r.   r   zAsyncAnthropicFoundry.modelsk  r?   r/   rN   c                "    t          |           S r   )rN   r=   s    r.   rK   zAsyncAnthropicFoundry.messagesq  s     $40000r/   rT   c                "    t          |           S )r   r   )rT   r=   s    r.   r   zAsyncAnthropicFoundry.betaw  s      t,,,,r/   r   r   r   r   r   r   r   r   r   c               t    t                                          ||||||||	|
||d|p| j        i|          S r   r   r   s                 r.   r   zAsyncAnthropicFoundry.copy}  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   rr   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   rd   r[   rd   r\   r   r]   rd   r^   rf   r_   rg   r`   rh   ra   ri   rb   r   rc   rk   r'   r(   )rq   rr   r[   rd   r\   r   r]   rd   r^   rf   r_   rg   r`   rh   ra   ri   rb   r   rc   rk   r'   r(   )rZ   rd   r[   rd   r\   r   r]   rd   rq   rd   r^   rf   r_   rg   r`   rh   ra   ri   rb   r   rc   rk   r'   r(   r0   )r'   rN   )r'   rT   )r[   rd   r\   r   r   rd   r]   rd   rq   r   r^   rf   rb   r   r_   r   r`   rh   r   rh   ra   ri   r   ri   r   r   r'   r   r   r   r   r5   s   @r.   r   r     s         $"DH"&5>.485904,1     X 
 #DH"&5>.485904,1     X$  $"DH"&#5>.485904,17@ 7@ 7@ 7@ 7@ 7@ 7@ 7@r    X _ 1 1 1 X _1 - - - X _-  #DH!%"&+/5>04&/488<599=+-$
 $
 $
 $
 $
 $
 $
 X$
L 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   rr   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t t t t t(vc{)BCY t t tnv v v v v-e.?SAQ.QRTb v v v v vr/   