o
    +i0                     @  s8  d dl mZ d dlmZ d dl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 ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z& ddgZ'G dd deZ(G dd deZ)G dd dZ*G dd dZ+G dd dZ,G dd dZ-dS )    )annotations)ListN   )_legacy_response)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)model_list_params)AsyncPaginatormake_request_options)AnthropicBetaParam)BetaModelInfoModelsAsyncModelsc                	   @  ^   e Zd Zed"ddZed#ddZeddded	d$ddZeeeedddedd%d d!Z	dS )&r   returnModelsWithRawResponsec                 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
        )r    self r%   \/var/www/html/psymed-ai/venv/lib/python3.10/site-packages/anthropic/resources/beta/models.pywith_raw_response      zModels.with_raw_responseModelsWithStreamingResponsec                 C  r!   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#   r%   r%   r&   with_streaming_response#      zModels.with_streaming_responseNbetasextra_headersextra_query
extra_bodytimeoutmodel_idstrr.   List[AnthropicBetaParam] | Omitr/   Headers | Noner0   Query | Noner1   Body | Noner2   'float | httpx.Timeout | None | NotGivenr   c                C  sj   |s	t d|i tdt|rddd |D nti|p!i }| jd| dt||||dtd	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                 s      | ]}t |V  qd S Nr4   .0er%   r%   r&   	<genexpr>N       z"Models.retrieve.<locals>.<genexpr>/v1/models/
?beta=truer/   r0   r1   r2   optionscast_to
ValueErrorr   r   joinr   _getr   r   r$   r3   r.   r/   r0   r1   r2   r%   r%   r&   retrieve,   s   &
zModels.retrieveafter_id	before_idlimitr.   r/   r0   r1   r2   rS   
str | OmitrT   rU   
int | OmitSyncPage[BetaModelInfo]c          	      C  h   i t dt|rddd |D nti|pi }| jdtt t||||t|||dt	j
dtd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                 s  r>   r?   r@   rA   r%   r%   r&   rD      rE   zModels.list.<locals>.<genexpr>/v1/models?beta=truerS   rT   rU   r/   r0   r1   r2   querypagerJ   model)r   r   rN   r   _get_api_listr   r   r   r   r   ModelListParams	r$   rS   rT   rU   r.   r/   r0   r1   r2   r%   r%   r&   listY   .   )&zModels.list)r   r    )r   r)   r3   r4   r.   r5   r/   r6   r0   r7   r1   r8   r2   r9   r   r   )rS   rV   rT   rV   rU   rW   r.   r5   r/   r6   r0   r7   r1   r8   r2   r9   r   rX   
__name__
__module____qualname__r   r'   r+   r   r   rQ   re   r%   r%   r%   r&   r      (    	0c                	   @  r   )&r   r   AsyncModelsWithRawResponsec                 C  r!   r"   )rm   r#   r%   r%   r&   r'      r(   zAsyncModels.with_raw_response AsyncModelsWithStreamingResponsec                 C  r!   r*   )rn   r#   r%   r%   r&   r+      r,   z#AsyncModels.with_streaming_responseNr-   r3   r4   r.   r5   r/   r6   r0   r7   r1   r8   r2   r9   r   c                  sr   |s
t d|i tdt|rddd |D nti|p"i }| jd| dt||||dtd	I d
H S )r:   r;   r<   r=   c                 s  r>   r?   r@   rA   r%   r%   r&   rD      rE   z'AsyncModels.retrieve.<locals>.<genexpr>rF   rG   rH   rI   NrL   rP   r%   r%   r&   rQ      s   &
zAsyncModels.retrieverR   rS   rV   rT   rU   rW   7AsyncPaginator[BetaModelInfo, AsyncPage[BetaModelInfo]]c          	      C  rY   )	rZ   r<   r=   c                 s  r>   r?   r@   rA   r%   r%   r&   rD     rE   z#AsyncModels.list.<locals>.<genexpr>r[   r\   r]   r_   )r   r   rN   r   rb   r   r   r   r   r   rc   rd   r%   r%   r&   re      rf   zAsyncModels.list)r   rm   )r   rn   rg   )rS   rV   rT   rV   rU   rW   r.   r5   r/   r6   r0   r7   r1   r8   r2   r9   r   ro   rh   r%   r%   r%   r&   r      rl   c                   @     e Zd ZdddZdS )	r    modelsr   r   Nonec                 C  &   || _ t|j| _t|j| _d S r?   )_modelsr   to_raw_response_wrapperrQ   re   r$   rq   r%   r%   r&   __init__     
zModelsWithRawResponse.__init__Nrq   r   r   rr   ri   rj   rk   rw   r%   r%   r%   r&   r          r    c                   @  rp   )	rm   rq   r   r   rr   c                 C  rs   r?   )rt   r   async_to_raw_response_wrapperrQ   re   rv   r%   r%   r&   rw   +  rx   z#AsyncModelsWithRawResponse.__init__Nrq   r   r   rr   rz   r%   r%   r%   r&   rm   *  r{   rm   c                   @  rp   )	r)   rq   r   r   rr   c                 C  "   || _ t|j| _t|j| _d S r?   )rt   r   rQ   re   rv   r%   r%   r&   rw   7     
z$ModelsWithStreamingResponse.__init__Nry   rz   r%   r%   r%   r&   r)   6  r{   r)   c                   @  rp   )	rn   rq   r   r   rr   c                 C  r~   r?   )rt   r   rQ   re   rv   r%   r%   r&   rw   C  r   z)AsyncModelsWithStreamingResponse.__init__Nr}   rz   r%   r%   r%   r&   rn   B  r{   rn   ).
__future__r   typingr   httpx r   _typesr   r   r   r	   r
   r   r   _utilsr   r   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   
types.betar   _base_clientr   r   types.anthropic_beta_paramr   types.beta.beta_model_infor   __all__r   r   r    rm   r)   rn   r%   r%   r%   r&   <module>   s.   $  