o
    ØRWj»	  ã                   @  sÄ   U d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
Z
ddlmZ ddlmZ G d	d
„ d
ƒZe	G dd„ dƒƒZG dd„ deƒZeƒ Zded< ddd„Zddd„Zddd„Zd dd„ZdS )!é    )Úannotations)ÚCallableÚProtocolÚ	Awaitable)ÚWeakKeyDictionary)Ú	dataclassNé   )ÚFinalRequestOptions)ÚOpenAIErrorc                   @  s   e Zd ZdZdZdS )Ú	_ProviderzBOpaque configuration returned by an OpenAI-owned provider factory.)Ú__weakref__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__© r   r   ú_/home/esfera/Documents/content_generation/venv/lib/python3.10/site-packages/openai/_provider.pyr      s    r   c                   @  sf   e Zd ZU ded< ded< dZded< dZded	< dZd
ed< dZded< dZded< dZ	ded< dS )Ú_ProviderRuntimeÚstrÚnamezstr | httpx.URLÚbase_urlNz;Callable[[FinalRequestOptions], FinalRequestOptions] | NoneÚtransform_requestzFCallable[[FinalRequestOptions], Awaitable[FinalRequestOptions]] | NoneÚtransform_async_requestz&Callable[[httpx.Request], None] | NoneÚprepare_requestz1Callable[[httpx.Request], Awaitable[None]] | NoneÚprepare_async_requestz1Callable[[httpx.Response], httpx.Response] | NoneÚnormalize_responsez<Callable[[httpx.Response], Awaitable[httpx.Response]] | NoneÚnormalize_async_response)
r   r   r   Ú__annotations__r   r   r   r   r   r   r   r   r   r   r      s   
 r   c                   @  s$   e Zd Zed	dd„ƒZd
dd„ZdS )Ú_ProviderDefinitionÚreturnr   c                 C  ó   d S ©Nr   ©Úselfr   r   r   r       s   z_ProviderDefinition.namer   c                 C  r!   r"   r   r#   r   r   r   Ú	configure#   s    z_ProviderDefinition.configureN)r    r   )r    r   )r   r   r   Úpropertyr   r%   r   r   r   r   r      s    r   z1WeakKeyDictionary[_Provider, _ProviderDefinition]Ú_provider_definitionsÚ
definitionr    c                 C  s   t ƒ }| t|< |S r"   )r   r'   )r(   Úproviderr   r   r   Ú_create_provider/   s   r*   r)   r   c                 C  s
   t | ƒjS r"   )Ú_get_provider_definitionr   ©r)   r   r   r   Ú_provider_name5   s   
r-   c                 C  s   t | ƒ ¡ S r"   )r+   r%   r,   r   r   r   Ú_configure_provider9   s   r.   c              
   C  s2   zt |  W S  ttfy } ztdƒ|‚d }~ww )NzJInvalid provider. Providers must be created by an OpenAI provider factory.)r'   ÚKeyErrorÚ	TypeErrorr
   )r)   Úexcr   r   r   r+   =   s   

€ÿr+   )r(   r   r    r   )r)   r   r    r   )r)   r   r    r   )r)   r   r    r   )Ú
__future__r   Útypingr   r   r   Úweakrefr   Údataclassesr   ÚhttpxÚ_modelsr	   Ú_exceptionsr
   r   r   r   r'   r   r*   r-   r.   r+   r   r   r   r   Ú<module>   s     


