Current File : //usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyo
�
>�,Xc@s9ddlZddlZddlZddlZddlZyddlZWnek
r_nXddlmZm	Z	dej
kre	edddddd	ejj�d
ddd�ed
ddddd	ejj�d
ddd�edddddd
ddej��gZn~edddddd	ed
ddej�ed
ddddd	ed
ddej�edddddd
ddej�gZdefd��YZdefd��YZdej
krdejfd��YZdejfd��YZdejfd��YZndefd��YZdS(i����N(tArgtMutuallyExclusiveArgListtprogressbars
--progresstdestt
show_progresstactiont
store_truetdefaulttroute_tothelps2show progress (the default when run interactively)s
--no-progresststore_falsesMdo not
                show progress (the default when run non-interactively)s--porcelaintshow_porcelaintFileTransferProgressBarMixincBs#eZdZeZddd�ZRS(s\
    A command mixin that provides download/upload progress bar support,
    along with options to enable or disable them.  If progress bars are
    disabled at the command line get_progressbar will return None.  If the
    progressbar module is unavailable get_progressbar will return None *and*
    no progress-related options will be added.
    cCs�|jjd�r%td|d|�Sdtjkr�|jjdt�r�g}|dk	rn||dg7}n|dk	r0|tj�dtj	dd�dt
�dtj�dg7}d	tt�kr�|j
tj��n|j
tj��tjd
|d|p
tjdd�}tjtjt�|S|tdd�dt
�dtj�dtjd
d�g7}td
|d|p�tjdd�}tjtjt�|Snt�SdS(NRtlabeltmaxvalRRt tmarkert=tAdaptiveETAtwidgetstpollg�������?tformatsTime: %s(targstgett_MachineReadableCountertsystmodulestFalsetNoneRt
PercentagetBart	_FileSizetFileTransferSpeedtdirtappendRtETAtProgressBartmaxinttsignaltsiginterrupttSIGWINCHt_IndeterminateBouncingBartTimert_IndeterminateProgressBart_EveryMethodObject(tselfR
RRtpbar((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pytget_progressbarAs<					N(t__name__t
__module__t__doc__t_PROGRESS_BAR_COMMAND_ARGStARGSRR/(((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR6sR,cBseZd�Zd�ZRS(cOsdS(N((R-Rtkwargs((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyt
do_nothingrscCstj|d�S(NR6(tobjectt__getattribute__(R-tname((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR8us(R0R1R6R8(((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR,qs	R+cBseZd�ZRS(cCs |j|_tjj|�dS(N(tcurrvalRRR$tfinish(R-((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR;{s(R0R1R;(((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR+zsR)cBs eZdZd�Zd�ZRS(s�
        A BouncingBar that moves exactly one space each time it updates,
        rather than one space per unit.  This is mainly used for downloads with
        unknown lengths.
        cOs#tjj|||�d|_dS(Ni(RtBouncingBart__init__t'_IndeterminateBouncingBar__update_count(R-RR5((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR=�scCsI|j}|j|_tjj|||�}||_|jd7_|S(Ni(R:R>RR<tupdate(R-R.twidthtorig_currvaltretval((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR?�s		(R0R1R2R=R?(((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR)s	RcBseZdZd�ZRS(s	 kMGTPEZYcCsa|jdkrd}d}n,ttj|jd��}|jd|}dj||j|�S(Niig�@s
{0:6.2f} {1}B(R:tinttmathtlogRtPREFIXES(R-R.tpowert	scaledval((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR?�s	(R0R1RFR?(((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR�sRcBs;eZddd�Zd�Zd�Zd�Zd�ZRS(cCs�||_d|_d|_d|_t|_|rHdj|�|_n	d|_|jr~dj|jt	|j��|_ndj|j�|_dS(Nis{0} ts
{0}{{0}}/{1}
s	{0}{{0}}
(
RR:Rt_last_displayed_valt
_last_updatedRt	_finishedRt!_MachineReadableCounter__templateRC(R-RR
((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR=�s							cCs|j�dS(N(t_display(R-((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pytstart�scCsd||_tj�|j}|dkr`|j|jkr`|jr`|j�tj�|_ndS(Ng�������?(R:ttimeRKRJRLRN(R-tvaltdelta((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR?�s	

cCs/|jr|j|_n|j�t|_dS(N(RR:RNtTrueRL(R-((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR;�s	
cCs5tjj|jjt|j���|j|_dS(N(RtstderrtwriteRMRRCR:RJ(R-((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyRN�s%N(R0R1RR=ROR?R;RN(((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyR�s
			(targparseRDR&RRPRtImportErrortrequestbuilderRRRtstdouttisattyRtSUPPRESSR3RR7RR,R$R+R<R)tWidgetRR(((sB/usr/lib/python2.7/site-packages/requestbuilder/mixins/progress.pyt<module>s@
;