U
    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 ddddd	d
g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dS )    )AnyListGenericTypeVarOptionalcast)Protocoloverrideruntime_checkable   )BasePagePageInfoBaseSyncPageBaseAsyncPageSyncPage	AsyncPageSyncCursorPageAsyncCursorPageSyncConversationCursorPageAsyncConversationCursorPage_Tc                   @   s   e Zd ZU ee ed< dS )CursorPageItemidN)__name__
__module____qualname__r   str__annotations__ r   r   5/tmp/pip-unpacked-wheel-dms8d3uv/openai/pagination.pyr      s   
r   c                   @   sN   e Zd ZU dZee ed< eed< eee dddZ	edddd	Z
dS )
r   LNote: no pagination actually occurs yet, this is for forwards-compatibility.dataobjectreturnc                 C   s   | j }|sg S |S Nr!   selfr!   r   r   r   _get_page_items   s    zSyncPage._get_page_itemsNc                 C   s   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&   s    zSyncPage.next_page_infor   r   r   __doc__r   r   r   r   r	   r)   r,   r   r   r   r   r      s   
c                   @   sN   e Zd ZU dZee ed< eed< eee dddZ	edddd	Z
dS )
r   r    r!   r"   r#   c                 C   s   | j }|sg S |S r%   r&   r'   r   r   r   r)   5   s    zAsyncPage._get_page_itemsNc                 C   s   dS r*   r   r+   r   r   r   r,   <   s    zAsyncPage.next_page_infor-   r   r   r   r   r   /   s   
c                       sp   e Zd ZU ee ed< dZee ed< e	ee dddZ
e	ed fddZe	ee dd	d
Z  ZS )r   r!   Nhas_morer#   c                 C   s   | j }|sg S |S r%   r&   r'   r   r   r   r)   I   s    zSyncCursorPage._get_page_itemsc                    s$   | j }|d k	r|dkrdS t  S NFr/   superhas_next_pager(   r/   	__class__r   r   r3   P   s    zSyncCursorPage.has_next_pagec                 C   sD   | j }|sd S tt|d }t|tr0|jd kr4d S td|jidS Nafterparamsr!   r   r   
isinstancer   r   r   r(   r!   itemr   r   r   r,   X   s    zSyncCursorPage.next_page_infor   r   r   r   r   r   r/   r   boolr	   r)   r3   r   r,   __classcell__r   r   r5   r   r   E   s   
c                       sp   e Zd ZU ee ed< dZee ed< e	ee dddZ
e	ed fddZe	ee dd	d
Z  ZS )r   r!   Nr/   r#   c                 C   s   | j }|sg S |S r%   r&   r'   r   r   r   r)   j   s    zAsyncCursorPage._get_page_itemsc                    s$   | j }|d k	r|dkrdS t  S r0   r1   r4   r5   r   r   r3   q   s    zAsyncCursorPage.has_next_pagec                 C   sD   | j }|sd S tt|d }t|tr0|jd kr4d S td|jidS r7   r<   r>   r   r   r   r,   y   s    zAsyncCursorPage.next_page_infor@   r   r   r5   r   r   f   s   
c                       s   e Zd ZU ee ed< dZee ed< dZ	ee
 ed< eee dddZeed fdd	Zeee dd
dZ  ZS )r   r!   Nr/   last_idr#   c                 C   s   | j }|sg S |S r%   r&   r'   r   r   r   r)      s    z*SyncConversationCursorPage._get_page_itemsc                    s$   | j }|d k	r|dkrdS t  S r0   r1   r4   r5   r   r   r3      s    z(SyncConversationCursorPage.has_next_pagec                 C   s   | j }|sd S td|idS Nr9   r:   rC   r   r(   rC   r   r   r   r,      s    z)SyncConversationCursorPage.next_page_infor   r   r   r   r   r   r/   r   rA   rC   r   r	   r)   r3   r   r,   rB   r   r   r5   r   r      s   
c                       s   e Zd ZU ee ed< dZee ed< dZ	ee
 ed< eee dddZeed fdd	Zeee dd
dZ  ZS )r   r!   Nr/   rC   r#   c                 C   s   | j }|sg S |S r%   r&   r'   r   r   r   r)      s    z+AsyncConversationCursorPage._get_page_itemsc                    s$   | j }|d k	r|dkrdS t  S r0   r1   r4   r5   r   r   r3      s    z)AsyncConversationCursorPage.has_next_pagec                 C   s   | j }|sd S td|idS rD   rE   rF   r   r   r   r,      s    z*AsyncConversationCursorPage.next_page_inforG   r   r   r5   r   r      s   
N)typingr   r   r   r   r   r   Ztyping_extensionsr   r	   r
   Z_base_clientr   r   r   r   __all__r   r   r   r   r   r   r   r   r   r   r   r   <module>   s$    	   ! ! 