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 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 ddlmZ ddlmZ ddlmZ zd dl m!Z" W n e#ys   d dl"Z"Y nw e $e j%dZ&G dd dZ'G dd dZ(dS )    N)JSONDecodeError   )core)ApiError)AsyncClientWrapperSyncClientWrapper)jsonable_encoder)remove_none_from_dict)RequestOptions)UnprocessableEntityError)AddProjectResponseModel)GetProjectsResponse)HttpValidationError)ProjectExtendedResponseModel)ProjectSnapshotsResponse)%PronunciationDictionaryVersionLocator.c                !   @     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dddddddd

de
deje
 dejej de
de
de
deje
 deje
 deje
 deje
 deje deje deje
 deje
 deje def ddZddde
deje defddZddde
deje dejfddZddde
deje dejfd d!Zddde
deje defd"d#Zddde
d$e
deje ddfd%d&Zddde
deje deje dejfd'd(ZdS ))ProjectsClientclient_wrapperc                C   
   || _ d S N_client_wrapperselfr    r   ^/var/www/html/voicebot/backend/venv/lib/python3.10/site-packages/elevenlabs/projects/client.py__init__      
zProjectsClient.__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 rgn ntt| S |jdkrvttt| z| }W n ty   t|j|jdw t|j|d)al  
        Returns a list of your projects together and its metadata.

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.projects.get_all()
        GET/v1/projectsN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_headersr3   pydanticparse_obj_asr   jsonr   r   r   r   textr   r    	_response_response_jsonr   r   r   get_all"   s>   	

zProjectsClient.get_all
from_urlfrom_documentquality_presettitleauthorisbn_numberacx_volume_normalizationvolume_normalizationcallback_urlr    namerG   rH   default_title_voice_iddefault_paragraph_voice_iddefault_model_idrI   rJ   rK   rL   rM   rN   !pronunciation_dictionary_locatorsrO   c                C   s  | j jjdtj| j   ddt|dur|dnd|du s(|ddu r<tt	||||||||	|
||||dni tt	||||||||	|
||||dtt	|di t
t	d|itt	i | j  |duru|d	i ni |dur|d
dur|d
ndd|dur|dndd	}d|j  krdk rn ntt| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a8  
        Creates a new project, it can be either initialized as blank, from a document or from a URL.

        Parameters:
            - name: str. The name of the project, used for identification only.

            - from_url: typing.Optional[str]. An optional URL from which we will extract content to initialize the project. If this is set, 'from_url' must be null. If neither 'from_url' or 'from_document' are provided we will initialize the project as blank.

            - from_document: typing.Optional[core.File]. See core.File for more documentation

            - default_title_voice_id: str. The voice_id that corresponds to the default voice used for new titles.

            - default_paragraph_voice_id: str. The voice_id that corresponds to the default voice used for new paragraphs.

            - default_model_id: str. The model_id of the model to be used for this project, you can query GET https://api.elevenlabs.io/v1/models to list all available models.

            - quality_preset: typing.Optional[str]. Output quality of the generated audio. Must be one of:
                                                    standard - standard output format, 128kbps with 44.1kHz sample rate.
                                                    high - high quality output format, 192kbps with 44.1kHz sample rate and major improvements on our side. Using this setting increases the character cost by 20%.
                                                    ultra - ultra quality output format, 192kbps with 44.1kHz sample rate and highest improvements on our side. Using this setting increases the character cost by 50%.

            - title: typing.Optional[str]. An optional name of the author of the project, this will be added as metadata to the mp3 file on project / chapter download.

            - author: typing.Optional[str]. An optional name of the author of the project, this will be added as metadata to the mp3 file on project / chapter download.

            - isbn_number: typing.Optional[str]. An optional ISBN number of the project you want to create, this will be added as metadata to the mp3 file on project / chapter download.

            - acx_volume_normalization: typing.Optional[bool]. [Deprecated] When the project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements

            - volume_normalization: typing.Optional[bool]. When the project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements

            - pronunciation_dictionary_locators: typing.List[str]. A list of pronunciation dictionary locators (id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text.  A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody

            - callback_url: typing.Optional[str]. A url that will be called by our service when the project is converted with a json containing the status of the conversion

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.projects.add()
        POSTr#   v1/projects/addNr%   additional_body_parametersrP   rG   rQ   rR   rS   rI   rJ   rK   rL   rM   rN   rT   rO   rH   r&   r'   r(   r   r)   r+   datafilesr,   r-   r.   r)   r/   r0   r1   r2   r   r6   r7   r8   r9   r:   r;   r   r<   r	   r   !convert_file_dict_to_httpx_tuplesr=   r3   r>   r?   r   r@   r   r   r   r   rA   r   rP   rG   rH   rQ   rR   rS   rI   rJ   rK   rL   rM   rN   rT   rO   r    rC   rD   r   r   r   addN   s   ?	
?
zProjectsClient.add
project_idc                C   s0  | j jjdtj| j   ddt| t|dur |dndtt	i | j 
 |dur4|di ni |durH|ddurH|dndd	|durS|d
nd	d}d|j  krbdk rln ntt| S |jdkr{ttt| z| }W n ty   t|j|jdw t|j|d)a  
        Returns information about a specific project. This endpoint returns more detailed information about a project than GET api.elevenlabs.io/v1/projects.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.projects.get(
            project_id="project_id",
        )
        r"   r#   v1/projects/Nr%   r&   r'   r(   r   r)   r*   r/   r0   r1   r2   r   r6   r7   r8   r9   r:   r;   r   r<   r	   r=   r3   r>   r?   r   r@   r   r   r   r   rA   r   r`   r    rC   rD   r   r   r   r<      sB   	

zProjectsClient.getc                C   s2  | j jjdtj| j   ddt| t|dur |dndtt	i | j 
 |dur4|di ni |durH|ddurH|dndd	|durS|d
nd	d}d|j  krbdk rmn n	ttj| S |jdkr|ttt| z| }W n ty   t|j|jdw t|j|d)a  
        Delete a project by its project_id.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.projects.delete(
            project_id="project_id",
        )
        DELETEr#   ra   Nr%   r&   r'   r(   r   r)   r*   r/   r0   r1   r2   r   r6   r7   r8   r9   r:   r;   r   r<   r	   r=   r3   r>   r?   typingAnyr@   r   r   r   r   rA   rc   r   r   r   delete
  sB   	

zProjectsClient.deletec                C   sR  | j jjdtj| j   ddt| dt|dur!|dnd|dur1tt	|di ndtt	i | j 
 |durD|di ni |durX|d	durX|d	nd
d|durc|dndd}d|j  krrdk r}n n	ttj| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a.  
        Starts conversion of a project and all of its chapters.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.projects.convert(
            project_id="project_id",
        )
        rU   r#   ra   /convertNr%   rW   r&   r'   r(   r   r)   r+   r@   r,   r-   r.   r)   r/   r0   r1   r2   re   rc   r   r   r   convert<  sH   	

zProjectsClient.convertc                C   s2  | j jjdtj| j   ddt| dt|dur!|dndtt	i | j 
 |dur5|di ni |durI|ddurI|dnd	d
|durT|dnd
d}d|j  krcdk rmn ntt| S |jdkr|ttt| z| }W n ty   t|j|jdw t|j|d)a  
        Gets the snapshots of a project.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.projects.get_snapshots(
            project_id="project_id",
        )
        r"   r#   ra   
/snapshotsNr%   r&   r'   r(   r   r)   r*   r/   r0   r1   r2   r   r6   r7   r8   r9   r:   r;   r   r<   r	   r=   r3   r>   r?   r   r@   r   r   r   r   rA   rc   r   r   r   get_snapshotsq  sB   	

zProjectsClient.get_snapshotsproject_snapshot_idc                C   sJ  | j jjdtj| j   ddt| dt| dt|dur&|dnd|dur6tt	|di ndtt	i | j 
 |durI|d	i ni |dur]|d
dur]|d
ndd|durh|dndd}d|j  krxdk rydS  |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a  
        Stream the audio from a project snapshot.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

            - project_snapshot_id: str. The project_snapshot_id of the project snapshot. You can query GET /v1/projects/{project_id}/snapshots to list all available snapshots for a project.

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.projects.stream_audio(
            project_id="project_id",
            project_snapshot_id="project_snapshot_id",
        )
        rU   r#   ra   /snapshots//streamNr%   rW   r&   r'   r(   r   r)   rj   r/   r0   r1   r2   r   r6   r7   r8   r9   r:   r;   r   r<   r	   r=   r3   r   r>   r?   r   r@   r   r   rA   r   r`   ro   r    rC   rD   r   r   r   stream_audio  sL   	

zProjectsClient.stream_audioc                C   sx  | j jjdtj| j   ddt| dt|dur!|dnd|du s.|ddu r4td|ini td|itt	|di tt	i | j 
 |durW|d	i ni |durk|d
durk|d
ndd|durv|dndd}d|j  krdk rn n	ttj| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a  
        Updates the set of pronunciation dictionaries acting on a project. This will automatically mark text within this project as requiring reconverting where the new dictionary would apply or the old one no longer does.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

            - pronunciation_dictionary_locators: typing.Sequence[PronunciationDictionaryVersionLocator]. A list of pronunciation dictionary locators (id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text.  A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.projects.update_pronunciation_dictionaries(
            project_id="project_id",
            pronunciation_dictionary_locators=[
                PronunciationDictionaryVersionLocator(
                    pronunciation_dictionary_id="pronunciation_dictionary_id",
                    version_id="version_id",
                )
            ],
        )
        rU   r#   ra   "/update-pronunciation-dictionariesNr%   rW   rT   r&   r'   r(   r   r)   rj   r/   r0   r1   r2   re   r   r`   rT   r    rC   rD   r   r   r   !update_pronunciation_dictionaries  sR   !
	

z0ProjectsClient.update_pronunciation_dictionaries)__name__
__module____qualname__r   r   rf   Optionalr
   r   rE   strr   FileboolListr   r_   r   r<   rg   rh   rk   r   rn   rt   Sequencer   rw   r   r   r   r   r          0
	

 

$4$26
5
@r   c                !   @   r   ))AsyncProjectsClientr   c                C   r   r   r   r   r   r   r   r   *  r   zAsyncProjectsClient.__init__Nr   r    r!   c                   s.  | 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|  
        Returns a list of your projects together and its metadata.

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.projects.get_all()
        r"   r#   r$   Nr%   r&   r'   r(   r   r)   r*   r/   r0   r1   r2   r5   rB   r   r   r   rE   -  s@   	

zAsyncProjectsClient.get_allrF   rP   rG   rH   rQ   rR   rS   rI   rJ   rK   rL   rM   rN   rT   rO   c                   s  | j jjdtj| j   ddt|dur|dnd|du s)|ddu r=tt	||||||||	|
||||dni tt	||||||||	|
||||dtt	|di t
t	d|itt	i | j  |durv|d	i ni |dur|d
dur|d
ndd|dur|dndd	I dH }d|j  krdk rn ntt| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)aH  
        Creates a new project, it can be either initialized as blank, from a document or from a URL.

        Parameters:
            - name: str. The name of the project, used for identification only.

            - from_url: typing.Optional[str]. An optional URL from which we will extract content to initialize the project. If this is set, 'from_url' must be null. If neither 'from_url' or 'from_document' are provided we will initialize the project as blank.

            - from_document: typing.Optional[core.File]. See core.File for more documentation

            - default_title_voice_id: str. The voice_id that corresponds to the default voice used for new titles.

            - default_paragraph_voice_id: str. The voice_id that corresponds to the default voice used for new paragraphs.

            - default_model_id: str. The model_id of the model to be used for this project, you can query GET https://api.elevenlabs.io/v1/models to list all available models.

            - quality_preset: typing.Optional[str]. Output quality of the generated audio. Must be one of:
                                                    standard - standard output format, 128kbps with 44.1kHz sample rate.
                                                    high - high quality output format, 192kbps with 44.1kHz sample rate and major improvements on our side. Using this setting increases the character cost by 20%.
                                                    ultra - ultra quality output format, 192kbps with 44.1kHz sample rate and highest improvements on our side. Using this setting increases the character cost by 50%.

            - title: typing.Optional[str]. An optional name of the author of the project, this will be added as metadata to the mp3 file on project / chapter download.

            - author: typing.Optional[str]. An optional name of the author of the project, this will be added as metadata to the mp3 file on project / chapter download.

            - isbn_number: typing.Optional[str]. An optional ISBN number of the project you want to create, this will be added as metadata to the mp3 file on project / chapter download.

            - acx_volume_normalization: typing.Optional[bool]. [Deprecated] When the project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements

            - volume_normalization: typing.Optional[bool]. When the project is downloaded, should the returned audio have postprocessing in order to make it compliant with audiobook normalized volume requirements

            - pronunciation_dictionary_locators: typing.List[str]. A list of pronunciation dictionary locators (id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text.  A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody

            - callback_url: typing.Optional[str]. A url that will be called by our service when the project is converted with a json containing the status of the conversion

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.projects.add()
        rU   r#   rV   Nr%   rW   rX   rH   r&   r'   r(   r   r)   rY   r/   r0   r1   r2   r\   r^   r   r   r   r_   Y  s   ?	
?
zAsyncProjectsClient.addr`   c                   s8  | j jjdtj| j   ddt| t|dur!|dndtt	i | j 
 |dur5|di ni |durI|ddurI|dndd	|durT|d
nd	dI dH }d|j  krfdk rpn ntt| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a  
        Returns information about a specific project. This endpoint returns more detailed information about a project than GET api.elevenlabs.io/v1/projects.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.projects.get(
            project_id="project_id",
        )
        r"   r#   ra   Nr%   r&   r'   r(   r   r)   r*   r/   r0   r1   r2   rb   rc   r   r   r   r<     sD   	

zAsyncProjectsClient.getc                   s:  | j jjdtj| j   ddt| t|dur!|dndtt	i | j 
 |dur5|di ni |durI|ddurI|dndd	|durT|d
nd	dI dH }d|j  krfdk rqn n	ttj| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a)  
        Delete a project by its project_id.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.projects.delete(
            project_id="project_id",
        )
        rd   r#   ra   Nr%   r&   r'   r(   r   r)   r*   r/   r0   r1   r2   re   rc   r   r   r   rh     sD   	

zAsyncProjectsClient.deletec                   sZ  | j jjdtj| j   ddt| dt|dur"|dnd|dur2tt	|di ndtt	i | j 
 |durE|di ni |durY|d	durY|d	nd
d|durd|dnddI dH }d|j  krvdk rn n	ttj| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a>  
        Starts conversion of a project and all of its chapters.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.projects.convert(
            project_id="project_id",
        )
        rU   r#   ra   ri   Nr%   rW   r&   r'   r(   r   r)   rj   r/   r0   r1   r2   re   rc   r   r   r   rk   G  sJ   	

zAsyncProjectsClient.convertc                   s:  | j jjdtj| j   ddt| dt|dur"|dndtt	i | j 
 |dur6|di ni |durJ|ddurJ|dnd	d
|durU|dnd
dI dH }d|j  krgdk rqn ntt| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a-  
        Gets the snapshots of a project.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.projects.get_snapshots(
            project_id="project_id",
        )
        r"   r#   ra   rl   Nr%   r&   r'   r(   r   r)   r*   r/   r0   r1   r2   rm   rc   r   r   r   rn   |  sD   	

z!AsyncProjectsClient.get_snapshotsro   c                   sR  | j jjdtj| j   ddt| dt| dt|dur'|dnd|dur7tt	|di ndtt	i | j 
 |durJ|d	i ni |dur^|d
dur^|d
ndd|duri|dnddI dH }d|j  kr|dk r}dS  |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a+  
        Stream the audio from a project snapshot.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

            - project_snapshot_id: str. The project_snapshot_id of the project snapshot. You can query GET /v1/projects/{project_id}/snapshots to list all available snapshots for a project.

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.projects.stream_audio(
            project_id="project_id",
            project_snapshot_id="project_snapshot_id",
        )
        rU   r#   ra   rp   rq   Nr%   rW   r&   r'   r(   r   r)   rj   r/   r0   r1   r2   rr   rs   r   r   r   rt     sN   	

z AsyncProjectsClient.stream_audioc                   s  | j jjdtj| j   ddt| dt|dur"|dnd|du s/|ddu r5td|ini td|itt	|di tt	i | j 
 |durX|d	i ni |durl|d
durl|d
ndd|durw|dnddI dH }d|j  krdk rn n	ttj| S |jdkrttt| z| }W n ty   t|j|jdw t|j|d)a  
        Updates the set of pronunciation dictionaries acting on a project. This will automatically mark text within this project as requiring reconverting where the new dictionary would apply or the old one no longer does.

        Parameters:
            - project_id: str. The project_id of the project, you can query GET https://api.elevenlabs.io/v1/projects to list all available projects.

            - pronunciation_dictionary_locators: typing.Sequence[PronunciationDictionaryVersionLocator]. A list of pronunciation dictionary locators (id, version_id) encoded as a list of JSON strings for pronunciation dictionaries to be applied to the text.  A list of json encoded strings is required as adding projects may occur through formData as opposed to jsonBody

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

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )
        await client.projects.update_pronunciation_dictionaries(
            project_id="project_id",
            pronunciation_dictionary_locators=[
                PronunciationDictionaryVersionLocator(
                    pronunciation_dictionary_id="pronunciation_dictionary_id",
                    version_id="version_id",
                )
            ],
        )
        rU   r#   ra   ru   Nr%   rW   rT   r&   r'   r(   r   r)   rj   r/   r0   r1   r2   re   rv   r   r   r   rw     sT   !
	

z5AsyncProjectsClient.update_pronunciation_dictionaries)rx   ry   rz   r   r   rf   r{   r
   r   rE   r|   r   r}   r~   r   r   r_   r   r<   rg   rh   rk   r   rn   rt   r   r   rw   r   r   r   r   r   )  r   r   ))rf   urllib.parser8   json.decoderr    r   core.api_errorr   core.client_wrapperr   r   core.jsonable_encoderr   core.remove_none_from_dictr	   core.request_optionsr
   !errors.unprocessable_entity_errorr    types.add_project_response_modelr   types.get_projects_responser   types.http_validation_errorr   %types.project_extended_response_modelr    types.project_snapshots_responser   .types.pronunciation_dictionary_version_locatorr   pydantic.v1v1r>   ImportErrorcastrg   OMITr   r   r   r   r   r   <module>   s8       