o
    h<                     @  s  d dl mZ d dlZd dlZd dlmZmZmZ d dlm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZmZ ed	Ze	ee gee f Z e
d
 Z!ddd&ddZ"d'ddZ#ddd(ddZ$dddd)d!d"Z%d*d$d%Z&dS )+    )annotationsN)	GeneratorIterableIterator)CallableLiteralTypeVar)	BarColumnDownloadColumnFileSizeColumnMofNCompleteColumnProgressProgressColumnSpinnerColumn
TextColumnTimeElapsedColumnTimeRemainingColumnTransferSpeedColumn)RateLimiter)InstallRequirement)get_consoleget_indentationT)onoffraw)initial_progressiterableIterable[bytes]bar_typeBarTypesize
int | Noner   returnGenerator[bytes, None, None]c          	      c  s    |dks	J d|s t d}tdtdddt t t f}n|}tdt t t tdtd	d
f}t	|ddi}|j
dt d  |dd}|d urS|j||d |! | D ]}|V  |j|t|d qX|j|dd W d    d S 1 syw   Y  d S )Nr   z-This should only be used in the default mode.infz([progress.description]{task.description}lineg      ?)speedz{task.fields[time_description]}T)Zelapsed_when_finishedrefresh_per_second       eta)totaltime_description)advance )r.   )floatr   r   r   r   r   r	   r
   r   r   add_taskr   updatelen)	r   r   r!   r   r-   columnsprogressZtask_idchunk r8   e/home/www/facesmatcher.com/frenv_anti/lib/python3.10/site-packages/pip/_internal/cli/progress_bars.py_rich_download_progress_bar   s<   
	"r:   Iterable[InstallRequirement]r-   intIterator[InstallRequirement]c                c  s    t dt t t df}t }t|d|dd}|jd|dt  dd	}|# | D ]}|j|d
|j ddd |V  |	| q*W d    d S 1 sMw   Y  d S )Nz{task.fields[indent]}z{task.description}   T)r(   consoleZ	transientr0   r*   F)r-   indentvisiblez\[])descriptionrA   )
r   r	   r   r   r   r2   r   r3   namer/   )r   r-   r5   r?   bartaskreqr8   r8   r9   _rich_install_progress_barI   s    "rH   c                c  sp    d
dd}|p	d}|pd}t d	}||| | D ]}|t|7 }| s)||kr2||| |  |V  qd S )Ncurrentr<   r-   r#   Nonec                 S  s(   t jd|  d| d t j  d S )Nz	Progress z of 
)sysstdoutwriteflush)rI   r-   r8   r8   r9   write_progresse   s   z)_raw_progress_bar.<locals>.write_progressr   g      ?)rI   r<   r-   r<   r#   rJ   )r   r4   readyreset)r   r!   r   rP   rI   r-   Zrate_limiterr7   r8   r8   r9   _raw_progress_bar_   s   


rS   r!   r   ProgressRenderer[bytes]c                 C  s6   | dkrt jt| ||dS | dkrt jt||dS tS )zGet an object that can be used to render the download progress.

    Returns a callable, that takes an iterable to "wrap".
    r   r   r!   r   r   rT   )	functoolspartialr:   rS   iterrV   r8   r8   r9   get_download_progress_rendererv   s   rZ   $ProgressRenderer[InstallRequirement]c                 C  s   | dkrt jt|dS tS )z}Get an object that can be used to render the install progress.
    Returns a callable, that takes an iterable to "wrap".
    r   )r-   )rW   rX   rH   rY   )r   r-   r8   r8   r9   get_install_progress_renderer   s   r\   )
r   r   r   r    r!   r"   r   r"   r#   r$   )r   r;   r-   r<   r#   r=   )r   r   r!   r"   r   r"   r#   r$   )r   r    r!   r"   r   r"   r#   rU   )r   r    r-   r<   r#   r[   )'
__future__r   rW   rL   collections.abcr   r   r   typingr   r   r   Zpip._vendor.rich.progressr	   r
   r   r   r   r   r   r   r   r   r   pip._internal.cli.spinnersr   Zpip._internal.req.req_installr   pip._internal.utils.loggingr   r   r   ZProgressRendererr    r:   rH   rS   rZ   r\   r8   r8   r8   r9   <module>   s(    4
*