a
    sh                     @  sh  U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZ d dlmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ eeZdZde d< dZ!de d< G dd dZ"G dd de"Z#G dd de"Z$G dd dZ%ej&dddddZ'G dd dZ(ej&d+ddd d!d"d#Z)d$Z*d%Z+ej&d&d'd(d)d*Z,dS ),    )annotationsN)	Generator)IOFinal)ConsoleConsoleOptionsRenderableTypeRenderResult)Live)Measurement)Text)WINDOWS)get_consoleget_indentationz-\|/r   SPINNER_CHARS   SPINS_PER_SECONDc                   @  s*   e Zd ZddddZdddddZd	S )
SpinnerInterfaceNonereturnc                 C  s
   t  d S NNotImplementedErrorself r   V/var/www/html/assistant/venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.pyspin   s    zSpinnerInterface.spinstrfinal_statusr   c                 C  s
   t  d S r   r   r   r!   r   r   r   finish"   s    zSpinnerInterface.finishN)__name__
__module____qualname__r   r#   r   r   r   r   r      s   r   c                   @  sZ   e Zd Zdede fdddddddZdd	d
ddZd	dddZdd	dddZdS )InteractiveSpinnerN   r   zIO[str] | Nonefloat)messagefile
spin_charsmin_update_interval_secondsc                 C  s\   || _ |d u rtj}|| _t|| _d| _t|| _	| j
dt  | j  d  d| _d S )NF  ... r   )_messagesysstdout_fileRateLimiter_rate_limiter	_finished	itertoolscycle_spin_cyclewriter   _width)r   r*   r+   r,   r-   r   r   r   __init__'   s    
zInteractiveSpinner.__init__r   statusr   c                 C  s\   | j r
J d| j }| j|d| j  |  | j| t|| _| j  | j  d S )Nr.   )r6   r;   r3   r:   lenflushr5   reset)r   r>   backupr   r   r   _write;   s    



zInteractiveSpinner._writer   c                 C  s,   | j r
d S | j sd S | t| j d S r   )r6   r5   readyrD   nextr9   r   r   r   r   r   G   s
    
zInteractiveSpinner.spinr    c                 C  s4   | j r
d S | | | jd | j  d| _ d S )N
T)r6   rD   r3   r:   rA   r"   r   r   r   r#   N   s    

zInteractiveSpinner.finish)	r$   r%   r&   r   r   r<   rD   r   r#   r   r   r   r   r'   &   s   r'   c                   @  sN   e Zd ZdddddddZdddd	d
ZddddZdddddZdS )NonInteractiveSpinner      N@r   r)   r   )r*   r-   r   c                 C  s$   || _ d| _t|| _| d d S )NFstarted)r0   r6   r4   r5   _update)r   r*   r-   r   r   r   r<   \   s    
zNonInteractiveSpinner.__init__r=   c                 C  s(   | j r
J | j  td| j| d S )Nz%s: %s)r6   r5   rB   loggerinfor0   r   r>   r   r   r   rK   b   s    

zNonInteractiveSpinner._updater   c                 C  s&   | j r
d S | j sd S | d d S )Nzstill running...)r6   r5   rE   rK   r   r   r   r   r   g   s
    
zNonInteractiveSpinner.spinr    c                 C  s&   | j r
d S | d| d d| _ d S )Nzfinished with status ''T)r6   rK   r"   r   r   r   r#   n   s    zNonInteractiveSpinner.finishN)rI   )r$   r%   r&   r<   rK   r   r#   r   r   r   r   rH   [   s   rH   c                   @  s8   e Zd ZdddddZdddd	Zddd
dZdS )r4   r)   r   )r-   r   c                 C  s   || _ d| _d S )Nr   )_min_update_interval_seconds_last_update)r   r-   r   r   r   r<   v   s    zRateLimiter.__init__boolr   c                 C  s   t   }|| j }|| jkS r   )timerQ   rP   )r   nowdeltar   r   r   rE   z   s    
zRateLimiter.readyc                 C  s   t   | _d S r   )rS   rQ   r   r   r   r   rB      s    zRateLimiter.resetN)r$   r%   r&   r<   rE   rB   r   r   r   r   r4   u   s   r4   r   z'Generator[SpinnerInterface, None, None])r*   r   c                 c  s   t j r"t tjkr"t| }nt| }z4t	t j |V  W d    n1 sR0    Y  W n: t
y|   |d  Y n( ty   |d  Y n0 |d d S )Ncancelederrordone)r1   r2   isattyrL   getEffectiveLevelloggingINFOr'   rH   hidden_cursorKeyboardInterruptr#   	Exception)r*   spinnerr   r   r   open_spinner   s    
(

ra   c                   @  sb   e Zd ZdZdddddZddd	d
ddZdddd
ddZddddZdddddZdS )_PipRichSpinnerz
    Custom rich spinner that matches the style of the legacy spinners.

    (*) Updates will be handled in a background thread by a rich live panel
        which will call render() automatically at the appropriate time.
    r   r   )labelr   c                 C  s.   || _ tt| _d| _d| _t d | _d S )N Fr.   )	rc   r7   r8   r   r9   _spinner_textr6   r   _indent)r   rc   r   r   r   r<      s
    z_PipRichSpinner.__init__r   r   r	   )consoleoptionsr   c                 c  s   |   V  d S r   )render)r   rg   rh   r   r   r   __rich_console__   s    z _PipRichSpinner.__rich_console__r   c                 C  s   |   }t|||S r   )ri   r   get)r   rg   rh   textr   r   r   __rich_measure__   s    z _PipRichSpinner.__rich_measure__r   r   c                 C  s(   | j st| j| _t| j| jd| jS )Nr/   )r6   rF   r9   re   r   Zassemblerf   rc   r   r   r   r   ri      s    z_PipRichSpinner.renderr=   c                 C  s   || _ d| _dS )z-Stop spinning and set a final status message.TN)re   r6   rN   r   r   r   r#      s    z_PipRichSpinner.finishN)	r$   r%   r&   __doc__r<   rj   rm   ri   r#   r   r   r   r   rb      s   rb   zConsole | NonezGenerator[None])rc   rg   r   c              	   c  s   t tjsd V  d S |pt }t| }t|t|d` z
d V  W n: ty`   |	d  Y n( t
y|   |	d  Y n0 |	d W d    n1 s0    Y  d S )N)Zrefresh_per_secondrg   rV   rW   rX   )rL   isEnabledForr[   r\   r   rb   r
   r   r^   r#   r_   )rc   rg   r`   r   r   r   open_rich_spinner   s    



rp   z[?25lz[?25hzIO[str]zGenerator[None, None, None])r+   r   c              	   c  sZ   t rd V  nJ|  r"t tjkr*d V  n,| t zd V  W | t n| t 0 d S r   )	r   rY   rL   rZ   r[   r\   r:   HIDE_CURSORSHOW_CURSOR)r+   r   r   r   r]      s    
r]   )N)-
__future__r   
contextlibr7   r[   r1   rS   collections.abcr   typingr   r   Zpip._vendor.rich.consoler   r   r   r	   Zpip._vendor.rich.liver
   Zpip._vendor.rich.measurer   Zpip._vendor.rich.textr   pip._internal.utils.compatr   pip._internal.utils.loggingr   r   	getLoggerr$   rL   r   __annotations__r   r   r'   rH   r4   contextmanagerra   rb   rp   rq   rr   r]   r   r   r   r   <module>   s:   
5&