
    <Bhf                       S r SSKJr  SSKrSSKJrJr  SSKJr  SSK	J
r
Jr  SSKJrJr  SSKJr  SS	KJr  S
SKJrJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  SSKJrJ r   SSK!J"r"J#r#J$r$  \(       a  SSK%J&r&  S
SKJ'r'   " S S\"5      r( " S S\"5      r) " S S\$5      r* " S S\$5      r+ " S S\#5      r,\ " SS 9S! 5       r-g)"ze
Defines a "console" reporter backend.

This reporter backend provides the default output for conda.
    )annotationsN)EPIPE	ESHUTDOWN)cycle)basenamedirname)EventThread)sleep)TYPE_CHECKING   ) DEFAULT_CONSOLE_REPORTER_BACKENDROOT_ENV_NAME)context)swallow_broken_pipe)paths_equal)
CondaError   )CondaReporterBackendhookimpl)ProgressBarBaseReporterRendererBaseSpinnerBase)Iterable)PathTypec                  6    \ rS rSrSrSS jrSS jrSS jrSrg)	QuietProgressBar!   z:
Progress bar class used when no output should be printed
c                    g N )selffractions     Glib/python3.13/site-packages/conda/plugins/reporter_backends/console.py	update_toQuietProgressBar.update_to&           c                    g r    r!   r"   s    r$   refreshQuietProgressBar.refresh)   r'   r(   c                    g r    r!   r*   s    r$   closeQuietProgressBar.close,   r'   r(   r!   NreturnNone)	__name__
__module____qualname____firstlineno____doc__r%   r+   r.   __static_attributes__r!   r(   r$   r   r   !   s    r(   r   c                  v   ^  \ rS rSrSr  S	   S
U 4S jjjrSS jr\SS j5       rSS jr	\
S 5       rSrU =r$ )TQDMProgressBar0   z0
Progress bar class used for tqdm progress bars
c           
        > [         TU ]  U5        SU l        Sn U R                  UUSS[        R
                  UUS9U l        g ! [         a,  nUR                  [        [        4;   a  SU l         S nAg e S nAff = f)NTz!{desc}{bar} | {percentage:3.0f}%    )desc
bar_formatasciitotalfilepositionleaveF)super__init__enabled_tqdmsysstdoutpbarOSErrorerrnor   r   )r"   descriptionrC   rD   kwargsr?   e	__class__s          r$   rF   TQDMProgressBar.__init__5   s     	%8
	

 %ZZ! # DI  	ww5),,$		s   (A 
A:!A54A55A:c                     U R                   (       a2  U R                  R                  XR                  R                  -
  5        g g ! [         a,  nUR
                  [        [        4;   a  SU l          S nAg e S nAff = fNF)rG   rK   updatenrL   rM   r   r   )r"   r#   rP   s      r$   r%   TQDMProgressBar.update_toR   s]    	||		  IIKK!78  	ww5),,$		s   AA 
A<!A76A77A<c                \    U R                   (       a  U R                  R                  5         g g r    )rG   rK   r.   r*   s    r$   r.   TQDMProgressBar.close\   s    <<IIOO r(   c                \    U R                   (       a  U R                  R                  5         g g r    )rG   rK   r+   r*   s    r$   r+   TQDMProgressBar.refresha   s    <<II r(   c                     SSK Jn  U" U 0 UD6$ )z=Deferred import so it doesn't hit the `conda activate` paths.r   )tqdm)	tqdm.autor]   )argsrO   r]   s      r$   rH   TQDMProgressBar._tqdme   s     	#T$V$$r(   )rG   rK   )NT)rN   strr1   r2   r0   )r3   r4   r5   r6   r7   rF   r%   r   r.   r+   staticmethodrH   r8   __classcell__rQ   s   @r$   r:   r:   0   s^     	 
 :    % %r(   r:   c                  d   ^  \ rS rSr\" S5      rS
U 4S jjrS rS rS r	\
S 5       rS rS	rU =r$ )Spinnerm   z/-\|c                   > [         TU ]  X5        SU l        [        5       U l        [        U R                  S9U l        [        [        U R                  5      5      S-   U l        [        R                  U l        g )NT)targetr=   )rE   rF   	show_spinr	   _stop_runningr
   _start_spinning_spinner_threadlennextspinner_cycle_indicator_lengthrI   rJ   fh)r"   messagefail_messagerQ   s      r$   rF   Spinner.__init__p   s\    /#"W%T-A-AB!$T$*<*<%=!>!B**r(   c                8    U R                   R                  5         g r    )rm   startr*   s    r$   rw   Spinner.starty   s    ""$r(   c                z    U R                   R                  5         U R                  R                  5         SU l        g rT   )rk   setrm   joinrj   r*   s    r$   stopSpinner.stop|   s-     !!#r(   c                    U R                   R                  5       (       d  U R                  R                  [	        U R
                  5      S-   5        U R                  R                  5         [        S5        U R                  R                  SU R                  -  5        U R                   R                  5       (       d  M  g g ! [         a5  nUR                  [        [        4;   a  U R                  5          S nAg e S nAff = f)N g?)rk   is_setrr   writero   rp   flushr   rq   rL   rM   r   r   r|   )r"   rP   s     r$   rl   Spinner._start_spinning   s    
	((//11d4#5#56<=ddT%;%;;<	 ((//11
  	ww5),,				s   B<C 
D*C<;C<<Dc                    [         R                  R                  U R                   S35        [         R                  R	                  5         U R                  5         g )N: )rI   rJ   r   rs   r   rw   r*   s    r$   	__enter__Spinner.__enter__   s8    

DLL>,-



r(   c                N   U R                  5         [           U(       d  U(       a*  [        R                  R	                  U R
                  5        O[        R                  R	                  S5        [        R                  R                  5         S S S 5        g ! , (       d  f       g = fNzdone
)r|   r   rI   rJ   r   rt   r   r"   exc_typeexc_valexc_tbs       r$   __exit__Spinner.__exit__   sY    		 7

  !2!23

  *JJ !  s   A6B
B$)rq   rm   rk   rr   rj   zfailed
)r3   r4   r5   r6   r   rp   rF   rw   r|   rl   r   r   r   r8   rc   rd   s   @r$   rf   rf   m   s>    'NM%
  
 r(   rf   c                       \ rS rSrS rS rSrg)QuietSpinner   c                   [         R                  R                  U R                   S35        [         R                  R	                  5         [         R                  R                  S5        [         R                  R	                  5         g )Nr   z...working... )rI   rJ   r   rs   r   r*   s    r$   r   QuietSpinner.__enter__   sR    

DLL>,-



)*

r(   c                .   [            U(       d  U(       a*  [        R                  R                  U R                  5        O[        R                  R                  S5        [        R                  R                  5         S S S 5        g ! , (       d  f       g = fr   )r   rI   rJ   r   rt   r   r   s       r$   r   QuietSpinner.__exit__   sP     7

  !2!23

  *JJ !  s   A6B
Br!   N)r3   r4   r5   r6   r   r   r8   r!   r(   r$   r   r      s    r(   r   c                  h    \ rS rSrSrS
S jr\SSS jj5       r    SS jrSSS jjr	SSS jjr
Srg	)ConsoleReporterRenderer   z7
Default implementation for console reporting in conda
c                   S/n[        [        [        UR                  5       5      5      nUR	                  5        H   u  pVUR                  SUSU 3 SU 35        M"     UR                  S5        SR                  U5      $ )N r   >z : 
)maxmaprn   keysitemsappendr{   )r"   datarO   table_partslongest_headerheadervalues          r$   detail_view#ConsoleReporterRenderer.detail_view   sw    dSdiik23!ZZ\MF6!N+;);"<CwGH * 	4 yy%%r(   c                    U(       d  g/ SQnS nU  H  nUR                  U" U5      5        M     UR                  S5        SR                  U5      $ )Nr   )r   z# conda environments:#c                   ^  T [         R                  :X  a  SOSnT [         R                  :X  a  [        nO5[	        U 4S j[         R
                  5       5      (       a  [        T 5      nOSnUS SU ST  3$ )N*r   c              3  N   >#    U  H  n[        U[        T5      5      v   M     g 7fr    )r   r   ).0envs_dirprefixs     r$   	<genexpr>FConsoleReporterRenderer.envs_list.<locals>.disp_env.<locals>.<genexpr>   s#      GX8Hgfo66GXs   "%r   20)r   active_prefixroot_prefixr   any	envs_dirsr   )r   activenames   `  r$   disp_env3ConsoleReporterRenderer.envs_list.<locals>.disp_env   st    "g&;&;;SF,,,$ GNGXGX    '2Yaxq11r(   r   )r   r{   )prefixesoutputrO   r   
env_prefixs        r$   	envs_list!ConsoleReporterRenderer.envs_list   sL    3
	2 #JMM(:./ # 	dyy  r(   c                \    [         R                  (       a  [        U40 UD6$ [        U40 UD6$ )zD
Determines whether to return a TQDMProgressBar or QuietProgressBar
)r   quietr   r:   )r"   rN   rO   s      r$   progress_bar$ConsoleReporterRenderer.progress_bar   s+     ==#K:6::";9&99r(   c                X    [         R                  (       a  [        X5      $ [        X5      $ )z8
Determines whether to return a Spinner or QuietSpinner
)r   r   r   rf   )r"   rs   rt   s      r$   spinnerConsoleReporterRenderer.spinner   s!     ==66711r(   c                   X2;   d   U5       e/ nU H6  nXS:X  a  UR                  SUS    S35        M"  UR                  US   5        M8     SR                  USR                  U5      5      nUVVs0 s H  ofUS   4  H  owU_M     M     nnnX2S'    [        R                  R                  U5        [        R                  R                  5          [        R                  R                  5       R                  5       R                  5       nX;  a  [        S	U 35        OA[        R                  R                  S
5        [        R                  R                  5         X(   $ M  s  snnf ! [         a  n	[        SU	 35      eSn	A	ff = f)z#
Implementation of a prompt dialog
[r   ]z	{} ({})? /r   zcannot read from stdin: NzInvalid choice: r   )r   formatr{   rI   rJ   r   r   stdinreadlinestriplowerrL   r   print)
r"   rs   choicesdefaultoptionsoptionchoicealtuser_choicerP   s
             r$   promptConsoleReporterRenderer.prompt   sb    !*7*!F 6!9+Q/0vay)	  $$Wchhw.?@-4TW6PQ@S;@S3WTJJW%JJA!ii00288:@@B )(67

  &

  "++  U  A #;A3!?@@As   0E!:E' '
F1E??Fr!   N)r   zdict[str, str | int | bool]r1   ra   )T)r   zIterable[PathType]r1   ra   )rN   ra   r1   r   r   )rs   ra   rt   ra   r1   r   )Proceed)yesnor   )r1   ra   )r3   r4   r5   r6   r7   r   rb   r   r   r   r   r8   r!   r(   r$   r   r      sF    	& ! !2:: 
	:2, ,r(   r   T)tryfirstc               #  6   #    [        [        S[        S9v   g7f)z
Reporter backend for console
z5Default implementation for console reporting in conda)r   rN   rendererN)r   r   r   r!   r(   r$   conda_reporter_backendsr     s      -K( s   ).r7   
__future__r   rI   rM   r   r   	itertoolsr   os.pathr   r   	threadingr	   r
   timer   typingr   base.constantsr   r   base.contextr   	common.ior   common.pathr   
exceptionsr   r   r   r   typesr   r   r   collections.abcr   r   r   r:   rf   r   r   r   r!   r(   r$   <module>r      s    # 
 "  % #    M # , & $ - F F(' :%o :%z.k .b; "],2 ],@ 
r(   