o
    HEDiC                     @   s`   d dl mZ d dlZd dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZ G dd deZdS )	    )
quote_plusN)api_requestorerrorutil)OpenAIObject)ApiType)Optionalc                   @   s   e Zd ZdZdZdZe	dddZe	dddZdd	d
Z	dddZ
edd ZdddZe						dddZe						dddZe	ddee dee fddZdS )APIResource openaideploymentsNc                 K   s&   | d||d|}|j ||d |S N)idapi_key
request_idrequest_timeout )refreshclsr   r   r   r   paramsinstancer   r   y/var/www/www-root/data/www/ovozai.pdev.uz/venv/lib/python3.10/site-packages/openai/api_resources/abstract/api_resource.pyretrieve   s   zAPIResource.retrievec                 K   s"   | d||d|}|j ||dS r   )arefreshr   r   r   r   	aretrieve   s   zAPIResource.aretrievec                 C   s    |  | jd|  ||d | S )Ngetr   )refresh_fromrequestinstance_urlselfr   r   r   r   r   r      s   zAPIResource.refreshc                    s,   |  | jd| jdd||dI d H  | S )Nr   r   )	operationr   )r   arequestr    r!   r   r   r   r   )   s   

zAPIResource.arefreshc                 C   s:   | t krtd| jdd}| jrd| j|f S d| S )NzOAPIResource is an abstract class. You should perform actions on its subclasses../z/%s/%sz/%s)r	   NotImplementedErrorOBJECT_NAMEreplace
api_prefix)r   baser   r   r   	class_url4   s   zAPIResource.class_urlc                 C   s   |  d}t|tstdt| j|t|f d| jptj}t	|}| j
tjtjfv rN|s4td|sC|  }d| j|||f S d| j| j|||f S | j
tjkr^|  }d||f S td| j )Nr   zwCould not determine which URL to request: %s instance has invalid ID: %r, %s. ID should be of type `str` (or `unicode`)z2An API version is required for the Azure API type.z/%s%s/%s?api-version=%sz/%s/%s/%s/%s?api-version=%sz%s/%szUnsupported API type %s)r   
isinstancestrr   InvalidRequestErrortype__name__api_versionr   r   typed_api_typer   AZUREAZURE_ADr,   azure_api_prefixazure_deployments_prefixOPEN_AIInvalidAPITypeapi_type)r"   r#   r   r2   extnr+   r   r   r   r    A   sD   

zAPIResource.instance_urlc	                 K   s<   t j|||||d}
|
j|||	|d\}}}t||||S N)r2   organizationapi_baser:   )r   )r   APIRequestorr   r   convert_to_openai_objectr   method_url_r   r>   r:   r   r2   r=   r   	requestorresponse_r   r   r   _static_requestn   s   zAPIResource._static_requestc	                    s8   t j|||||d}
|
j|||	|dI d H \}}}|S r<   )r   r?   r$   rA   r   r   r   _astatic_request   s   zAPIResource._astatic_requestr:   r2   c                 C   s,   |rt |nt tj}|ptj}||fS N)r   from_strr   r:   r2   )r   r:   r2   r3   typed_api_versionr   r   r   _get_api_type_and_version   s   

z%APIResource._get_api_type_and_version)NNN)NNrI   )NNNNNN)r1   
__module____qualname__r*   r6   r7   classmethodr   r   r   r   r,   r    rG   rH   r   r.   rL   r   r   r   r   r	   
   sL    



-r	   )urllib.parser   r   r   r   r   openai.openai_objectr   openai.utilr   typingr   r	   r   r   r   r   <module>   s    