^c(ZddlZddlZddlmZddlmZdZdZdZGdd Z dS) N_)encodingc@dd|DS)N c3K|]}||V dSN).0ss 4/usr/lib/python3/dist-packages/mercurial/progress.py zspacejoin..s'**1*Q******)join)argss r spacejoinrs# 99***** * **rc|jp|d o/||jp|ddS)Nprogresss assume-tty)quietplain_isattyferr configbool)uis r shouldprintrsI1BHH[11 2  27Hr}}[-HHrc|dkrtd|zS|dz}|dkr||dzz}td||fzS|dz }|dz}||dzz}|dkrtd||fzS|dz }|dz}||dzz}|dkrtd ||fzS|dz }|d z}||d zz}|d krtd ||fzS|dz }|d z}||d zz}td||fzS)zformat a number of remaining seconds in human readable way This will properly display seconds, minutes, hours, days if needed<s%02dss%dm%02dsrs%dh%02dms%dd%02dh7s%dw%02dd4s%dy%02dwr)secondsminuteshoursdaysweeksyearss r fmtremainingr+sD||{{W$$mG||7R<~~' 222 qLG rME urzG rzz~~ 000 QJE B;D TBYE byy~~u --AID AIEEAID rzz~~ -- QJE RKE URZE [>>UEN **rcdeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d ZddZdZdS)progbarcl||_tj|_|dSr )r threadingLock _refreshlock resetstate)selfrs r__init__zprogbar.__init__Ds/%N,, rc dg|_i|_i|_i|_d|_t jt |jddz|_ d|_ d|_ d|_ t |jdd|_ td|j zt |jdd|_|jdd|_|jt dd |_dS) NFrsdelayrsrefreshs changedelaysformatsestimateinterval)topics topicstates starttimes startvalsprintedtimefloatrconfig lastprintcurtopic lasttopic indetcountrefreshmax changedelay configlistorder configwithestimateintervalr3s rr2zprogbar.resetstateIs  u GNN; 1 1( (   TW^^KDDEE   eDGNN;$O$OPP  W'' Y?? $ 2 2 ; 3! ! rcHt|jsdS|}d|_d}d} d} |jD]} d} | dkr|} nN| dkr-|r$dt t |||fz} n"d|z} n| dr|rd } d | vr)t| d d }n1d | vr+d } t| d d }nd}| d krtj ||d} ntj ||} | |tj | z dzz } nS| dkrd} d} nH| dkr|r|} n=| dkr| ||||} n| dkr|||||} | st|| }qt| | } | rd}|r|tj |d zz }| r|tj | d zz }||z dz }|r-||kr'||z|z}d|d z z}|dkr|dz }|d||z zz }nl|dz}|xjd z c_|jd|zz}||z}dt|t#|z zdzdtt#|zz}dd|df}t||| }nt|| }|dtj ||z||_|dS)NTrFstopicsnumbers%*d/%ds%dsitemsend-r+s beginning)leftsidersbarsunitsestimatesspeedrr6=>s<=>[] )rrwidthr;rGlenstr startswithintsplitrtrimcolwidthestimatespeedrrBabsr _writeerrrA _flusherr)r3nowtopicpositemunittotal termwidthhead needprogresstail indicatoraddslicewidused progwidthamtbarprogouts rshowz progbar.show^s47##  FJJLL   # ,# ,ICH$$i''&#s3u::U&CCCC#+CC%%g.. 84 89$$iood33A677CCY&&(Eiood33A677CCCF??"-cDAAACC"-c22Ch/444<<f$$# g%%$%k))mmE3s;;h&&jjT377 , s++ s++  (D 4)$//!33 4)$//!33!D(1,I Io.cAg&774KCty3//Q 1$oY7y 3y3s883444SS]]*+ 88T3-..DD$--CCD$''C ux}S)<<<=== rc|jr|jrt|jsdS|dd|zz||jr d|_dSdS)Ns %s rr)r;r?rrrarVrbrJs rclearz progbar.clears~| 4> TW9M9M  F yD4::<<$78999  < DNNN  rct|jsdS|jddr|n|d|dS)Nrsclear-complete )rrrryrarbrJs rcompletezprogbar.completesk47##  F 7  k+< = = " JJLLLL NN5 ! ! ! rcB|jjdSr )rrflushrJs rrbzprogbar._flusherrs  rcD|jj|dSr )rrwrite)r3msgs rrazprogbar._writeerrs   3rc |j}tt|jdd||S)Nrswidth)default)rriminrZr>)r3tws rrVz progbar.widthsA W   3tw~~k8R~HHII2NNNrc|dS|j|}||z }||z }|dkr-||j|z }|||z z|zdz} t| SdS)Nrrr)r:r9r+) r3rdrerhrc initialpostargetdeltaelapsedr%s rr^zprogbar.estimatesq =3^E* #j  199DOE22G&5.1e;a?G(( (src|j|}||z }||j|z }|dkrtd||z |fzSdS)Nrs %d %s/secr)r:r9r)r3rdrergrcrrrs rr_z progbar.speedsQ^E* j .. Q;;\??egot%<< <src^|j#|j|jks||jz |jkrdSdS)z?Check if conditions are met to print - e.g. changedelay elapsedNTF)rAr@r?rE)r3rcs r _oktoprintzprogbar._oktoprints: N "}..T^#t'77745rc|j}|dkrdS||j|z }||kr<||j|z }||z|z }|dkrdS||z |j|<||z |j|<dSdS)aAdjust 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 rNg?)rIr9r:)r3rdrcreintervalrrnewdeltas r_calibrateestimatezprogbar._calibrateestimates( q== F.. X  $.//Ex''1H#~~$'(NDN5 !%(8^DOE " " "  rrNc|||dStj}|j5||jvr.||j|<||j|<|j|||||f|j|<||_| |||||j z |j kr=|jr6| |r!||_ |j ||g|j|RddddS#1swxYwYdSr ) closetopicr<r1r7r9r:appendr8r@rr?rCrrw)r3rdrerfrgrhrcs rprogresszprogbar.progresssu ; OOE " " " Fikk   D DDK''),&(+u% ""5)))&)4u&rs +++ &+&+&+Rd*d*d*d*d*d*d*d*d*d*r