Viewing File: /opt/alt/python38/lib/python3.8/site-packages/click/__pycache__/_termui_impl.cpython-38.opt-1.pyc

U

½šWù?ã@sdZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZddlmZddlmZejdkr|dZd	Znd
ZdZdd
„ZGdd„deƒZd"dd„Zdd„Zdd„Zdd„ZGdd„deƒZd#dd„Zdd„Zeröddl Z dd „Z!nddl"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_typeÚPY2ÚisattyÚopen_streamÚ
strip_ansiÚterm_lenÚget_best_encodingÚWIN)Úecho)ÚClickExceptionÚntú
Ú
z
[?25lz[?25h
cCsšz
t|ƒWStk
r”zt|ƒj}Wntk
r@YYdSXz||ƒ}Wntk
rfYYdSX|tks†t|ttfƒr†|dkrŒYdS|YSXdS)z%Returns the length hint of an object.Nr)	ÚlenÚ	TypeErrorÚtypeÚ__length_hint__ÚAttributeErrorÚNotImplementedÚ
isinstanceÚintZlong)ÚobjZget_hintZhint©rú/_termui_impl.pyÚ_length_hints$


ÿþrc
@s¬eZdZd+d	d
„Zdd„Zd
d„Zdd„Zdd„Zedd„ƒZ	edd„ƒZ
edd„ƒZdd„Zdd„Z
dd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zes¨eZ[dS),ÚProgressBarNú#ú ú%(bar)sú  TFécCs||_||_||_||_||_||_|	|_|
|_|p6d|_|dkrHt	ƒ}||_
|
|_||_|dk|_
|dkrtt|ƒ}|dkr”|dkrŒtdƒ‚t|ƒ}t|ƒ|_||_|dk	|_d|_g|_t ¡|_|_d|_d|_d|_d|_d|_t|j
ƒ|_d|_ dS)NÚrziterable or length is requiredF)!Ú	fill_charÚ
empty_charÚbar_templateÚinfo_sepÚshow_etaÚshow_percentÚshow_posÚitem_show_funcÚlabelrÚfileÚcolorÚwidthÚ	autowidthrrrÚiterÚlengthÚlength_knownÚposÚavgÚtimeÚstartÚlast_etaÚ	eta_knownÚfinishedÚ	max_widthÚenteredÚcurrent_itemrÚ	is_hiddenÚ
_last_line)ÚselfÚiterabler2r$r%r&r'r(r)r*r+r,r-r.r/rrrÚ__init__4sD



zProgressBar.__init__cCsd|_| ¡|S)NT)r<Úrender_progress©r@rrrÚ	__enter__\szProgressBar.__enter__cCs| ¡dS©N)Ú
render_finish)r@Úexc_typeÚ	exc_valueÚtbrrrÚ__exit__aszProgressBar.__exit__cCs|jstdƒ‚| ¡|S)Nz.You need to use progress bars in a with block.)r<ÚRuntimeErrorrCrDrrrÚ__iter__dszProgressBar.__iter__cCs$|jr
dS|j t¡|j ¡dSrF)r>r-ÚwriteÚ	AFTER_BARÚflushrDrrrrGjszProgressBar.render_finishcCs$|jr
dSt|jt|jƒpddƒS)Nçð?r)r:Úminr4Úfloatr2rDrrrÚpctpszProgressBar.pctcCs"|js
dSt|jƒtt|jƒƒS©Ng)r5ÚsumrSrrDrrrÚtime_per_iterationvszProgressBar.time_per_iterationcCs"|jr|js|j|j|jSdSrU)r3r:rWr2r4rDrrrÚeta|szProgressBar.etacCsn|jrj|jd}|d}|d}|d}|d}|d}|d}|dkr\|}d||||fSd|||fSdS)Nré<érz%dd %02d:%02d:%02dz%02d:%02d:%02dr#)r9rX)r@ÚtZsecondsZminutesZhoursZdaysrrrÚ
format_eta‚s
zProgressBar.format_etacCs"t|jƒ}|jr|d|j7}|S)Nz/%s)Ústrr4r3r2)r@r4rrrÚ
format_pos’s
zProgressBar.format_poscCsdt|jdƒdd…S)Nz% 4d%%édr)rrTrDrrrÚ
format_pct˜szProgressBar.format_pctcCsH|j}g}|jrPt|j|jƒ}|j|}||j|j|7}|dkr¶|j}nf|jrd|j|j}nRt	|j|jprdƒ}|j
dkr¬|j|tt |j
|j
¡dd|jƒ<d |¡}|jrÊ| | ¡¡|rÜ| | ¡¡|jrü|jrü|jsü| | ¡¡|jdk	r(| |j¡}|dk	r(| |¡|j|j||j |¡dœ ¡S)Nrrg@gà?r#)r,ÚbarÚinfo)r)r3rrTr/r$r%r*r:ÚlistrWÚmathZcosr4ÚjoinÚappendr^r`r(r9r\r+r=r&r,r'Úrstrip)r@r)Z	info_bitsZ
bar_lengthraZ	item_inforrrÚformat_progress_line›sH


ÿÿÿÿ



ýz ProgressBar.format_progress_linec
Cs,ddlm}d}|jr$|jg}d}nÊg}|jrˆ|j}d|_t| ¡ƒ}td|ƒd|ƒ}||kr‚| 	t
¡| 	d|j¡||_||_|j}|jdk	rž|j}| 	t
¡| ¡}t|ƒ}	|jdksÌ|j|	krÒ|	|_| 	|¡| 	d||	¡d |¡}||j
kr(||_
t||j|j|d|j ¡dS)	Nr)Úget_terminal_sizeFTrrr#)r-r.Únl)Ztermuirir>r,r0r/r	rhÚmaxrfÚ
BEFORE_BARr;rer?rr-r.rP)
r@rirjZbufZ	old_widthZclutter_lengthZ	new_widthZclear_widthÚlineZline_lenrrrrCÀs>




zProgressBar.render_progresscCsz|j|7_|jr&|j|jkr&d|_t ¡|jdkr<dSt ¡|_|jdd…|jt ¡|jg|_|j|_dS)NTrQiúÿÿÿ)	r4r3r2r:r6r8r5r7r9©r@Zn_stepsrrrÚ	make_stepés
(zProgressBar.make_stepcCs| |¡| ¡dSrF)rorCrnrrrÚupdateös
zProgressBar.updatecCsd|_d|_d|_dS)NrT)r9r=r:rDrrrÚfinishúszProgressBar.finishcCsb|jrt|jƒSzt|jƒ}||_Wn*tk
rN| ¡| ¡tƒ‚YnX| d¡|SdS)Nr)r>Únextr1r=Ú
StopIterationrqrCrp)r@Úrvrrrrrÿs



zProgressBar.next)
Nrrr r!TNFNNNNr")Ú__name__Ú
__module__Ú__qualname__rBrErKrMrGÚpropertyrTrWrXr\r^r`rhrCrorprqrrrÚ__next__rrrrr2sDý
(


%)
rc	Cs&tƒ}ttjƒrt|ƒs$t|||ƒStj dd¡p4d ¡}|rZt	rNt
|||ƒSt|||ƒStj d¡dkrvt|||ƒSt	s†tj 
d¡r’t
|d|ƒSttdƒr¶t d	¡d
kr¶t|d|ƒSd
dl}| ¡\}}t |¡z@ttdƒrt d|¡d
krt|d
|ƒW¢St|||ƒW¢St |¡XdS)z2Decide what method to use for paging through text.ZPAGERNr#ZTERM)ZdumbZemacsZos2zmore <Úsystemz(less) 2>/dev/nullrÚlessz	more "%s"Zmore)rrÚsysÚstdinÚ
_nullpagerÚosÚenvironÚgetÚstriprÚ_tempfilepagerÚ
_pipepagerÚplatformÚ
startswithÚhasattrrzÚtempfileÚmkstempÚcloseÚunlink)Útextr.ÚstdoutZ	pager_cmdrˆÚfdÚfilenamerrrÚpagers,
 rc		Csddl}ttjƒ}| dd¡d ¡}|dkr€|ddkr€tj dd¡d	 |dd…¡}|sld
|d<d}nd|ks|d
|kr€d}|sŒt|ƒ}|j	|d|j
|d}t|jƒ}z"|j 
| |d¡¡|j ¡Wnttfk
räYnXz| ¡Wntk
rYqæXqqædS)zqPage through text by feeding it to another program.  Invoking a
    pager through this might support colors.
    rNú/réÿÿÿÿr{ÚLESSr#rú-RTÚrÚR)Úshellr}ÚenvÚreplace)Ú
subprocessÚdictrr€ÚrsplitÚsplitrrerÚPopenÚPIPEr
r}rNÚencoderŠÚIOErrorÚKeyboardInterruptÚwait)	rŒÚcmdr.ršr˜Z
cmd_detailZ
less_flagsÚcÚencodingrrrr„.s4
 ÿ
r„c	Cs|ddl}| ¡}|st|ƒ}ttjƒ}t|dƒd}| | |¡¡W5QRXzt	 |d|d¡W5t	 
|¡XdS)z<Page through text by invoking a program on a temporary file.rNÚwbz "ú")rˆZmktemprr
r|rrrNr rr‹rz)rŒr¤r.rˆrr¦Úfrrrrƒ]s
rƒcCs|st|ƒ}| |¡dS)z>Simply print unformatted text.  This is the ultimate fallback.N)rrN)ÚstreamrŒr.rrrr~lsr~c@s.eZdZddd„Zdd„Zdd	„Zd
d„ZdS)
ÚEditorNTú.txtcCs||_||_||_||_dSrF)Úeditorr˜Úrequire_saveÚ	extension)r@r­r˜r®r¯rrrrBuszEditor.__init__cCsb|jdk	r|jSdD]}tj |¡}|r|Sqtr:dSdD]}t d|¡dkr>|Sq>dS)N)ZVISUALZEDITORZnotepad)ZvimZnanozwhich %s >/dev/null 2>&1rZvi)r­rr€rrrz)r@Úkeyrtr­rrrÚ
get_editor|s


zEditor.get_editorc
Cs¢ddl}| ¡}|jr.tj ¡}| |j¡nd}z8|jd||f|dd}| ¡}|dkrht	d|ƒ‚Wn2t
k
rœ}zt	d||fƒ‚W5d}~XYnXdS)Nrz%s "%s"T)r˜r—z%s: Editing failed!z%s: Editing failed: %s)ršr±r˜rr€Úcopyrpržr£r
ÚOSError)r@rršr­r€r¥Z	exit_codeÚerrrÚ	edit_fileŠs 
ÿzEditor.edit_filec		Csúddl}|pd}|r&| d¡s&|d7}|jd|jd\}}z®trRd}| dd¡}nd}| |¡}t 	|d	¡}| 
|¡| ¡tj 
|¡}| |¡|jr²tj 
|¡|kr²W¢<dSt|d
ƒ}z| ¡}W5| ¡X| d¡ dd¡W¢St |¡XdS)Nrr#rzeditor-)ÚprefixÚsuffixz	utf-8-sigz
zutf-8r§Úrb)rˆÚendswithr‰r¯rr‹rr™r ÚfdopenrNrŠÚpathÚgetmtimerµr®ÚopenÚreadÚdecode)	r@rŒrˆrŽÚnamer¦r©Z	timestamprtrrrÚedit›s4


ÿ

zEditor.edit)NNTr¬)rurvrwrBr±rµrÁrrrrr«ssÿ
r«Fc	CsXddl}dd„}tjdkrxdg}|r.| d¡|r<| d¡| ||ƒ¡tdd	ƒ}z|j||d
 ¡W¢S| ¡XnLtrÄ|rž||ƒ}d|| 	dd
¡ƒ}nd|r¨dpªd
| 	dd
¡f}t
 |¡SzF|ràt
j 
||ƒ¡pÜd}n||ƒ}| d|g¡}|r| ¡WSWdStk
rR| d¡rL|sL|sLddl}| |¡YdSYdSXdS)NrcSsJzddl}Wntk
r(ddl}YnX| d¡rF| |dd…¡}|S)Nrzfile://é)ÚurllibÚImportErrorr†Zunquote)ÚurlrÃrrrÚ
_unquote_fileÃs
zopen_url.<locals>._unquote_fileÚdarwinr½z-Wr”z	/dev/nullÚw)Ústderrzexplorer /select,"%s"r¨r#zstart %s "" "%s"z/WAITÚ.zxdg-open)zhttp://zhttps://r)ršr|r…rfr½rŠržr£rr™rrzr»Údirnamer³r†Ú
webbrowser)	rÅr£ZlocateršrÆÚargsZnullr¥rÌrrrÚopen_urlÀsL	




ÿ

ÿ


rÎcCs |dkrtƒ‚|dkrtƒ‚dS)Núú)r¢ÚEOFError)ÚchrrrÚ_translate_ch_to_excósrÓcCsVt ¡}|rt |¡t|ƒtrRttjddƒ}|dk	rF| |d¡}n| dd¡}|S)Nr¦r™Úcp1252)	ÚmsvcrtZgetchZputcharrÓrÚgetattrr|r}r¿)rrtÚencrrrÚgetcharýs
rØcCsÌttjƒstdƒ}| ¡}ntj ¡}d}zpt |¡}z4t 
|¡t |d¡}|rhttj	ƒrhtj	 |¡W5t |tj|¡tj	 
¡|dk	r–| ¡XWntjk
r°YnXt|ƒ| ttjƒd¡S)Nz/dev/ttyé r™)rr|r}r½ÚfilenoÚtermiosZ	tcgetattrZ	tcsetattrZ	TCSADRAINrrPrŠÚttyZsetrawrr¾rNÚerrorrÓr¿r
)rr©rŽZold_settingsrÒrrrrØ
s(





)N)FF)$Ú__doc__rr|r6rdZ_compatrrrrrrr	r
rZutilsrÚ
exceptionsr
rÀrlrOrÚobjectrrr„rƒr~r«rÎrÓrÕrØrÜrÛrrrrÚ<module>s8,
a
/M
3


Back to Directory File Manager