o
    n’×i#	  ã                   @   s^   d Z ddlZddlmZmZmZ ddlmZ er&ddlmZ G dd„ deƒZ	G dd	„ d	ƒZ
dS )
z	progress.é    N)ÚIOÚTYPE_CHECKINGÚOptional)Ú	CommError)ÚProtocolc                   @   s"   e Zd Zdededdfdd„ZdS )Ú
ProgressFnÚ	new_bytesÚtotal_bytesÚreturnNc                 C   ó   d S ©N© )Úselfr   r	   r   r   úY/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/internal/progress.pyÚ__call__   ó   zProgressFn.__call__)Ú__name__Ú
__module__Ú__qualname__Úintr   r   r   r   r   r      s    r   c                   @   sn   e Zd ZdZdZ	ddee ded ddfdd	„Zddd„Z	ddd„Z
dd„ Zdd„ Zdd„ Zdd„ ZeZdS )ÚProgressz'A helper class for displaying progress.i   NÚfileÚcallbackr   r
   c                 C   sJ   || _ |d u rdtdtdd fdd„}|}|| _d| _t | ¡ ¡j| _d S )Nr   r	   r
   c                 S   r   r   r   )r   r	   r   r   r   Ú	callback_   r   z$Progress.__init__.<locals>.callback_r   )	r   r   r   Ú
bytes_readÚosÚfstatÚfilenoÚst_sizeÚlen)r   r   r   r   r   r   r   Ú__init__   s   zProgress.__init__éÿÿÿÿc                 C   s^   | j  |¡}|  jt|ƒ7  _|s$| j| jk r$td | j j| j| j¡ƒ‚|  t|ƒ| j¡ |S )z!Read bytes and call the callback.z>File {} size shrank from {} to {} while it was being uploaded.)r   Úreadr   r   r   ÚformatÚnamer   )r   ÚsizeÚbitesr   r   r   r"   $   s   ÿÿzProgress.readc                 C   s&   |   | j d¡ d| _| j d¡ d S ©Nr   )r   r   r   Úseek©r   r   r   r   Úrewind7   s   zProgress.rewindc                 C   s   t | j|ƒrt| j|ƒS t‚)z7Fallback to the file object for attrs not defined here.)Úhasattrr   ÚgetattrÚAttributeError)r   r$   r   r   r   Ú__getattr__<   s   zProgress.__getattr__c                 C   s   | S r   r   r)   r   r   r   Ú__iter__C   r   zProgress.__iter__c                 C   s    |   | j¡}t|ƒdkrt‚|S r'   )r"   Ú
ITER_BYTESr   ÚStopIteration)r   r&   r   r   r   Ú__next__F   s   zProgress.__next__c                 C   s   | j S r   )r   r)   r   r   r   Ú__len__L   s   zProgress.__len__r   )r!   )r
   N)r   r   r   Ú__doc__r0   r   Úbytesr   r    r"   r*   r.   r/   r2   r3   Únextr   r   r   r   r      s$    ÿÿÿ
þ

r   )r4   r   Útypingr   r   r   Úwandb.errorsr   r   r   r   r   r   r   r   Ú<module>   s    