o
    iI                     @   st  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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SyncConversationCursorPageAsyncConversationCursorPageSyncNextCursorPageAsyncNextCursorPage_Tc                   @   s   e Zd ZU ee ed< dS )CursorPageItemidN)__name__
__module____qualname__r   str__annotations__ r    r    </usr/local/lib/python3.10/dist-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,   r1   r    r    r    r!   r         
 r   c                   @   r"   )r   r#   r$   r%   r&   c                 C   r'   r(   r)   r*   r    r    r!   r,   7   r-   zAsyncPage._get_page_itemsNc                 C   r.   r/   r    r0   r    r    r!   r1   >   r2   zAsyncPage.next_page_infor3   r4   r    r    r    r!   r   1   r6   r   c                       p   e Zd ZU ee ed< dZee ed< e	dee fddZ
e	def fddZe	dee fd	d
Z  ZS )r   r$   Nhas_morer&   c                 C   r'   r(   r)   r*   r    r    r!   r,   K   r-   zSyncCursorPage._get_page_itemsc                    $   | j }|d ur|du rdS t  S NFr8   superhas_next_pager+   r8   	__class__r    r!   r=   R      
zSyncCursorPage.has_next_pagec                 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!   r1   Z      zSyncCursorPage.next_page_infor   r   r   r   r   r   r8   r   boolr	   r,   r=   r   r1   __classcell__r    r    r?   r!   r   G      
 r   c                       r7   )r   r$   Nr8   r&   c                 C   r'   r(   r)   r*   r    r    r!   r,   l   r-   zAsyncCursorPage._get_page_itemsc                    r9   r:   r;   r>   r?   r    r!   r=   s   rA   zAsyncCursorPage.has_next_pagec                 C   rB   rC   rH   rJ   r    r    r!   r1   {   rL   zAsyncCursorPage.next_page_inforM   r    r    r?   r!   r   h   rP   r   c                          e Zd ZU ee ed< dZee ed< dZ	ee
 ed< edee fddZedef fdd	Zedee fd
dZ  ZS )r   r$   Nr8   last_idr&   c                 C   r'   r(   r)   r*   r    r    r!   r,      r-   z*SyncConversationCursorPage._get_page_itemsc                    r9   r:   r;   r>   r?   r    r!   r=      rA   z(SyncConversationCursorPage.has_next_pagec                 C      | j }|sd S td|idS NrE   rF   rR   r   r+   rR   r    r    r!   r1         z)SyncConversationCursorPage.next_page_infor   r   r   r   r   r   r8   r   rN   rR   r   r	   r,   r=   r   r1   rO   r    r    r?   r!   r         
 r   c                       rQ   )r   r$   Nr8   rR   r&   c                 C   r'   r(   r)   r*   r    r    r!   r,      r-   z+AsyncConversationCursorPage._get_page_itemsc                    r9   r:   r;   r>   r?   r    r!   r=      rA   z)AsyncConversationCursorPage.has_next_pagec                 C   rS   rT   rU   rV   r    r    r!   r1      rW   z*AsyncConversationCursorPage.next_page_inforX   r    r    r?   r!   r      rY   r   c                       rQ   )r   r$   Nr8   nextr&   c                 C   r'   r(   r)   r*   r    r    r!   r,      r-   z"SyncNextCursorPage._get_page_itemsc                    r9   r:   r;   r>   r?   r    r!   r=      rA   z SyncNextCursorPage.has_next_pagec                 C   rS   rT   rZ   r   r+   rZ   r    r    r!   r1      rW   z!SyncNextCursorPage.next_page_infor   r   r   r   r   r   r8   r   rN   rZ   r   r	   r,   r=   r   r1   rO   r    r    r?   r!   r      rY   r   c                       rQ   )r   r$   Nr8   rZ   r&   c                 C   r'   r(   r)   r*   r    r    r!   r,      r-   z#AsyncNextCursorPage._get_page_itemsc                    r9   r:   r;   r>   r?   r    r!   r=      rA   z!AsyncNextCursorPage.has_next_pagec                 C   rS   rT   r[   r\   r    r    r!   r1      rW   z"AsyncNextCursorPage.next_page_infor]   r    r    r?   r!   r      rY   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   r    r    r    r!   <module>   s        ! !  $