
    dh<                    \   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Z"	 	 	 	 	 	 ddZ#dd	 	 	 	 	 	 	 ddZ$ddd	 	 	 	 	 	 	 ddZ%	 	 	 	 	 	 ddZ&y)    )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_progressc             #  H  K   |dk(  sJ d       |s?t        d      }t        d      t        dd      t               t	               t               f}n>|}t        d      t               t               t	               t        d      t        d	
      f}t        |ddi}|j                  dt               dz   z  |d      }||j                  ||       |5  | D ]"  }| |j                  |t        |             $ |j                  |d       d d d        y # 1 sw Y   y xY ww)Nr   z-This should only be used in the default mode.infz([progress.description]{task.description}lineg      ?)speedz{task.fields[time_description]}T)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)	iterablebar_typesizer   r(   columnsprogresstask_idchunks	            a/var/www/html/vivango/api/ia/venv/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py_rich_download_progress_barr8      s1     tLLLeAB&,!/
 ABK!89d;
 7Q7H 1$%UU   G #)9:	 6 	9EKOOGSZO8	9 	"5	6 6 6s   CD";D	D"DD"c             #  v  K   t        d      t               t               t        d      f}t               }t	        |d|dd}|j                  d|dt               z  d	      }|5  | D ]9  }|j                  |d
|j                   dd       | |j                  |       ; 	 d d d        y # 1 sw Y   y xY ww)Nz{task.fields[indent]}z{task.description}   T)r#   console	transientr+   r%   F)r(   indentvisiblez\[])descriptionr>   )
r   r
   r   r   r   r-   r   r.   namer*   )r0   r(   r3   r;   bartaskreqs          r7   _rich_install_progress_barrE   I   s      	*+'(	G mG
G7d
SC <<%o6G0GQV<WD	  	CJJtBsxxj):DJIIKK	  s   A"B9$?B-$	B9-B62B9c             #     K   dd}|xs d}|xs d}t        d      } |||       | D ]B  }|t        |      z  }|j                         s||k(  r |||       |j                          | D y w)Nc                    t         j                  j                  d|  d| d       t         j                  j                          y )Nz	Progress z of 
)sysstdoutwriteflush)currentr(   s     r7   write_progressz)_raw_progress_bar.<locals>.write_progresse   s3    

9WIT%;<

    r   g      ?)rM   intr(   rP   returnNone)r   r/   readyreset)r0   r2   r   rN   rM   r(   rate_limiterr6   s           r7   _raw_progress_barrV   _   s      #!GIAEt$L7E" 3u:7e#37E* s   A-A/r2   r   c                    | dk(  rt        j                  t        | ||      S | dk(  rt        j                  t        ||      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   r1   r2   r   r   rW   )	functoolspartialr8   rV   iterrY   s      r7   get_download_progress_rendererr]   v   sX     4  '-	
 	
 
U	  -
 	
 rO   c                N    | dk(  rt        j                  t        |      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(   )rZ   r[   rE   r\   )r1   r(   s     r7   get_install_progress_rendererr_      s%     4  !;5IIrO   )
r0   Iterable[bytes]r1   BarTyper2   
int | Noner   rb   rQ   Generator[bytes, None, None])r0   zIterable[InstallRequirement]r(   rP   rQ   zIterator[InstallRequirement])r0   r`   r2   rb   r   rb   rQ   rc   )r1   ra   r2   rb   r   rb   rQ   zProgressRenderer[bytes])r1   ra   r(   rP   rQ   z$ProgressRenderer[InstallRequirement])'
__future__r   rZ   rI   collections.abcr   r   r   typingr   r   r	   pip._vendor.rich.progressr
   r   r   r   r   r   r   r   r   r   r   pip._internal.cli.spinnersr   pip._internal.req.req_installr   pip._internal.utils.loggingr   r   r   ProgressRendererra   r8   rE   rV   r]   r_    rO   r7   <module>rm      s9   "  
 9 9 - -    3 < DCLXa[M8A;67 
$
% $('6'6 '6 	'6
 !'6 "'6T*69!4 $(	  !	
 "0 .2RV *EO0		!$	)	rO   