Viewing File: /opt/alt/python35/lib/python3.5/site-packages/click/__pycache__/_termui_impl.cpython-35.pyc



W?@sdZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZddlmZddlmZejdkrdZd	Znd
ZdZdd
ZGdddeZdddZddZddZddZGdddeZddddZddZerjddl Z dd Z!n$ddl"Z"ddl#Z#d!d Z!dS)"aY
    click._termui_impl
    ~~~~~~~~~~~~~~~~~~

    This module contains implementations for the termui module.  To keep the
    import time of Click down, some infrequently used functionality is placed
    in this module and only imported as needed.

    :copyright: (c) 2014 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
N)	_default_text_stdout
range_typePY2isattyopen_stream
strip_ansiterm_lenget_best_encodingWIN)echo)ClickExceptionnt

z
[?25lz[?25h
cCsyt|SWntk
ryt|j}Wntk
rIdSYnXy||}Wntk
rrdSYnX|tkst|ttfs|dkrdS|SYnXdS)z%Returns the length hint of an object.Nr)	len	TypeErrortype__length_hint__AttributeErrorNotImplemented
isinstanceintlong)objZget_hintZhintr/_termui_impl.py_length_hints 

	
	rc@s$eZdZdddddddddddddd	d

ZddZd
dZddZddZeddZ	eddZ
eddZddZddZ
ddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zes eZ[dS)+ProgressBarN# z%(bar)sz  TFcCsz||_||_||_||_||_||_|	|_|
|_|pQd|_|dkrlt	}||_
|
|_||_|dk|_
|dkrt|}|dkr|dkrtdt|}t||_||_|dk	|_d|_g|_tj|_|_d|_d|_d|_d|_d|_t|j
|_d|_ dS)Nrziterable or length is requiredF)!	fill_char
empty_charbar_templateinfo_sepshow_etashow_percentshow_positem_show_funclabelrfilecolorwidth	autowidthrrriterlengthlength_knownposavgtimestartlast_eta	eta_knownfinished	max_widthenteredcurrent_itemr	is_hidden
_last_line)selfiterabler1r#r$r%r&r'r(r)r*r+r,r-r.rrr__init__4sD																				zProgressBar.__init__cCsd|_|j|S)NT)r;render_progress)r?rrr	__enter__\s	
zProgressBar.__enter__cCs|jdS)N)
render_finish)r?exc_type	exc_valuetbrrr__exit__aszProgressBar.__exit__cCs#|jstd|j|S)Nz.You need to use progress bars in a with block.)r;RuntimeErrorrB)r?rrr__iter__ds	
zProgressBar.__iter__cCs.|jr
dS|jjt|jjdS)N)r=r,write	AFTER_BARflush)r?rrrrDjs	zProgressBar.render_finishcCs0|jr
dSt|jt|jp(ddS)Ng?r)r9minr3floatr1)r?rrrpctps	zProgressBar.pctcCs-|js
dSt|jtt|jS)Ng)r4sumrOr)r?rrrtime_per_iterationvs	zProgressBar.time_per_iterationcCs,|jr(|jr(|j|j|jSdS)Ng)r2r9rRr1r3)r?rrreta|szProgressBar.etacCs|jr|jd}|d}|d}|d}|d}|d}|d}|dkrx|}d||||fSd|||fSdS)Nr<rz%dd %02d:%02d:%02dz%02d:%02d:%02dr")r8rS)r?tZsecondsZminutesZhoursZdaysrrr
format_etas	






zProgressBar.format_etacCs-t|j}|jr)|d|j7}|S)Nz/%s)strr3r2r1)r?r3rrr
format_poss	zProgressBar.format_poscCsdt|jdddS)Nz% 4d%%dr)rrP)r?rrr
format_pctszProgressBar.format_pctcCs|j}g}|jrlt|j|j}|j|}||j|j|7}|dkr|j}n|jr|j|j}not	|j|jpd}|j
dkr|j|ttj|j
|j
dd|j<dj|}|jr|j|j|r,|j|j|jr[|jr[|jr[|j|j|jdk	r|j|j}|dk	r|j||jd|jd|d|jj|ijS)	Nrrg@g?r"r+barinfo)r(r2rrPr.r#r$r)r9listrRmathcosr3joinappendrYr[r'r8rWr*r<r%r+r&rstrip)r?r(Z	info_bitsZ
bar_lengthr\Z	item_inforrrformat_progress_lines8		

	5	
	z ProgressBar.format_progress_linec
Csddlm}d}|jr4|jg}d}ng}|jr|j}d|_t|j}td|d|}||kr|j	t
|j	d|j||_||_|j}|jdk	r|j}|j	t
|j}t|}	|jdks$|j|	kr-|	|_|j	||j	d||	dj|}||j
kr||_
t|d|jd	|jd
||jjdS)Nr)get_terminal_sizeFTrr r"r,r-nl)Ztermuirer=r+r/r.r	rdmaxrb
BEFORE_BARr:rar>rr,r-rM)
r?rerfbufZ	old_widthZclutter_lengthZ	new_widthZclear_widthlineZline_lenrrrrBs>					
				
	
	"zProgressBar.render_progresscCs|j|7_|jr3|j|jkr3d|_tj|jdkrPdStj|_|jdd|jtj|jg|_|j|_dS)NTg?i)	r3r2r1r9r5r7r4r6r8)r?n_stepsrrr	make_steps	2zProgressBar.make_stepcCs|j||jdS)N)rmrB)r?rlrrrupdates
zProgressBar.updatecCsd|_d|_d|_dS)NrT)r8r<r9)r?rrrfinishs		zProgressBar.finishcCsy|jrt|jSyt|j}||_Wn/tk
rc|j|jtYnX|jd|SdS)Nr)r=nextr0r<
StopIterationrorBrn)r?rvrrrrps	





zProgressBar.next)__name__
__module____qualname__rArCrHrJrDpropertyrPrRrSrWrYr[rdrBrmrnrorpr__next__rrrrr2s.			%%)
rcCst}ttjs&t|r6t|||StjjddpNdj}|rt	rst
|||St|||Stjjddkrt|||St	stjj
drt
|d|Sttd	rtjd
dkrt|d|Sddl}|j\}}tj|zLttd	rmtjd
|dkrmt|d|St|||SWdtj|XdS)z2Decide what method to use for paging through text.ZPAGERNr"ZTERMdumbemacsZos2zmore <systemz(less) 2>/dev/nullrlessz	more "%s"Zmore)rxry)rrsysstdin
_nullpagerosenvirongetstripr_tempfilepager
_pipepagerplatform
startswithhasattrrztempfilemkstempcloseunlink)textr-stdoutZ	pager_cmdrfdfilenamerrrpagers,	!$
(rc	Csrddl}ttj}|jdddj}|dkr|ddkrtjjdddj|dd}|sd	|d<d
}nd|ksd|krd
}|st|}|j	|d
d
d|j
d|}t|j}y-|jj
|j|d|jjWnttfk
rBYnXx(y|jWntk
rhYqFXPqFWdS)zqPage through text by feeding it to another program.  Invoking a
    pager through this might support colors.
    rN/rr{LESSr"r z-RTrRshellr}envreplace)
subprocessdictrrrsplitsplitrrarPopenPIPEr
r}rKencoderIOErrorKeyboardInterruptwait)	rcmdr-rrZ
cmd_detailZ
less_flagscencodingrrrr.s4,
		

rcCsddl}|j}|s*t|}ttj}t|dd}|j|j|WdQRXzt	j
|d|dWdt	j|XdS)z<Page through text by invoking a program on a temporary file.rNwbz "")rmktemprr
r|rrrKrrrzr)rrr-rrrfrrrr]srcCs#|st|}|j|dS)z>Simply print unformatted text.  This is the ultimate fallback.N)rrK)streamrr-rrrr~lsr~c@sLeZdZddddddZddZdd	Zd
dZdS)EditorNTz.txtcCs(||_||_||_||_dS)N)editorrrequire_save	extension)r?rrrrrrrrAus			zEditor.__init__cCs|jdk	r|jSx*d	D]"}tjj|}|r|SqWtrMdSx+d
D]#}tjd|dkrT|SqTWdS)NVISUALEDITORZnotepadvimnanozwhich %s >/dev/null 2>&1rZvi)rr)rr)rrrrrrz)r?keyrrrrrr
get_editor|s

zEditor.get_editorcCsddl}|j}|jrCtjj}|j|jnd}yQ|jd||fd|dd}|j}|dkrt	d|Wn;t
k
r}zt	d||fWYdd}~XnXdS)Nrz%s "%s"rrTz%s: Editing failed!z%s: Editing failed: %s)rrrrrcopyrnrrr
OSError)r?rrrrrZ	exit_codeerrr	edit_files	zEditor.edit_filec	Cs[ddl}|pd}|r8|jdr8|d7}|jddd|j\}}ztr}d}|jdd}nd	}|j|}tj|d
}|j	||j
tjj|}|j
||jrtjj||krdSt|d}z|j}Wd|j
X|jdjddSWdtj|XdS)Nrr"rprefixzeditor-suffixz	utf-8-sigz
zutf-8rrb)rendswithrrrrrrfdopenrKrpathgetmtimerropenreaddecoder)	r?rrrnamerr	timestamprrrrredits2
!


	zEditor.edit)rsrtrurArrrrrrrrss
	rFc	Csddl}dd}tjdkrdg}|rC|jd|rV|jd|j||tdd	}z|j|d
|jSWd|jXnltr|r||}d||j	dd
}n(d|rdpd
|j	dd
f}t
j|Sy`|r<t
jj
||p6d}n||}|jd|g}|rm|jSdSWnPtk
r|jdr|r|rddl}|j|dSdSYnXdS)NrcSs]yddl}Wntk
r0ddl}YnX|jdrY|j|dd}|S)Nrzfile://)urllibImportErrorrunquote)urlrrrr
_unquote_files
zopen_url.<locals>._unquote_filedarwinrz-Wz-Rz	/dev/nullwstderrzexplorer /select,"%s"rr"zstart %s "" "%s"z/WAIT.zxdg-openhttp://https://r)rr)rr|rrbrrrrrrrrzrdirnamerr
webbrowser)	rrZlocaterrargsZnullrrrrropen_urlsF		

%
!


rcCs.|dkrt|dkr*tdS)N)rEOFError)chrrr_translate_ch_to_excs	rcCs{tj}|rtj|t|trwttjdd}|dk	re|j|d}n|jdd}|S)Nrrcp1252)	msvcrtZgetchZputcharrrgetattrr|r}r)rrrencrrrgetchars

rcCsttjs*td}|j}ntjj}d}ytj|}zHtj|t	j
|d}|rttjrtjj|Wdtj
|tj|tjj|dk	r|jXWntjk
rYnXt||jttjdS)Nz/dev/tty r)rr|r}rfilenotermiosZ	tcgetattrttyZsetrawrrrrKZ	tcsetattrZ	TCSADRAINrMrerrorrrr
)rrrZold_settingsrrrrr
s(


)$__doc__rr|r5r_Z_compatrrrrrrr	r
rZutilsr
exceptionsr
rrhrLrobjectrrrrr~rrrrrrrrrrr<module>s6@	/M3

Back to Directory File Manager