
    i0                       d dl mZ d dl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mZmZm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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' ddgZ( G d de          Z) G d de          Z* G d d          Z+ G d d          Z, G d d          Z- G d d          Z.dS )    )annotations)ListN   )_legacy_response)model_list_params)BodyOmitQueryHeadersNotGivenomit	not_given)is_givenpath_templatemaybe_transformstrip_not_given)cached_property)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)SyncPage	AsyncPage)AsyncPaginatormake_request_options)	ModelInfo)AnthropicBetaParamModelsAsyncModelsc            	      p    e Zd Zedd            Zedd            Zedddedd dZeeeedddedd!dZ	dS )"r   returnModelsWithRawResponsec                     t          |           S a  
        This property can be used as a prefix for any HTTP method call to return
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/anthropics/anthropic-sdk-python#accessing-raw-response-data-eg-headers
        )r"   selfs    W/root/projects/qq-shell/venv/lib/python3.11/site-packages/anthropic/resources/models.pywith_raw_responsezModels.with_raw_response   s     %T***    ModelsWithStreamingResponsec                     t          |           S z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/anthropics/anthropic-sdk-python#with_streaming_response
        )r*   r%   s    r'   with_streaming_responsezModels.with_streaming_response#   s     +4000r)   Nbetasextra_headersextra_query
extra_bodytimeoutmodel_idstrr/   List[AnthropicBetaParam] | Omitr0   Headers | Noner1   Query | Noner2   Body | Noner3   'float | httpx.Timeout | None | NotGivenr   c          	     8   |st          d|          i t          dt          |          rd                    d |D                       nt          i          |pi }|                     t          d|          t          ||||          t                    S )	X  
        Get a specific model.

        The Models API response can be used to determine information about a specific
        model or resolve a model alias to a model ID.

        Args:
          model_id: Model identifier or alias.

          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        7Expected a non-empty value for `model_id` but received anthropic-beta,c              3  4   K   | ]}t          |          V  d S Nr5   .0es     r'   	<genexpr>z"Models.retrieve.<locals>.<genexpr>N   (      9P9PQ#a&&9P9P9P9P9P9Pr)   /v1/models/{model_id}r4   r0   r1   r2   r3   optionscast_to	
ValueErrorr   r   joinr   _getr   r   r   r&   r4   r/   r0   r1   r2   r3   s          r'   retrievezModels.retrieve,   s    >  	ecW_ccddd
/T\]bTcTc1r9P9P%9P9P9P1P1P1Pirstt
"
 yy1HEEE(+Q[el     
 
 	
r)   after_id	before_idlimitr/   r0   r1   r2   r3   rU   
str | OmitrV   rW   
int | OmitSyncPage[ModelInfo]c               N   i t          dt          |          rd                    d |D                       nt          i          |pi }|                     dt
          t                   t          ||||t          |||dt          j
                            t                    S )  
        List available models.

        The Models API response can be used to determine which models are available for
        use in the API. More recently released models are listed first.

        Args:
          after_id: ID of the object to use as a cursor for pagination. When provided, returns the
              page of results immediately after this object.

          before_id: ID of the object to use as a cursor for pagination. When provided, returns the
              page of results immediately before this object.

          limit: Number of items to return per page.

              Defaults to `20`. Ranges from `1` to `1000`.

          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r>   r?   c              3  4   K   | ]}t          |          V  d S rA   rB   rC   s     r'   rF   zModels.list.<locals>.<genexpr>   rG   r)   
/v1/modelsrU   rV   rW   r0   r1   r2   r3   querypagerL   model)r   r   rP   r   _get_api_listr   r   r   r   r   ModelListParams	r&   rU   rV   rW   r/   r0   r1   r2   r3   s	            r'   listzModels.listY   s    R
/T\]bTcTc1r9P9P%9P9P9P1P1P1Pirstt
"
 !!)$(+'%%$,%.!& 
 &5    # " 
 
 	
r)   )r!   r"   )r!   r*   r4   r5   r/   r6   r0   r7   r1   r8   r2   r9   r3   r:   r!   r   )rU   rX   rV   rX   rW   rY   r/   r6   r0   r7   r1   r8   r2   r9   r3   r:   r!   rZ   
__name__
__module____qualname__r   r(   r-   r   r   rS   rh    r)   r'   r   r      s        + + + _+ 1 1 1 _1 26 )-$("&;D+
 +
 +
 +
 +
 +
`  $ $ 15 )-$("&;D?
 ?
 ?
 ?
 ?
 ?
 ?
 ?
r)   c            	      p    e Zd Zedd            Zedd            Zedddedd dZeeeedddedd!dZ	dS )"r   r!   AsyncModelsWithRawResponsec                     t          |           S r$   )rp   r%   s    r'   r(   zAsyncModels.with_raw_response   s     *$///r)    AsyncModelsWithStreamingResponsec                     t          |           S r,   )rr   r%   s    r'   r-   z#AsyncModels.with_streaming_response   s     0555r)   Nr.   r4   r5   r/   r6   r0   r7   r1   r8   r2   r9   r3   r:   r   c          	     H  K   |st          d|          i t          dt          |          rd                    d |D                       nt          i          |pi }|                     t          d|          t          ||||          t                     d	{V S )
r<   r=   r>   r?   c              3  4   K   | ]}t          |          V  d S rA   rB   rC   s     r'   rF   z'AsyncModels.retrieve.<locals>.<genexpr>   rG   r)   rH   rI   rJ   rK   NrN   rR   s          r'   rS   zAsyncModels.retrieve   s      >  	ecW_ccddd
/T\]bTcTc1r9P9P%9P9P9P1P1P1Pirstt
"
 YY1HEEE(+Q[el     
 
 
 
 
 
 
 
 	
r)   rT   rU   rX   rV   rW   rY   /AsyncPaginator[ModelInfo, AsyncPage[ModelInfo]]c               N   i t          dt          |          rd                    d |D                       nt          i          |pi }|                     dt
          t                   t          ||||t          |||dt          j
                            t                    S )r\   r>   r?   c              3  4   K   | ]}t          |          V  d S rA   rB   rC   s     r'   rF   z#AsyncModels.list.<locals>.<genexpr>  rG   r)   r^   r_   r`   rb   )r   r   rP   r   re   r   r   r   r   r   rf   rg   s	            r'   rh   zAsyncModels.list   s    R
/T\]bTcTc1r9P9P%9P9P9P1P1P1Pirstt
"
 !!9%(+'%%$,%.!& 
 &5    # " 
 
 	
r)   )r!   rp   )r!   rr   ri   )rU   rX   rV   rX   rW   rY   r/   r6   r0   r7   r1   r8   r2   r9   r3   r:   r!   rv   rj   rn   r)   r'   r   r      s        0 0 0 _0 6 6 6 _6 26 )-$("&;D+
 +
 +
 +
 +
 +
`  $ $ 15 )-$("&;D?
 ?
 ?
 ?
 ?
 ?
 ?
 ?
r)   c                      e Zd ZddZdS )r"   modelsr   r!   Nonec                    || _         t          j        |j                  | _        t          j        |j                  | _        d S rA   )_modelsr   to_raw_response_wrapperrS   rh   r&   rz   s     r'   __init__zModelsWithRawResponse.__init__  sA    (@O
 
 %<K
 
			r)   Nrz   r   r!   r{   rk   rl   rm   r   rn   r)   r'   r"   r"     (        
 
 
 
 
 
r)   r"   c                      e Zd ZddZdS )rp   rz   r   r!   r{   c                    || _         t          j        |j                  | _        t          j        |j                  | _        d S rA   )r}   r   async_to_raw_response_wrapperrS   rh   r   s     r'   r   z#AsyncModelsWithRawResponse.__init__+  sA    (FO
 
 %BK
 
			r)   Nrz   r   r!   r{   r   rn   r)   r'   rp   rp   *  r   r)   rp   c                      e Zd ZddZdS )r*   rz   r   r!   r{   c                x    || _         t          |j                  | _        t          |j                  | _        d S rA   )r}   r   rS   rh   r   s     r'   r   z$ModelsWithStreamingResponse.__init__7  s;    4O
 
 1K
 
			r)   Nr   r   rn   r)   r'   r*   r*   6  r   r)   r*   c                      e Zd ZddZdS )rr   rz   r   r!   r{   c                x    || _         t          |j                  | _        t          |j                  | _        d S rA   )r}   r   rS   rh   r   s     r'   r   z)AsyncModelsWithStreamingResponse.__init__C  s;    :O
 
 7K
 
			r)   Nr   r   rn   r)   r'   rr   rr   B  r   r)   rr   )/
__future__r   typingr   httpx r   typesr   _typesr   r	   r
   r   r   r   r   _utilsr   r   r   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   _base_clientr   r   types.model_infor   types.anthropic_beta_paramr   __all__r   r   r"   rp   r*   rr   rn   r)   r'   <module>r      sc   # " " " " "              % % % % % % J J J J J J J J J J J J J J J J J J N N N N N N N N N N N N % % % % % % 9 9 9 9 9 9 9 9 X X X X X X X X , , , , , , , , ? ? ? ? ? ? ? ? ( ( ( ( ( ( ; ; ; ; ; ;]
#@
 @
 @
 @
 @
_ @
 @
 @
F@
 @
 @
 @
 @
" @
 @
 @
F	
 	
 	
 	
 	
 	
 	
 	
	
 	
 	
 	
 	
 	
 	
 	
	
 	
 	
 	
 	
 	
 	
 	
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
r)   