
    gK                       d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	 d dl
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mZmZ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$ ddl%m&Z&m'Z'm(Z( ddl)m*Z* ddl+m,Z, g dZ- G d de'      Z. G d de(      Z/ G d d      Z0 G d d      Z1 G d d      Z2 G d d      Z3e.Z4e/Z5y)    )annotationsN)AnyUnionMapping)Selfoverride   )
_constants_exceptionsQuerystring)	NOT_GIVENOmitHeadersTimeoutNotGiven	TransportProxiesTypesRequestOptions)is_givenget_async_library)__version__)modelscompletions)StreamAsyncStream)APIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)beta)messages)r   r   r   r   	AnthropicAsyncAnthropicClientAsyncClientc                      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<   ej
                  Zej                  Zdddeeddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZ	e
edd              Ze
edd              Ze
dd       Ze
dd       Ze
ed  fd              Zed!d       Zdddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"dZeZe	 	 	 	 	 	 	 	 d#d       Z xZS )$r#   zcompletions.Completionsr   zmessages.Messagesr"   zmodels.Modelsr   z	beta.Betar!   AnthropicWithRawResponsewith_raw_responseAnthropicWithStreamedResponsewith_streaming_response
str | Noneapi_key
auth_tokenNF	r-   r.   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationc       	   
     L   |t         j                  j                  d      }|| _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|d}t
        
|   t        |||||||	       t        | _	        t        j                  |       | _
        t        j                  |       | _        t        j                  |       | _        t!        j"                  |       | _        t%        |       | _        t)        |       | _        y)a#  Construct a new synchronous anthropic client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `ANTHROPIC_API_KEY`
        - `auth_token` from `ANTHROPIC_AUTH_TOKEN`
        NANTHROPIC_API_KEYANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URLhttps://api.anthropic.comversionr0   r2   r1   r5   custom_headerscustom_queryr6   )osenvirongetr-   r.   super__init__r   r   _default_stream_clsr   Completionsr"   Messagesr   Modelsr!   Betar(   r)   r*   r+   selfr-   r.   r0   r1   r2   r3   r4   r5   r6   	__class__s             F/var/www/openai/venv/lib/python3.12/site-packages/anthropic/_client.pyrD   zAnthropic.__init__C   s    < ?jjnn%89G(>?J$zz~~&:;H2H##*&(C 	 		
 $* &2248 ))$/mmD)IIdO	!9$!?'DT'J$    c                    t        d      S Ncomma)array_formatr   rK   s    rM   qszAnthropic.qs        00rN   c                f    | j                   r| j                   S | j                  r| j                  S i S N_api_key_auth_bearer_authrS   s    rM   auth_headerszAnthropic.auth_headers   3     %%%$$$	rN   c                *    | j                   }|i S d|iS N	X-Api-Keyr-   rK   r-   s     rM   rY   zAnthropic._api_key_auth        ,,?IW%%rN   c                0    | j                   }|i S dd| iS NAuthorizationzBearer r.   rK   r.   s     rM   rZ   zAnthropic._bearer_auth   (    __
I7:,!788rN   c                >    i t         |   ddd| j                  S )Nfalse
2023-06-01zX-Stainless-Asynczanthropic-version)rC   r3   _custom_headersrK   rL   s    rM   r3   zAnthropic.default_headers   s5    
g%
!(!-
 ""	
 	
rN   c                   | j                   r|j                  d      ry t        |j                  d      t              ry | j                  r|j                  d      ry t        |j                  d      t              ry t        d      Nr_   re   z"Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"r-   rB   
isinstancer   r.   	TypeErrorrK   headersr>   s      rM   _validate_headerszAnthropic._validate_headers   o    <<GKK4n((5t<??w{{?;n((94@ |
 	
rN   r-   r.   r0   r1   r5   r2   r3   set_default_headersr4   set_default_query_extra_kwargsc                  ||t        d      |	|
t        d      | j                  }|i ||}n||}| j                  }|	i ||	}n|
|
}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||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.   r0   r1   r5   r2   r3   r4    
ValueErrorrm   _custom_query_clientrL   r-   r.   r0   rr   r   r1   r   r2   rK   r-   r.   r0   r1   r5   r2   r3   ry   r4   rz   r{   ru   paramss                 rM   copyzAnthropic.copy      $ &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 

+t||!4T__.$.w$ADLLw#'/'<$BRBR# 

 

 
	
rN   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 t        |||      S 
Ni  )responsebodyi  i  i  i  i  i  i  status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   rK   err_msgr   r   s       rM   _make_status_errorzAnthropic._make_status_error   0    3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&77(Y]^^3&--gtTT3&227XTXYYgtDDrN   )r-   r,   r.   r,   r0   str | httpx.URL | Noner1   %Union[float, Timeout, None, NotGiven]r2   intr3   Mapping[str, str] | Noner4   Mapping[str, object] | Noner5   httpx.Client | Noner6   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit]ru   r   r>   r   r   r   )r-   r,   r.   r,   r0   r   r1   !float | Timeout | None | NotGivenr5   r   r2   int | NotGivenr3   r   ry   r   r4   r   rz   r   r{   Mapping[str, Any]r   r   r   strr   objectr   zhttpx.Responser   r   __name__
__module____qualname____annotations__r
   HUMAN_PROMPT	AI_PROMPTr   r   rD   propertyr   rT   r[   rY   rZ   r3   rv   r   with_optionsr   __classcell__rL   s   @rM   r#   r#   3   sX   ((
O//::  **L$$I
 #!%+/9B.4859 ,0 -2-=K =K 	=K
 )=K 7=K =K 2=K 3=K )=K, &*-=K. 
/=K~ 1  1    & & 9 9 
  
 
 
$ #!%+/5>+/&/488<599=+-/
 /
 	/

 )/
 3/
 )/
 $/
 2/
 6/
 3/
 7/
 )/
 
/
f LEE 	E
 !E 
E ErN   r#   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<   ej
                  Zej                  Zdddeeddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZ	e
edd              Ze
edd              Ze
dd       Ze
dd       Ze
ed  fd              Zed!d       Zdddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"dZeZe	 	 	 	 	 	 	 	 d#d       Z xZS )$r$   zcompletions.AsyncCompletionsr   zmessages.AsyncMessagesr"   zmodels.AsyncModelsr   zbeta.AsyncBetar!   AsyncAnthropicWithRawResponser)   "AsyncAnthropicWithStreamedResponser+   r,   r-   r.   NFr/   c       	   
     L   |t         j                  j                  d      }|| _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|d}t
        
|   t        |||||||	       t        | _	        t        j                  |       | _
        t        j                  |       | _        t        j                  |       | _        t!        j"                  |       | _        t%        |       | _        t)        |       | _        y)a  Construct a new async anthropic client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `ANTHROPIC_API_KEY`
        - `auth_token` from `ANTHROPIC_AUTH_TOKEN`
        Nr8   r9   r:   r;   r<   )r@   rA   rB   r-   r.   rC   rD   r   r   rE   r   AsyncCompletionsr"   AsyncMessagesr   AsyncModelsr!   	AsyncBetar   r)   r   r+   rJ   s             rM   rD   zAsyncAnthropic.__init__  s    < ?jjnn%89G(>?J$zz~~&:;H2H##*&(C 	 		
 $/ &77= ..t4((.NN4(	!>t!D'I$'O$rN   c                    t        d      S rP   r   rS   s    rM   rT   zAsyncAnthropic.qs^  rU   rN   c                f    | j                   r| j                   S | j                  r| j                  S i S rW   rX   rS   s    rM   r[   zAsyncAnthropic.auth_headersc  r\   rN   c                *    | j                   }|i S d|iS r^   r`   ra   s     rM   rY   zAsyncAnthropic._api_key_authl  rb   rN   c                0    | j                   }|i S dd| iS rd   rf   rg   s     rM   rZ   zAsyncAnthropic._bearer_auths  rh   rN   c                T    i t         |   dt                dd| j                  S )Nzasync:rk   rl   )rC   r3   r   rm   rn   s    rM   r3   zAsyncAnthropic.default_headersz  sA    
g%
#)*;*=)>!?!-
 ""	
 	
rN   c                   | j                   r|j                  d      ry t        |j                  d      t              ry | j                  r|j                  d      ry t        |j                  d      t              ry t        d      rp   rq   rt   s      rM   rv   z AsyncAnthropic._validate_headers  rw   rN   rx   c                  ||t        d      |	|
t        d      | j                  }|i ||}n||}| j                  }|	i ||	}n|
|
}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d|S r}   r   r   s                 rM   r   zAsyncAnthropic.copy  r   rN   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 t        |||      S r   r   r   s       rM   r   z!AsyncAnthropic._make_status_error  r   rN   )r-   r,   r.   r,   r0   r   r1   r   r2   r   r3   r   r4   r   r5   httpx.AsyncClient | Noner6   r   r   r   r   r   r   r   )r-   r,   r.   r,   r0   r   r1   r   r5   r   r2   r   r3   r   ry   r   r4   r   rz   r   r{   r   r   r   r   r   r   s   @rM   r$   r$     sY   --$$
44??  **L$$I
 #!%+/9B.4859 15 -2-=P =P 	=P
 )=P 7=P =P 2=P 3=P .=P, &*-=P. 
/=P~ 1  1    & & 9 9 
  
 
 
$ #!%+/5>04&/488<599=+-/
 /
 	/

 )/
 3/
 ./
 $/
 2/
 6/
 3/
 7/
 )/
 
/
f LEE 	E
 !E 
E ErN   r$   c                      e Zd ZddZy)r(   c                $   t        j                  |j                         | _         t        j                  |j                        | _        t	        j
                  |j                        | _        t        j                  |j                        | _        y rW   )r   CompletionsWithRawResponser"   MessagesWithRawResponser   ModelsWithRawResponser!   BetaWithRawResponserK   clients     rM   rD   z!AnthropicWithRawResponse.__init__  s]    &AA&BTBTU 88I226==A,,V[[9	rN   Nr   r#   r   r   r   r   r   rD   r~   rN   rM   r(   r(     s    :rN   r(   c                      e Zd ZddZy)r   c                $   t        j                  |j                         | _         t        j                  |j                        | _        t	        j
                  |j                        | _        t        j                  |j                        | _        y rW   )r   AsyncCompletionsWithRawResponser"   AsyncMessagesWithRawResponser   AsyncModelsWithRawResponser!   AsyncBetaWithRawResponser   s     rM   rD   z&AsyncAnthropicWithRawResponse.__init__  s]    &FFvGYGYZ ==fooN77F11&++>	rN   Nr   r$   r   r   r   r~   rN   rM   r   r     s    ?rN   r   c                      e Zd ZddZy)r*   c                $   t        j                  |j                         | _         t        j                  |j                        | _        t	        j
                  |j                        | _        t        j                  |j                        | _        y rW   )r    CompletionsWithStreamingResponser"   MessagesWithStreamingResponser   ModelsWithStreamingResponser!   BetaWithStreamingResponser   s     rM   rD   z&AnthropicWithStreamedResponse.__init__  s]    &GGHZHZ[ >>vO88G226;;?	rN   Nr   r   r~   rN   rM   r*   r*     s    @rN   r*   c                      e Zd ZddZy)r   c                $   t        j                  |j                         | _         t        j                  |j                        | _        t	        j
                  |j                        | _        t        j                  |j                        | _        y rW   )r   %AsyncCompletionsWithStreamingResponser"   "AsyncMessagesWithStreamingResponser    AsyncModelsWithStreamingResponser!   AsyncBetaWithStreamingResponser   s     rM   rD   z+AsyncAnthropicWithStreamedResponse.__init__  s]    &LLVM_M_` CCFOOT==fmmL77D	rN   Nr   r   r~   rN   rM   r   r     s    ErN   r   )6
__future__r   r@   typingr   r   r   typing_extensionsr   r   httpx r
   r   _qsr   _typesr   r   r   r   r   r   r   r   _utilsr   r   _versionr   	resourcesr   r   
_streamingr   r   r   _base_clientr   r   r    resources.betar!   resources.messagesr"   __all__r#   r$   r(   r   r*   r   r%   r&   r~   rN   rM   <module>r      s    # 	 & & ,  % 	 	 	 " * D ' 
 ! (	YE YExYE^ YEx: :? ?@ @E E 
rN   