o
    niF                     @   s:   d dl mZmZmZmZ erd dlmZ G dd dZdS )    )TYPE_CHECKINGAnyMutableMappingOptional)Clientc                   @   s   e Zd ZdZ	ddddeeef dee fddZ	dd	 Z
d
d Zedd Zedd Zedd Zdd Zdd Zdd Zdd Zdd ZeZdS )	PaginatorNclientr   	variablesper_pagec                 C   s8   || _ || _|| _| jd u rd| _g | _d| _d | _d S )N2   )r   r	   r
   objectsindexlast_response)selfr   r	   r
    r   R/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/apis/paginator.py__init__
   s   

zPaginator.__init__c                 C   s
   d| _ | S )Nr   )r   r   r   r   r   __iter__   s   zPaginator.__iter__c                 C   s*   | j d u r	|   | j d u rtd| j S )NzObject doesn't provide length)length
_load_page
ValueErrorr   r   r   r   __len__   s
   

zPaginator.__len__c                 C      t NNotImplementedErrorr   r   r   r   r   %      zPaginator.lengthc                 C   r   r   r   r   r   r   r   more)   r   zPaginator.morec                 C   r   r   r   r   r   r   r   cursor-   r   zPaginator.cursorc                 C   r   r   r   r   r   r   r   convert_objects1   s   zPaginator.convert_objectsc                 C   s   | j | j| jd d S )N)perPager    )r	   updater
   r    r   r   r   r   update_variables4   s   zPaginator.update_variablesc                 C   s<   | j sdS |   | jj| j| jd| _| j| 	  dS )NF)variable_valuesT)
r   r$   r   executeQUERYr	   r   r   extendr!   r   r   r   r   r   7   s   zPaginator._load_pagec                 C   sV   d}t |tr
|jn|}|r&|t| jd kr&|  }|r&|t| jd ks| j| S )NT   )
isinstanceslicestoplenr   r   )r   r   loadedr,   r   r   r   __getitem__A   s   
zPaginator.__getitem__c                 C   sJ   |  j d7  _ t| j| j kr|  stt| j| j krt| j| j  S )Nr)   )r   r-   r   r   StopIterationr   r   r   r   __next__H   s   zPaginator.__next__r   )__name__
__module____qualname__r'   r   strr   r   intr   r   r   propertyr   r   r    r!   r$   r   r/   r1   nextr   r   r   r   r      s0    





	r   N)typingr   r   r   r   	wandb_gqlr   r   r   r   r   r   <module>   s    