
    Kuib                    d   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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mZ e	rd dl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)TYPE_CHECKINGCallableLiteralTypeVar)	BarColumnDownloadColumnFileSizeColumnMofNCompleteColumnProgressProgressColumnSpinnerColumn
TextColumnTimeElapsedColumnTimeRemainingColumnTransferSpeedColumn)RateLimiter)get_consoleget_indentation)InstallRequirement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	            i/root/.openclaw/workspace/chatterbox_venv/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py_rich_download_progress_barr9   !   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+   )r1   r)   r4   r<   bartaskreqs          r8   _rich_install_progress_barrF   K   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     r8   write_progressz)_raw_progress_bar.<locals>.write_progressg   s3    

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

    r   g      ?)rN   intr)   rQ   returnNone)r   r0   readyreset)r1   r3   r   rO   rN   r)   rate_limiterr7   s           r8   _raw_progress_barrW   a   s      #!GIAEt$L7E" 3u:7e#37E* s   A-A/r3   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   r2   r3   r   r   rX   )	functoolspartialr9   rW   iterrZ   s      r8   get_download_progress_rendererr^   x   sX     4  '-	
 	
 
U	  -
 	
 rP   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)   )r[   r\   rF   r]   )r2   r)   s     r8   get_install_progress_rendererr`      s%     4  !;5IIrP   )
r1   Iterable[bytes]r2   BarTyper3   
int | Noner   rc   rR   Generator[bytes, None, None])r1   zIterable[InstallRequirement]r)   rQ   rR   zIterator[InstallRequirement])r1   ra   r3   rc   r   rc   rR   rd   )r2   rb   r3   rc   r   rc   rR   zProgressRenderer[bytes])r2   rb   r)   rQ   rR   z$ProgressRenderer[InstallRequirement])(
__future__r   r[   rJ   collections.abcr   r   r   typingr   r   r	   r
   pip._vendor.rich.progressr   r   r   r   r   r   r   r   r   r   r   pip._internal.cli.spinnersr   pip._internal.utils.loggingr   r   pip._internal.req.req_installr   r   ProgressRendererrb   r9   rF   rW   r^   r`    rP   r8   <module>rn      s<   "  
 9 9 < <    3 D@CLXa[M8A;67 
$
% $('6'6 '6 	'6
 !'6 "'6T*69!4 $(	  !	
 "0 .2RV *EO0		!$	)	rP   