��Pc@s�dZddlZddlZddlmZdZd�Zd�Zd�Zde fd ��YZ
dad
�Z
d�ZdS(sKshow progress bars for some actions
This extension uses the progress information logged by hg commands
to draw progress bars that are as informative as possible. Some progress
bars only offer indeterminate information, while others have a definite
end point.
The following settings are available::
[progress]
delay = 3 # number of seconds (float) before showing the progress bar
changedelay = 1 # changedelay: minimum delay before showing a new topic.
# If set to less than 3 * refresh, that value will
# be used instead.
refresh = 0.1 # time in seconds between refreshes of the progress bar
format = topic bar number estimate # format of the progress bar
width = <none> # if set, the maximum width of the progress information
# (that is, min(width, term width) will be used)
clear-complete = True # clear the progress bar after it's done
disable = False # if true, don't show a progress bar
assume-tty = False # if true, ALWAYS show a progress bar, unless
# disable is given
Valid entries for the format field are topic, bar, number, unit,
estimate, speed, and item. item defaults to the last 20 characters of
the item, but this can be changed by adding either ``-<num>`` which
would take the last num characters, or ``+<num>`` for the first num
characters.
i�N(t_tinternalcGsdjd�|D��S(Nt css|]}|r|VqdS(N((t.0ts((s2/sys/lib/python2.7/site-packages/hgext/progress.pys <genexpr>-s(tjoin(targs((s2/sys/lib/python2.7/site-packages/hgext/progress.pyt spacejoin,scCs"|jtj�p!|jdd�S(Ntprogresss
assume-tty(t_isattytsyststderrt
configbool(tui((s2/sys/lib/python2.7/site-packages/hgext/progress.pytshouldprint/scCsN|dkrtd�|S|d}|dkrR||d8}td�||fS|d7}|d}||d8}|dkr�td�||fS|d7}|d}||d8}|dkr�td �||fS|d7}|d
}||d
8}|dkrtd�||fS|d7}|d
}||d
8}td�||fS(Ni<s%02dss%dm%02dsiis%dh%02dmiis%dd%02dhii7s%dw%02ddi4s%dy%02dw(R(tsecondstminutesthourstdaystweekstyears((s2/sys/lib/python2.7/site-packages/hgext/progress.pytfmtremaining2s2
tprogbarcBsbeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z ddd
d �ZRS(cCs||_|j�dS(N(R
t
resetstate(tselfR
((s2/sys/lib/python2.7/site-packages/hgext/progress.pyt__init__Xs cCs�g|_i|_i|_i|_t|_tj�t|jj dddd��|_
d|_d|_
t|jj dddd��|_td|jt|jj dddd ���|_|jjdd
dddd
dg�|_dS(NRtdelaytdefaultiitrefreshg����tchangedelayitformatttopictbartnumbertestimate(ttopicsttopicstatest
starttimest startvalstFalsetprintedttimetfloatR
tconfigt lastprinttNonet lasttopict
indetcountRtmaxRt
configlisttorder(R((s2/sys/lib/python2.7/site-packages/hgext/progress.pyR\s"
cCs�t|j�sdS|j�}t|_d}t} d}
x�|jD]�}d}|dkre|}n�|dkr�|r�dttt|���d||f}q�|�}n:|j d�ri|rid}
d|kr�|jd�d �}n4d
|kr$d}
t
|jd
�d �}nd}|
dkrD||}n
|| }||t|�d
7}n�|dkr�d}t} ni|dkr�|r�|}nN|dkr�|j||||�}n'|dkr�j
||||�}n| st||�}qDt|
|�}
qDW| r[d}|rA|t|�d 7}n|
r^|t|
�d 7}n||d}|r�||kr�|||}d|d }|dkr�|d7}n|d
||7}nf|d8}|jd 7_|jd|}||8}d
t
|t|��dd
t
t|��}djd|df�}t|||
�}nt||
�}tjjd|| �||_tjj�dS(NtRR!s% ss/%stitemtendt-it+t beginningiRR tunitR"tspeediit=t>is<=>t[t]s
(RR
twidthtTrueR(R'R2tstrtlent
startswithtinttsplitR"R:RR/tabsRR
RtwriteR.tflush(RtnowRtposR4R9ttotalt termwidththeadtneedprogressttailt indicatortaddtslicetwidtusedt progwidthtamtR tprogtout((s2/sys/lib/python2.7/site-packages/hgext/progress.pytshowos�
cCs5t|j�sdStjjdd|j��dS(Ns
%s
R(RR
R
RRGR?(R((s2/sys/lib/python2.7/site-packages/hgext/progress.pytclear�scCs\t|j�sdS|jjdddt�r;|j�ntjjd�tjj�dS(NRsclear-completeRs
( RR
RR@RZR
RRGRH(R((s2/sys/lib/python2.7/site-packages/hgext/progress.pytcomplete�s
cCs7|jj�}tt|jjddd|��|�S(NRR?R(R
RLtminRDR+(Rttw((s2/sys/lib/python2.7/site-packages/hgext/progress.pyR?�sc
Cs�|dkrdS|j|}||}||}|dkr�||j|}|t|jjdddd��kr�||||d} t| �SndS(NR3iRR"Rii(R-R&R%R*R
R+R(
RRRJRKRIt
initialposttargettdeltatelapsedR((s2/sys/lib/python2.7/site-packages/hgext/progress.pyR"�s
!
cCsk|j|}||}||j|}|t|jjdddd��krgtd�|||fSdS(NRR"Ris %d %s/secR3(R&R%R*R
R+R(RRRJR9RIR^R`Ra((s2/sys/lib/python2.7/site-packages/hgext/progress.pyR:�s
!R3cCs�tj�}|dkr�|jj|d�|jj|d�|jj|d�|jr�|jd|kr�|jr�|j�|j �n||jkr�|j|jj
|� |_q�n�||jkr�|j|<||j|<|jj|�n||||f|j|<||j|j
kr�|jr�|jdksf||jksf||j|jkr�||_|j|||j|�q�ndS(Ni(R)R-R%tpopR&R$R#R(R[RtindextappendR,RR.RRY(RRRJR4R9RKRI((s2/sys/lib/python2.7/site-packages/hgext/progress.pyR�s*%
"
N(t__name__t
__module__RRRYRZR[R?R"R:R-R(((s2/sys/lib/python2.7/site-packages/hgext/progress.pyRWs K cs�d|jf�fd��Y�|jdd�r5dSt|�r�|jr�|jr��|_�js�tdkr�t|�ant�_q�ndS(Nt
progressuicsDeZdZd�Z�fd�Z�fd�Z�fd�ZRS(cSs|jp|jS(N(t debugflagtquiet(R((s2/sys/lib/python2.7/site-packages/hgext/progress.pyt_quietscs;|j�s"|jj||�nt�|�j||�S(N(Rjt_progbarRtsuper(RRtopts(Rg(s2/sys/lib/python2.7/site-packages/hgext/progress.pyR
scsB|j�r)|jjr)|jj�nt�|�j||�S(N(RjRkR(RZRlRG(RRRm(Rg(s2/sys/lib/python2.7/site-packages/hgext/progress.pyRGscsB|j�r)|jjr)|jj�nt�|�j||�S(N(RjRkR(RZRlt write_err(RRRm(Rg(s2/sys/lib/python2.7/site-packages/hgext/progress.pyRnsN(ReRfR-RkRjRRGRn((Rg(s2/sys/lib/python2.7/site-packages/hgext/progress.pyRgs
Rtdisable( t __class__RRRhRiRkt
_singletonR-R(R
((Rgs2/sys/lib/python2.7/site-packages/hgext/progress.pytuisetups cCst|j�dS(N(RrR
(R
trepo((s2/sys/lib/python2.7/site-packages/hgext/progress.pyt reposetup&s(t__doc__R
R)tmercurial.i18nRt
testedwithRRRtobjectRR-RqRrRt(((s2/sys/lib/python2.7/site-packages/hgext/progress.pyt<module>$s %� $
|