U
    ·ÜŸj~  ã                   @  st   d dl mZ d dlZd dlmZ d dlmZ G dd„ deƒZG dd„ dej	ƒZ
d	d
ddœdd„Zdddœdd„ZdS )é    )ÚannotationsN)ÚCallable)Úoverridec                      s:   e Zd Zdddœ‡ fdd„Zeddœdd„ƒZeZ‡  ZS )	ÚCancelledErrorÚstrÚNone)ÚmsgÚreturnc                   s   || _ tƒ  |¡ d S ©N)r   ÚsuperÚ__init__)Úselfr   ©Ú	__class__© ú8/tmp/pip-unpacked-wheel-2qj3ofc_/openai/cli/_progress.pyr   	   s    zCancelledError.__init__©r	   c                 C  s   | j S r
   )r   ©r   r   r   r   Ú__str__   s    zCancelledError.__str__)Ú__name__Ú
__module__Ú__qualname__r   r   r   Ú__repr__Ú__classcell__r   r   r   r   r      s   r   c                      sL   e Zd Zdddddœ‡ fdd„Zd	d
œdd„Zeddddœdd„ƒZ‡  ZS )ÚBufferReaderó    NÚbytesú
str | Noner   )ÚbufÚdescr	   c                   s2   t ƒ  |¡ t|ƒ| _d| _tt|ƒ|d�| _d S )Nr   )r   )r   r   ÚlenÚ_lenÚ	_progressÚprogressÚ	_callback)r   r   r   r   r   r   r      s    
zBufferReader.__init__Úintr   c                 C  s   | j S r
   )r!   r   r   r   r   Ú__len__   s    zBufferReader.__len__éÿÿÿÿz
int | None)Únr	   c              
   C  sh   t j | |¡}|  jt|ƒ7  _z|  | j¡ W n2 tk
rb } ztd |¡ƒ|‚W 5 d }~X Y nX |S )NzThe upload was cancelled: {})	ÚioÚBytesIOÚreadr"   r    r$   Ú	Exceptionr   Úformat)r   r(   ÚchunkÚer   r   r   r+      s    "zBufferReader.read)r   N)r'   )r   r   r   r   r&   r   r+   r   r   r   r   r   r      s   r   Úfloatr   zCallable[[float], None])Útotalr   r	   c                   s2   dd l }|j ˆd|d�‰ dddœ‡ ‡fdd„}|S )	Nr   T)r1   Z
unit_scaler   r0   r   )r#   r	   c                   s$   | ˆ _ | ˆkrˆ  ¡  nˆ  ¡  d S r
   )r(   ÚcloseZrefresh)r#   ©Zmeterr1   r   r   Úincr0   s    
zprogress.<locals>.incr)Útqdm)r1   r   r5   r4   r   r3   r   r#   +   s    r#   r%   )Úir	   c                 C  s   t | d ƒS )Ni   )r%   )r6   r   r   r   ÚMB:   s    r7   )Ú
__future__r   r)   Útypingr   Útyping_extensionsr   r,   r   r*   r   r#   r7   r   r   r   r   Ú<module>   s   