o
    "i                     @   s   d dl Z d dlZd dl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lmZ dd	lmZ dd
lmZ ddlmZ zd dlmZ W n eyU   d dlZY nw G dd dZG dd dZdS )    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)jsonable_encoder)remove_none_from_dict)RequestOptions)UnprocessableEntityError)HttpValidationError)Modelc                   @   >   e Zd ZdefddZdddeje deje	 fdd	Z
dS )
ModelsClientclient_wrapperc                C   
   || _ d S N_client_wrapperselfr    r   \/var/www/html/voicebot/backend/venv/lib/python3.10/site-packages/elevenlabs/models/client.py__init__      
zModelsClient.__init__Nrequest_optionsr   returnc                C   s,  | j jjdtj| j   ddt|dur|dndtt	i | j 
 |dur/|di ni |durC|ddurC|dndd	|durN|d
nd	d}d|j  kr]dk rjn nttjt | S |jdkryttt| z| }W n ty   t|j|jdw t|j|d)aP  
        Gets a list of available models.

        Parameters:
            - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
        ---
        from elevenlabs.client import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.models.get_all()
        GET/	v1/modelsNadditional_query_parametersadditional_headerstimeout_in_seconds<   r   max_retriesparamsheaderstimeoutretriesr$      ,    status_codebodyr   httpx_clientrequesturllibparseurljoinget_base_urlr   getr   get_headersr.   pydanticparse_obj_astypingListr   jsonr
   r   r   r   textr   r   	_response_response_jsonr   r   r   get_all   s>   	

zModelsClient.get_all)__name__
__module____qualname__r   r   r;   Optionalr	   r<   r   rB   r   r   r   r   r          (r   c                   @   r   )
AsyncModelsClientr   c                C   r   r   r   r   r   r   r   r   H   r   zAsyncModelsClient.__init__Nr   r   r   c                   s4  | j jjdtj| j   ddt|dur|dndtt	i | j 
 |dur0|di ni |durD|ddurD|dndd	|durO|d
nd	dI dH }d|j  kradk rnn nttjt | S |jdkr}ttt| z| }W n ty   t|j|jdw t|j|d)a`  
        Gets a list of available models.

        Parameters:
            - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
        ---
        from elevenlabs.client import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.models.get_all()
        r   r   r   Nr    r!   r"   r#   r   r$   r%   r*   r+   r,   r-   r0   r?   r   r   r   rB   K   s@   	

zAsyncModelsClient.get_all)rC   rD   rE   r   r   r;   rF   r	   r<   r   rB   r   r   r   r   rH   G   rG   rH   )r;   urllib.parser3   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.jsonable_encoderr   core.remove_none_from_dictr   core.request_optionsr	   !errors.unprocessable_entity_errorr
   types.http_validation_errorr   types.modelr   pydantic.v1v1r9   ImportErrorr   rH   r   r   r   r   <module>   s$   1