
    	^c(                     Z    d dl Z d dlZddlmZ ddlmZ d Zd Zd Z G d d	          Z	dS )
    N   _)encodingc                  @    d                     d | D                       S )N    c              3      K   | ]}||V  	d S N ).0ss     4/usr/lib/python3/dist-packages/mercurial/progress.py	<genexpr>zspacejoin.<locals>.<genexpr>   s'      **1*Q******    )join)argss    r   	spacejoinr      s#    99********r   c                     | j         p|                     d           o/|                     | j                  p|                     dd          S )N   progresss
   assume-tty)quietplain_isattyferr
configbool)uis    r   shouldprintr      sI    1BHH[112 


27Hr}}[-HHr   c                    | dk     rt          d          | z  S | dz  }|dk     r| |dz  z  } t          d          || fz  S |dz  }|dz  }||dz  z  }|dk     rt          d          ||fz  S |dz  }|dz  }||dz  z  }|dk     rt          d	          ||fz  S |dz  }|d
z  }||d
z  z  }|dk     rt          d          ||fz  S |dz  }|dz  }||dz  z  }t          d          ||fz  S )zformat a number of remaining seconds in human readable way

    This will properly display seconds, minutes, hours, days if needed<   s   %02dss   %dm%02dsr      s   %dh%02dm      s   %dd%02dh   7   s   %dw%02dd4   s   %dy%02dwr   )secondsminuteshoursdaysweeksyearss         r   fmtremainingr+      sD    ||{{W$$mG||7R<~~' 222qLGrMEurzGrzz~~ 000	QJEB;D	TBYEbyy~~u--AIDAIEEAIDrzz~~--	QJERKE	URZE[>>UEN**r   c                   d    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZddZd ZdS )progbarc                 l    || _         t          j                    | _        |                                  d S r
   )r   	threadingLock_refreshlock
resetstate)selfr   s     r   __init__zprogbar.__init__D   s/    %N,,r   c           	      d   g | _         i | _        i | _        i | _        d| _        t          j                    t          | j                            dd                    z   | _	        d | _
        d | _        d| _        t          | j                            dd                    | _        t          d| j        z  t          | j                            dd                              | _        | j                            dd          | _        | j                            t          dd	          | _        d S )
NFr   s   delayr   s   refresh   s   changedelays   formats   estimateinterval)topicstopicstates
starttimes	startvalsprintedtimefloatr   config	lastprintcurtopic	lasttopic
indetcountrefreshmaxchangedelay
configlistorder
configwithestimateintervalr3   s    r   r2   zprogbar.resetstateI   s   uGNN;11(
 (
 
 TW^^KDDEEeDGNN;$O$OPP
 
 W''Y??
 $ 2 2; 3!
 !
r   c                 H   t          | j                  sd S |                                 }d| _        d}d}	d}
| j        D ]}d}|dk    r|}nN|dk    r-|r$dt          t          |                    ||fz  }n"d|z  }n|                    d          r|rd	}d
|v r)t          |	                    d
          d                   }n1d|v r+d}t          |	                    d          d                   }nd}|d	k    rt          j        ||d          }nt          j        ||          }||t          j        |          z
  dz  z  }nS|dk    rd}d}	nH|dk    r|r|}n=|dk    r|                     ||||          }n|dk    r|                     ||||          }|	st          ||          }qt          |
|          }
|	rd}|r|t          j        |          dz   z  }|
r|t          j        |
          dz   z  }||z
  dz
  }|r-||k    r'||z  |z  }d|dz
  z  }|dk    r|dz  }|d||z
  z  z  }nl|dz  }| xj        dz  c_        | j        d|z  z  }||z  }dt          |t#          |          z
            z  dz   dt          t#          |                    z  z   }d                    d|df          }t          |||
          }nt          ||
          }|                     dt          j        ||          z              || _        |                                  d S )NTr   Fs   topics   numbers   %*d/%ds   %ds   items   end   -r      +s	   beginning   )leftsider   s   bars   units   estimates   speedr   r6      =   >   s   <=>   [   ]   )r   r   widthr;   rG   lenstr
startswithintsplitr   trimcolwidthestimatespeedr   rB   absr   	_writeerrrA   	_flusherr)r3   nowtopicpositemunittotal	termwidthheadneedprogresstail	indicatoraddslicewidused	progwidthamtbarprogouts                        r   showzprogbar.show^   s   47## 	FJJLL	 #	, #	,ICH$$i'' &#s3u::U&CCCC#+CC%%g.. 84 89$$iood33A677CCY&&(Eiood33A677CCCF??"-cDAAACC"-c22Ch/444<<f$$#g%%$%k))mmE3s;;h&&jjT377 , s++ s++ 	(D 4)$//!33 4)$//!33!D(1,I Io.cAg&774KCty3//Q	1$ oY7y 3y3s883444SS]]*+ 
 88T3-..DD$--CCD$''Cux}S)<<<===r   c                     | j         r| j        rt          | j                  sd S |                     dd|                                 z  z             |                                  | j         r	d| _        d S d S )Ns   %sr   r   )r;   r?   r   r   ra   rV   rb   rJ   s    r   clearzprogbar.clear   s~    | 	4> 	TW9M9M 	FyD4::<<$78999< 	DNNN	 	r   c                     t          | j                  sd S | j                            dd          r|                                  n|                     d           |                                  d S )Nr   s   clear-complete   
)r   r   r   ry   ra   rb   rJ   s    r   completezprogbar.complete   sk    47## 	F7k+<== 	"JJLLLLNN5!!!r   c                 B    | j         j                                         d S r
   )r   r   flushrJ   s    r   rb   zprogbar._flusherr   s    r   c                 D    | j         j                            |           d S r
   )r   r   write)r3   msgs     r   ra   zprogbar._writeerr   s     3r   c           	          | j                                         }t          t          | j                             dd|                    |          S )Nr   s   width)default)r   ri   minrZ   r>   )r3   tws     r   rV   zprogbar.width   sA    W  3tw~~k8R~HHII2NNNr   c                     |dS | j         |         }||z
  }||z
  }|dk    r-|| j        |         z
  }|||z
  z  |z  dz   }	t          |	          S dS )Nr   r   r   )r:   r9   r+   )
r3   rd   re   rh   rc   
initialpostargetdeltaelapsedr%   s
             r   r^   zprogbar.estimate   sq    =3^E*
#j 199DOE22G&5.1e;a?G(((sr   c                     | j         |         }||z
  }|| j        |         z
  }|dk    rt          d          ||z  |fz  S dS )Nr   s	   %d %s/secr   )r:   r9   r   )r3   rd   re   rg   rc   r   r   r   s           r   r_   zprogbar.speed   sQ    ^E*
j ..Q;;\??egot%<<<sr   c                 ^    | j         #| j        | j         k    s|| j        z
  | j        k    rdS dS )z?Check if conditions are met to print - e.g. changedelay elapsedNTF)rA   r@   r?   rE   )r3   rc   s     r   
_oktoprintzprogbar._oktoprint   s:     N"}..T^#t'77745r   c                     | j         }|dk    rdS || j        |         z
  }||k    r<|| j        |         z
  }||z  |z  }|dk     rdS ||z
  | j        |<   ||z
  | j        |<   dS dS )a  Adjust starttimes and startvals for topic so ETA works better

        If progress is non-linear (ex. get much slower in the last minute),
        it's more friendly to only use a recent time span for ETA and speed
        calculation.

            [======================================>       ]
                                             ^^^^^^^
                           estimateinterval, only use this for estimation
        r   Ng?)rI   r9   r:   )r3   rd   rc   re   intervalr   r   newdeltas           r   _calibrateestimatezprogbar._calibrateestimate   s     (q==F..X$.//Ex''1H #~~$'(NDN5!%(8^DOE""" r   r   Nc                    ||                      |           d S t          j                    }| j        5  || j        vr.|| j        |<   || j        |<   | j                            |           ||||f| j        |<   || _        | 	                    |||           || j
        z
  | j        k    r=| j        r6|                     |          r!|| _
         | j        ||g| j        |         R   d d d            d S # 1 swxY w Y   d S r
   )
closetopicr<   r1   r7   r9   r:   appendr8   r@   r   r?   rC   r   rw   )r3   rd   re   rf   rg   rh   rc   s          r   progresszprogbar.progress  su   ;OOE"""Fikk 	D 	DDK''),&(+u%""5)))&)4u&<DU#!DM##E3444T^#t|333??3'' D%(DNDIc5C4+;E+BCCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   B4C55C9<C9c                 "   | j         5  | j                            |d            | j                            |d            | j                            |d            | j        r@| j        d         |k    r/| j        r(|                                  |                                  || j        v rM| j        d | j        	                    |                   | _        | j        r| j        d         | _
        nd | _
        d d d            d S # 1 swxY w Y   d S )Nr   )r1   r9   popr:   r8   r7   r;   r|   r2   indexrA   )r3   rd   s     r   r   zprogbar.closetopic  sK    	* 	*Ot,,,Nud+++  ---{ "t{1~664<6!!! ##"k*DDK,=,=e,D,D*DE ; *%)[_DNN%)DN%	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   C/DDD)r   r   N)__name__
__module____qualname__r4   r2   rw   ry   r|   rb   ra   rV   r^   r_   r   r   r   r   r   r   r   r-   r-   C   s          

 
 
*K K KZ           O O O
 
 
    4 4 44D D D D$* * * * *r   r-   )
r/   r<   i18nr    r   r   r   r+   r-   r   r   r   <module>r      s                    + + +  &+ &+ &+Rd* d* d* d* d* d* d* d* d* d*r   