U
    ·ÜŸjª  ã                   @   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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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   ú5/tmp/pip-unpacked-wheel-2qj3ofc_/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'   .   s    zAsyncPage._get_page_itemsNc                 C   s   dS r(   r   r)   r   r   r   r*   5   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'   B   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   r1   I   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*   Q   s    zSyncCursorPage.next_page_info©r   r   r   r   r   r   r-   r   Úboolr	   r'   r1   r   r*   Ú__classcell__r   r   r3   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   Nr-   r!   c                 C   s   | j }|sg S |S r#   r$   r%   r   r   r   r'   c   s    zAsyncCursorPage._get_page_itemsc                    s$   | j }|d k	r|dkrdS tƒ  ¡ S r.   r/   r2   r3   r   r   r1   j   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 r5   r9   r;   r   r   r   r*   r   s    zAsyncCursorPage.next_page_infor=   r   r   r3   r   r   _   s   
N)Útypingr   r   r   r   r   r   Útyping_extensionsr   r	   r
   Z_base_clientr   r   r   r   Ú__all__r   r   r   r   r   r   r   r   r   r   Ú<module>   s       !