o
    i                     @   s^   d dl Z d dlZddlmZ ddlmZmZ G dd dZG dd	 d	eZG d
d deZ	dS )    N   )DeepgramClientEnvironment   )AsyncHttpClient
HttpClientc                
   @   s   e Zd Zddddedejejeef  dedeje fddZ	d	ejeef fd
dZ
d	ejejeef  fddZd	efddZd	eje fddZdS )BaseClientWrapperNheaderstimeoutapi_keyr	   environmentr
   c                C   s   || _ || _|| _|| _d S N)r   _headers_environment_timeout)selfr   r	   r   r
    r   P/home/ubuntu/.local/lib/python3.10/site-packages/deepgram/core/client_wrapper.py__init__   s   
zBaseClientWrapper.__init__returnc                 C   sZ   dd l }ddd|  |   d|  ddd|  p!i }d	| j |d
< |S )Nr   zdeepgram-sdk/6.0.1Pythonzpython//zdeepgram-sdkz6.0.1)z
User-AgentzX-Fern-LanguagezX-Fern-RuntimezX-Fern-PlatformzX-Fern-SDK-NamezX-Fern-SDK-VersionzToken Authorization)platformpython_versionsystemlowerreleaseget_custom_headersr   )r   r   r	   r   r   r   get_headers   s   
	zBaseClientWrapper.get_headersc                 C      | j S r   )r   r   r   r   r   r   '      z$BaseClientWrapper.get_custom_headersc                 C   r    r   )r   r!   r   r   r   get_environment*   r"   z!BaseClientWrapper.get_environmentc                 C   r    r   )r   r!   r   r   r   get_timeout-   r"   zBaseClientWrapper.get_timeout)__name__
__module____qualname__strtypingOptionalDictr   floatr   r   r   r#   r$   r   r   r   r   r   
   s     
r   c                       sR   e Zd Zddddedejejeef  dedeje de	j
f
 fdd	Z  ZS )
SyncClientWrapperNr   r   r	   r   r
   httpx_clientc                   s,   t  j||||d t|| j| jd| _d S )Nr   r	   r   r
   )r.   base_headersbase_timeout)superr   r   r   r$   r.   )r   r   r	   r   r
   r.   	__class__r   r   r   2   s   	
zSyncClientWrapper.__init__)r%   r&   r'   r(   r)   r*   r+   r   r,   httpxClientr   __classcell__r   r   r3   r   r-   1   s    r-   c                       s   e Zd Zdddddedejejeef  dedeje dejej	g ej
e f  dejf fd	d
Zdejeef fddZ  ZS )AsyncClientWrapperN)r	   r
   async_tokenr   r	   r   r
   r9   r.   c                   s6   t  j||||d || _t|| j| j| jd| _d S )Nr/   )r.   r0   r1   async_base_headers)r2   r   _async_tokenr   r   r$   async_get_headersr.   )r   r   r	   r   r
   r9   r.   r3   r   r   r   B   s   
zAsyncClientWrapper.__init__r   c                    s4   |   }| jd ur|  I d H }d| |d< |S )NzBearer r   )r   r;   )r   r	   tokenr   r   r   r<   U   s   
z$AsyncClientWrapper.async_get_headers)r%   r&   r'   r(   r)   r*   r+   r   r,   Callable	Awaitabler5   AsyncClientr   r<   r7   r   r   r3   r   r8   A   s$     r8   )
r)   r5   r   r   http_clientr   r   r   r-   r8   r   r   r   r   <module>   s   '