o
    #`^h
                     @   s   d dl mZmZmZmZmZmZ d dlmZm	Z	m
Z
 ddlmZmZmZmZ g dZedZe
G dd deZG d	d
 d
ee ee ee ZG dd dee ee ee ZG dd dee ee ee ZG dd dee ee ee ZdS )    )AnyListGenericTypeVarOptionalcast)Protocoloverrideruntime_checkable   )BasePagePageInfoBaseSyncPageBaseAsyncPage)SyncPage	AsyncPageSyncCursorPageAsyncCursorPage_Tc                   @   s   e Zd ZU ee ed< dS )CursorPageItemidN)__name__
__module____qualname__r   str__annotations__ r   r   O/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/openai/pagination.pyr      s   
 r   c                   @   J   e Zd ZU dZee ed< eed< edee fddZ	ed
dd	Z
dS )r   LNote: no pagination actually occurs yet, this is for forwards-compatibility.dataobjectreturnc                 C      | j }|sg S |S Nr    selfr    r   r   r   _get_page_items      zSyncPage._get_page_itemsNc                 C      dS z
        This page represents a response that isn't actually paginated at the API level
        so there will never be a next page.
        Nr   r'   r   r   r   next_page_info      zSyncPage.next_page_infor"   Nr   r   r   __doc__r   r   r   r   r	   r(   r-   r   r   r   r   r         
 r   c                   @   r   )r   r   r    r!   r"   c                 C   r#   r$   r%   r&   r   r   r   r(   .   r)   zAsyncPage._get_page_itemsNc                 C   r*   r+   r   r,   r   r   r   r-   5   r.   zAsyncPage.next_page_infor/   r0   r   r   r   r   r   (   r2   r   c                   @   F   e Zd ZU ee ed< edee fddZedee	 fddZ
dS )r   r    r"   c                 C   r#   r$   r%   r&   r   r   r   r(   A   r)   zSyncCursorPage._get_page_itemsc                 C   D   | j }|sd S tt|d }t|tr|jd u rd S td|jidS Nafter)paramsr    r   r   
isinstancer   r   r   r'   r    itemr   r   r   r-   H      zSyncCursorPage.next_page_infoNr   r   r   r   r   r   r	   r(   r   r   r-   r   r   r   r   r   >      
 r   c                   @   r3   )r   r    r"   c                 C   r#   r$   r%   r&   r   r   r   r(   Y   r)   zAsyncCursorPage._get_page_itemsc                 C   r4   r5   r9   r;   r   r   r   r-   `   r=   zAsyncCursorPage.next_page_infoNr>   r   r   r   r   r   V   r?   r   N)typingr   r   r   r   r   r   typing_extensionsr   r	   r
   _base_clientr   r   r   r   __all__r   r   r   r   r   r   r   r   r   r   <module>   s       $