
    pir0                    \   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 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-y)    )annotations)ListN   )_legacy_response)model_list_params)BodyOmitQueryHeadersNotGivenomit	not_given)is_given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            	          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	y)r   c                    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
        )ModelsWithRawResponseselfs    \/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/anthropic/resources/models.pywith_raw_responsezModels.with_raw_response   s     %T**    c                    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
        )ModelsWithStreamingResponser#   s    r%   with_streaming_responsezModels.with_streaming_response#   s     +400r'   Nbetasextra_headersextra_query
extra_bodytimeoutc          	         |st        d|      i t        dt        |      rdj                  d |D              nt        i      |xs i }| j                  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  2   K   | ]  }t        |        y wNstr.0es     r%   	<genexpr>z"Models.retrieve.<locals>.<genexpr>N        9PQ#a&9P   /v1/models/r.   r/   r0   r1   optionscast_to
ValueErrorr   r   joinr   _getr   r   r$   model_idr-   r.   r/   r0   r1   s          r%   retrievezModels.retrieve,   s    > VW_Vbcdd
/T\]bTc9P%9P1Pirst
"
 yy($(+Q[el   
 	
r'   after_id	before_idlimitr-   r.   r/   r0   r1   c                  i t        dt        |      rdj                  d |D              nt        i      |xs i }| j	                  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
        r5   r6   c              3  2   K   | ]  }t        |        y wr8   r9   r;   s     r%   r>   zModels.list.<locals>.<genexpr>   r?   r@   
/v1/modelsrN   rO   rP   r.   r/   r0   r1   querypagerD   model)r   r   rH   r   _get_api_listr   r   r   r   r   ModelListParams	r$   rN   rO   rP   r-   r.   r/   r0   r1   s	            r%   listzModels.listY   s    R
/T\]bTc9P%9P1Pirst
"
 !!)$(+'%%$,%.!&
 &55 # " 
 	
r'   )returnr"   )r_   r*   rK   r:   r-   List[AnthropicBetaParam] | Omitr.   Headers | Noner/   Query | Noner0   Body | Noner1   'float | httpx.Timeout | None | NotGivenr_   r   )rN   
str | OmitrO   rf   rP   
int | Omitr-   ra   r.   rb   r/   rc   r0   rd   r1   re   r_   zSyncPage[ModelInfo]
__name__
__module____qualname__r   r&   r+   r   r   rL   r^    r'   r%   r   r      s    + + 1 1 26 )-$("&;D+
+
 /	+
 &+
 "+
  +
 9+
 
+
`  $ $ 15 )-$("&;D?
 ?
 	?

 ?
 /?
 &?
 "?
  ?
 9?
 
?
r'   c            	          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	y)r   c                    t        |       S r!   )AsyncModelsWithRawResponser#   s    r%   r&   zAsyncModels.with_raw_response   s     *$//r'   c                    t        |       S r)   ) AsyncModelsWithStreamingResponser#   s    r%   r+   z#AsyncModels.with_streaming_response   s     055r'   Nr,   c          	       K   |st        d|      i t        dt        |      rdj                  d |D              nt        i      |xs i }| j                  d| t        ||||      t               d{   S 7 w)	r3   r4   r5   r6   c              3  2   K   | ]  }t        |        y wr8   r9   r;   s     r%   r>   z'AsyncModels.retrieve.<locals>.<genexpr>   r?   r@   rA   rB   rC   NrF   rJ   s          r%   rL   zAsyncModels.retrieve   s     > VW_Vbcdd
/T\]bTc9P%9P1Pirst
"
 YY($(+Q[el   
 
 	
 
s   A8B:A?;BrM   c                  i t        dt        |      rdj                  d |D              nt        i      |xs i }| j	                  dt
        t           t        ||||t        |||dt        j                              t              S )rR   r5   r6   c              3  2   K   | ]  }t        |        y wr8   r9   r;   s     r%   r>   z#AsyncModels.list.<locals>.<genexpr>  r?   r@   rT   rU   rV   rX   )r   r   rH   r   r[   r   r   r   r   r   r\   r]   s	            r%   r^   zAsyncModels.list   s    R
/T\]bTc9P%9P1Pirst
"
 !!9%(+'%%$,%.!&
 &55 # " 
 	
r'   )r_   ro   )r_   rq   r`   )rN   rf   rO   rf   rP   rg   r-   ra   r.   rb   r/   rc   r0   rd   r1   re   r_   z/AsyncPaginator[ModelInfo, AsyncPage[ModelInfo]]rh   rl   r'   r%   r   r      s    0 0 6 6 26 )-$("&;D+
+
 /	+
 &+
 "+
  +
 9+
 
+
`  $ $ 15 )-$("&;D?
 ?
 	?

 ?
 /?
 &?
 "?
  ?
 9?
 
9?
r'   c                      e Zd ZddZy)r"   c                    || _         t        j                  |j                        | _        t        j                  |j                        | _        y r8   )_modelsr   to_raw_response_wrapperrL   r^   r$   modelss     r%   __init__zModelsWithRawResponse.__init__  s=    (@@OO
 %<<KK
	r'   Nr{   r   r_   Noneri   rj   rk   r|   rl   r'   r%   r"   r"         
r'   r"   c                      e Zd ZddZy)ro   c                    || _         t        j                  |j                        | _        t        j                  |j                        | _        y r8   )rx   r   async_to_raw_response_wrapperrL   r^   rz   s     r%   r|   z#AsyncModelsWithRawResponse.__init__+  s=    (FFOO
 %BBKK
	r'   Nr{   r   r_   r~   r   rl   r'   r%   ro   ro   *  r   r'   ro   c                      e Zd ZddZy)r*   c                z    || _         t        |j                        | _        t        |j                        | _        y r8   )rx   r   rL   r^   rz   s     r%   r|   z$ModelsWithStreamingResponse.__init__7  s1    4OO
 1KK
	r'   Nr}   r   rl   r'   r%   r*   r*   6  r   r'   r*   c                      e Zd ZddZy)rq   c                z    || _         t        |j                        | _        t        |j                        | _        y r8   )rx   r   rL   r^   rz   s     r%   r|   z)AsyncModelsWithStreamingResponse.__init__C  s1    :OO
 7KK
	r'   Nr   r   rl   r'   r%   rq   rq   B  r   r'   rq   ).
__future__r   typingr   httpx r   typesr   _typesr   r	   r
   r   r   r   r   _utilsr   r   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   _base_clientr   r   types.model_infor   types.anthropic_beta_paramr   __all__r   r   r"   ro   r*   rq   rl   r'   r%   <module>r      s    #    % J J J ? ? % 9 X , ? ( ;]
#@
_ @
F@
" @
F	
 	
	
 	
	
 	
	
 	
r'   