o
    ϖi                     @   s  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
 zd dlmZ W n ey-   d dlZY nw d dlmZ e	dedZer=	 G dd dejee Zd	ee
ed
df gee f deee ddf fddZd	ee
ed
df geee  f deee df fddZdS )    )
TYPE_CHECKINGAsyncGenerator	AwaitableCallable	GeneratorGenericListOptionalTypeVarUnion)v1N)ResourceT)boundc                   @   sl   e Zd ZU dZdZee ed< 	 dZee ed< 	 e	e
 ed< 	 dd Zded	e
fd
dZd	efddZdS )Pagez)
    A page of results from the API.
    Npreviousnextresultsc                 C   
   t | jS N)iterr   self r   H/home/ubuntu/.local/lib/python3.10/site-packages/replicate/pagination.py__iter__)      
zPage.__iter__indexreturnc                 C   s
   | j | S r   )r   )r   r   r   r   r   __getitem__,   r   zPage.__getitem__c                 C   r   r   )lenr   r   r   r   r   __len__/   r   zPage.__len__)__name__
__module____qualname____doc__r   r	   str__annotations__r   r   r   r   intr   r!   r   r   r   r   r      s   
 r   list_methodellipsisr   c                 c   s2    d}|dur| |}|V  |j }|dusdS dS )z
    Iterate over all items using the provided list method.

    Args:
        list_method: A method that takes a cursor argument and returns a Page of items.
    .Nr   r)   cursorpager   r   r   paginate3   s   	r/   c                 C  s8   d}|dur| |I dH }|V  |j }|dusdS dS )z
    Asynchronously iterate over all items using the provided list method.

    Args:
        list_method: An async method that takes a cursor argument and returns a Page of items.
    .Nr+   r,   r   r   r   async_paginateC   s   	r0   )typingr   r   r   r   r   r   r   r	   r
   r   pydanticr   ImportErrorreplicate.resourcer   r   	BaseModelr   r&   r/   r0   r   r   r   r   <module>   s*   0 
