o
    HEDi}                     @   s@   d dl mZmZmZ d dlmZ d dlmZ G dd deZdS )    )api_requestorerrorutil)ListableAPIResource)ApiTypec                   @   sl   e Zd Zedd Ze					d
ddZe								dddZe								ddd	ZdS )PaginatableAPIResourcec                 o   sr    d }d}| dsd|d< |r7|r||d< | j|i |}|jD ]}|V  q!|jr0|jd j}|j}|sd S d S )NTlimit   after)getlistdataidhas_more)clsargsparamsnext_cursorr   responseitem r   /var/www/www-root/data/www/ovozai.pdev.uz/venv/lib/python3.10/site-packages/openai/api_resources/abstract/paginatable_api_resource.pyauto_paging_iter   s   

z'PaginatableAPIResource.auto_paging_iterNc           
      C   s   t j||p|  |||d}| ||\}}|tjtjfv r.|  }d| j||f }	||	fS |tj	kr;|  }	||	fS t
d| )N)api_baseapi_versionapi_typeorganizationz/%s%s?api-version=%szUnsupported API type %s)r   APIRequestorr   _get_api_type_and_versionr   AZUREAZURE_AD	class_urlazure_api_prefixOPEN_AIr   InvalidAPIType)
r   api_keyr   r   r   r   	requestortyped_api_typebaseurlr   r   r   __prepare_list_requestor   s$   	

z/PaginatableAPIResource.__prepare_list_requestorc	                 K   sZ   |  |||||\}
}i |	||d}	|
jd||	|d\}}}t||||}|	|_|S N)r   starting_afterr   )
request_id)/_PaginatableAPIResource__prepare_list_requestorrequestr   convert_to_openai_object_retrieve_paramsr   r   r-   r&   r.   r   r   r   r   r   r'   r*   r   _openai_objectr   r   r   r   7   s*   zPaginatableAPIResource.listc	                    sb   |  |||||\}
}i |	||d}	|
jd||	|dI d H \}}}t||||}|	|_|S r,   )r/   arequestr   r1   r2   r3   r   r   r   alist[   s,   zPaginatableAPIResource.alist)NNNNN)NNNNNNNN)__name__
__module____qualname__classmethodr   r/   r   r7   r   r   r   r   r      s<    
#r   N)	openair   r   r   3openai.api_resources.abstract.listable_api_resourcer   openai.utilr   r   r   r   r   r   <module>   s    