o
    "iw#                     @   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 ddlmZ zd dlmZ W n ey[   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)Subscription)Userc                   @   V   e Zd ZdefddZdddeje defdd	Z	dddeje de
fd
dZdS )
UserClientclient_wrapperc                C   
   || _ d S N_client_wrapperselfr    r   Z/var/www/html/voicebot/backend/venv/lib/python3.10/site-packages/elevenlabs/user/client.py__init__      
zUserClient.__init__Nrequest_optionsr   returnc                C   &  | 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 rgn ntt| S |jdkrvttt| z| }W n ty   t|j|jdw t|j|d)am  
        Gets extended information about the users subscription

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.user.get_subscription()
        GET/v1/user/subscriptionN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_headersr0   pydanticparse_obj_asr   jsonr
   r   r   r   textr   r   	_response_response_jsonr   r   r   get_subscription   >   	

zUserClient.get_subscriptionc                C   r   )aI  
        Gets information about the user

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.user.get()
        r   r    v1/userNr"   r#   r$   r%   r   r&   r'   r,   r-   r.   r/   r   r3   r4   r5   r6   r7   r8   r   r9   r   r:   r0   r;   r<   r   r=   r
   r   r   r   r>   r?   r   r   r   r9   G   rC   zUserClient.get)__name__
__module____qualname__r   r   typingOptionalr	   r   rB   r   r9   r   r   r   r   r          ",r   c                   @   r   )AsyncUserClientr   c                C   r   r   r   r   r   r   r   r   u   r   zAsyncUserClient.__init__Nr   r   r   c                   .  | 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 rkn ntt| S |jdkrzttt| z| }W n ty   t|j|jdw t|j|d)a}  
        Gets extended information about the users subscription

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.user.get_subscription()
        r   r    r!   Nr"   r#   r$   r%   r   r&   r'   r,   r-   r.   r/   r2   r?   r   r   r   rB   x   @   	

z AsyncUserClient.get_subscriptionc                   rM   )aY  
        Gets information about the user

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.user.get()
        r   r    rD   Nr"   r#   r$   r%   r   r&   r'   r,   r-   r.   r/   rE   r?   r   r   r   r9      rN   zAsyncUserClient.get)rF   rG   rH   r   r   rI   rJ   r	   r   rB   r   r9   r   r   r   r   rL   t   rK   rL   )rI   urllib.parser5   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.subscriptionr   
types.userr   pydantic.v1v1r;   ImportErrorr   rL   r   r   r   r   <module>   s&   ]