
    6h(                    ^    S SK Jr  S SKrS SKrSSKJr  SSKJr  S rS r	S r
 " S	 S
5      rg)    )annotationsN   _)encodingc                 2    SR                  S U  5       5      $ )N    c              3  6   #    U  H  o(       d  M  Uv   M     g 7fN ).0ss     4/usr/lib/python3/dist-packages/mercurial/progress.py	<genexpr>spacejoin.<locals>.<genexpr>   s     *1QQs   
	)join)argss    r   	spacejoinr      s    99****    c                    U R                   =(       d    U R                  S5      (       + =(       a4    U R                  U R                  5      =(       d    U R	                  SS5      $ )N   progresss
   assume-tty)quietplain_isattyferr
configbool)uis    r   shouldprintr      sD    1BHH[12 


277Hr}}[-Hr   c                   U S:  a  [        S5      U -  $ U S-  nUS:  a  XS-  -  n [        S5      X4-  $ US-  nUS-  nXS-  -  nUS:  a  [        S5      X!4-  $ US-  nUS-  nX#S-  -  nUS:  a  [        S	5      X24-  $ US-  nUS
-  nX4S
-  -  nUS:  a  [        S5      XC4-  $ US-  nUS-  nXES-  -  n[        S5      XT4-  $ )z~format 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-      s    |{W$$mG|R<~ 222qLGrMErzGrz~ 000	QJEB;D	BYEby~--AIDAIEAIDrz~--	QJERKE	RZE[>UN**r   c                  l    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSS jrS rSrg)progbarD   c                d    Xl         [        R                  " 5       U l        U R	                  5         g r   )r   	threadingLock_refreshlock
resetstate)selfr   s     r   __init__progbar.__init__E   s     %NN,r   c           	     X   / U l         0 U l        0 U l        0 U l        SU l        [
        R
                  " 5       [        U R                  R                  SS5      5      -   U l	        S U l
        S U l        SU l        [        U R                  R                  SS5      5      U l        [        SU R                  -  [        U R                  R                  SS5      5      5      U l        U R                  R!                  SS5      U l        U R                  R%                  [        SS	5      U l        g )
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r6   s    r   r5   progbar.resetstateJ   s    uGGNN;1(
 
 TWW^^KDEeDGGNN;$OP
 WW''Y?
 $ 2 2; 3!
r   c                   [        U R                  5      (       d  g U R                  5       nSU l        SnSn	Sn
U R                   GHg  nSnUS:X  a  UnGO7US:X  a)  U(       a  S[        [        U5      5      X64-  nGOSU-  nGOUR                  S5      (       a  U(       a  S	nS
U;   a  [        UR                  S
5      S   5      nO(SU;   a   Sn[        UR                  S5      S   5      nOSnUS	:X  a  [        R                  " XNSS9nO[        R                  " XN5      nX[        R                  " U5      -
  S-  -  nOLUS:X  a  SnSn	OAUS:X  a
  U(       a  UnO1US:X  a  U R                  X#Xa5      nOUS:X  a  U R                  X#XQ5      nU	(       d  [        X5      nGM\  [        X5      n
GMj     U	(       Ga
  SnU(       a  U[        R                  " U5      S-   -  nU
(       a  U[        R                  " U
5      S-   -  nX-
  S-
  nU(       a,  X6::  a'  UU-  U-  nSUS-
  -  nUS:  a  US-  nUSUU-
  -  -  nOfUS-  nU =R                   S-  sl        U R                   SU-  -  nUU-  nS[        U[#        U5      -
  5      -  S-   S[        [#        U5      5      -  -   nSR%                  SUS45      n[        UUU
5      nO[        X5      nU R'                  S[        R                  " UU5      -   5        X l        U R+                  5         g )NTr   Fs   topics   numbers   %*d/%ds   %ds   items   end   -r      +s	   beginning   )leftsider	   s   bars   units   estimates   speedr   r:      =   >   s   <=>   [   ]   )r   r   widthr?   rK   lenstr
startswithintsplitr   trimcolwidthestimatespeedr   rF   absr   	_writeerrrE   	_flusherr)r6   nowtopicpositemunittotal	termwidthheadneedprogresstail	indicatoraddslicewidused	progwidthamtbarprogouts                        r   showprogbar.show_   s   477##JJL	ICH$i'#s3u:&CCC#+C%%g..49$iood3A67CY&(Eiood3A67CCF?"--DAC"--2Ch//44<<f$#g%$k)mmE;h&jjT7 + +G $H D))$/!33))$/!33!(1,IIo.cAg&74KCty3//Q	1$ ooY7y 3y3s8344SS]*+ 
 88T3-.DD$-CD'Cux}}S)<<=r   c                   U R                   (       a+  U R                  (       a  [        U R                  5      (       d  g U R	                  SSU R                  5       -  -  5        U R                  5         U R                   (       a  SU l        g g )Ns   %sr	   r   )r?   rC   r   r   rf   r[   rg   rN   s    r   clearprogbar.clear   sY    ||4>>TWW9M9MyD4::<$789<<DN r   c                    [        U R                  5      (       d  g U R                  R                  SS5      (       a  U R                  5         OU R	                  S5        U R                  5         g )Nr   s   clear-complete   
)r   r   r   r   rf   rg   rN   s    r   completeprogbar.complete   sK    477##77k+<==JJLNN5!r   c                L    U R                   R                  R                  5         g r   )r   r   flushrN   s    r   rg   progbar._flusherr   s    r   c                N    U R                   R                  R                  U5        g r   )r   r   write)r6   msgs     r   rf   progbar._writeerr   s    3r   c           
         U R                   R                  5       n[        [        U R                   R	                  SSUS95      U5      $ )Nr   s   width)default)r   rn   minr_   rB   )r6   tws     r   r[   progbar.width   s9    WW 3tww~~k8R~HI2NNr   c                    Uc  gU R                   U   nX5-
  nX%-
  nUS:  a)  X@R                  U   -
  nXU-
  -  U-  S-   n	[        U	5      $ g)Nr   r   r   )r>   r=   r-   )
r6   ri   rj   rm   rh   
initialpostargetdeltaelapsedr'   s
             r   rc   progbar.estimate   sd    =^^E*
# 19OOE22G5.1e;a?G((r   c                |    U R                   U   nX%-
  nX@R                  U   -
  nUS:  a  [        S5      Xg-  U4-  $ g)Nr   s	   %d %s/secr   )r>   r=   r   )r6   ri   rj   rl   rh   r   r   r   s           r   rd   progbar.speed   sI    ^^E*
 ..Q;\?eot%<<<r   c                    U R                   b6  U R                  U R                   :X  d  XR                  -
  U R                  :  a  gg)z?Check if conditions are met to print - e.g. changedelay elapsedTF)rE   rD   rC   rI   )r6   rh   s     r   
_oktoprintprogbar._oktoprint   s9     NN"}}.^^#t'7'77r   c                    U R                   nUS::  a  gX R                  U   -
  nXT:  aB  X0R                  U   -
  nXd-  U-  nUS:  a  gX7-
  U R                  U'   X$-
  U R                  U'   gg)ay  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?)rM   r=   r>   )r6   ri   rh   rj   intervalr   r   newdeltas           r   _calibrateestimateprogbar._calibrateestimate   s     ((q=....//E''1H #~$'NDNN5!%(^DOOE" r   Nc                T   Uc  U R                  U5        g [        R                  " 5       nU R                     XR                  ;  a7  X`R                  U'   X R
                  U'   U R                  R                  U5        X#XE4U R                  U'   Xl        U R                  XU5        X`R                  -
  U R                  :  aM  U R                  (       a<  U R                  U5      (       a&  X`l
        U R                  " Xa/U R                  U   Q76   S S S 5        g ! , (       d  f       g = fr   )
closetopicr@   r4   r;   r=   r>   appendr<   rD   r   rC   rG   r   r|   )r6   ri   rj   rk   rl   rm   rh   s          r   progressprogbar.progress  s    ;OOE"iikKK'),&(+u%""5)&)&<DU#!M##E4^^#t||3??3''%(NIIcC4+;+;E+BC s   CD
D'c                t   U R                      U R                  R                  US 5        U R                  R                  US 5        U R                  R                  US 5        U R
                  (       aD  U R
                  S   U:X  a1  U R                  (       a   U R                  5         U R                  5         XR
                  ;   aZ  U R
                  S U R
                  R                  U5       U l        U R
                  (       a  U R
                  S   U l
        OS U l
        S S S 5        g ! , (       d  f       g = f)Nr   )r4   r=   popr>   r<   r;   r?   r   r5   indexrE   )r6   ri   s     r   r   progbar.closetopic  s    OOt,NNud+  -{{t{{1~64<<! #"kk*DDKK,=,=e,DE ;;%)[[_DN%)DN% s   DD))
D7)r4   rI   rD   rM   rF   rC   rE   rK   r?   rG   r=   r>   r;   r<   r   )r   r   N)__name__
__module____qualname____firstlineno__r7   r5   r|   r   r   rg   rf   r[   rc   rd   r   r   r   r   __static_attributes__r   r   r   r/   r/   D   sL    

*KZ O
44D$*r   r/   )
__future__r   r2   r@   i18nr    r   r   r   r-   r/   r   r   r   <module>r      s2    #    +&+Rd* d*r   