o
    i)                     @  s  d dl mZ d dlZddlmZmZmZ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mZmZmZ dd	lmZ dd
l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 )    )annotationsN   )BodyQueryHeadersNotGiven	not_given)path_template)cached_property)SyncAPIResourceAsyncAPIResource)to_raw_response_wrapperto_streamed_response_wrapperasync_to_raw_response_wrapper"async_to_streamed_response_wrapper)Model)make_request_options)ModelDeleted)ModelListResponseModelsAsyncModelsc                   @  j   e Zd ZedddZedddZddded	dddZddded	d ddZ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/groq/groq-python#accessing-raw-response-data-eg-headers
        )r   self r   O/home/kim/smarthome/.venv/lib/python3.10/site-packages/groq/resources/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/groq/groq-python#with_streaming_response
        )r"   r   r   r   r   with_streaming_response$      zModels.with_streaming_responseNextra_headersextra_query
extra_bodytimeoutmodelstrr'   Headers | Noner(   Query | Noner)   Body | Noner*   'float | httpx.Timeout | None | NotGivenr   c                C  6   |s	t d|| jtd|dt||||dtdS )H  
        Get a specific model

        Args:
          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
        4Expected a non-empty value for `model` but received /openai/v1/models/{model}r+   r&   optionsZcast_to
ValueError_getr	   r   r   r   r+   r'   r(   r)   r*   r   r   r   retrieve-      
zModels.retriever   c                C  s   | j dt||||dtdS )get all available models/openai/v1/modelsr&   r6   r:   r   r   r   r'   r(   r)   r*   r   r   r   listN   s   zModels.listr   c                C  r1   )B  
        Delete a model

        Args:
          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
        r3   r4   r5   r&   r6   r9   _deleter	   r   r   r;   r   r   r   deletea   r=   zModels.delete)r   r   )r   r"   r+   r,   r'   r-   r(   r.   r)   r/   r*   r0   r   r   
r'   r-   r(   r.   r)   r/   r*   r0   r   r   r+   r,   r'   r-   r(   r.   r)   r/   r*   r0   r   r   
__name__
__module____qualname__r
   r    r$   r   r<   rB   rF   r   r   r   r   r      (    	&c                   @  r   )"r   r   AsyncModelsWithRawResponsec                 C  r   r   )rO   r   r   r   r   r       r!   zAsyncModels.with_raw_response AsyncModelsWithStreamingResponsec                 C  r   r#   )rP   r   r   r   r   r$      r%   z#AsyncModels.with_streaming_responseNr&   r+   r,   r'   r-   r(   r.   r)   r/   r*   r0   r   c                  >   |s
t d|| jtd|dt||||dtdI dH S )r2   r3   r4   r5   r&   r6   Nr8   r;   r   r   r   r<         
zAsyncModels.retriever   c                  s$   | j dt||||dtdI dH S )r>   r?   r&   r6   Nr@   rA   r   r   r   rB      s   zAsyncModels.listr   c                  rQ   )rC   r3   r4   r5   r&   r6   NrD   r;   r   r   r   rF      rR   zAsyncModels.delete)r   rO   )r   rP   rG   rH   rI   rJ   r   r   r   r   r      rN   c                   @     e Zd ZdddZdS )	r   modelsr   r   Nonec                 C  .   || _ t|j| _t|j| _t|j| _d S N)_modelsr   r<   rB   rF   r   rT   r   r   r   __init__      
zModelsWithRawResponse.__init__NrT   r   r   rU   rK   rL   rM   rZ   r   r   r   r   r          r   c                   @  rS   )	rO   rT   r   r   rU   c                 C  rV   rW   )rX   r   r<   rB   rF   rY   r   r   r   rZ      r[   z#AsyncModelsWithRawResponse.__init__NrT   r   r   rU   r]   r   r   r   r   rO      r^   rO   c                   @  rS   )	r"   rT   r   r   rU   c                 C  rV   rW   )rX   r   r<   rB   rF   rY   r   r   r   rZ     r[   z$ModelsWithStreamingResponse.__init__Nr\   r]   r   r   r   r   r"     r^   r"   c                   @  rS   )	rP   rT   r   r   rU   c                 C  rV   rW   )rX   r   r<   rB   rF   rY   r   r   r   rZ     r[   z)AsyncModelsWithStreamingResponse.__init__Nr_   r]   r   r   r   r   rP     r^   rP   )$
__future__r   Zhttpx_typesr   r   r   r   r   Z_utilsr	   Z_compatr
   Z	_resourcer   r   	_responser   r   r   r   Ztypes.modelr   Z_base_clientr   Ztypes.model_deletedr   Ztypes.model_list_responser   __all__r   r   r   rO   r"   rP   r   r   r   r   <module>   s$   jj