HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/alt/python38/lib/python3.8/site-packages/click/__pycache__/_termui_impl.cpython-38.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�int�long)�objZget_hintZhint�r�C/opt/alt/python38/lib/python3.8/site-packages/click/_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�iterabler3r%r&r'r(r)r*r+r,r-r.r/r0rrr�__init__4sD



zProgressBar.__init__cCsd|_|��|S)NT)r=�render_progress�rArrr�	__enter__\szProgressBar.__enter__cCs|��dS�N)�
render_finish)rA�exc_type�	exc_value�tbrrr�__exit__aszProgressBar.__exit__cCs|jstd��|��|S)Nz.You need to use progress bars in a with block.)r=�RuntimeErrorrDrErrr�__iter__dszProgressBar.__iter__cCs$|jr
dS|j�t�|j��dSrG)r?r.�write�	AFTER_BAR�flushrErrrrHjszProgressBar.render_finishcCs$|jr
dSt|jt|j�pdd�S)N��?r)r;�minr5�floatr3rErrr�pctpszProgressBar.pctcCs"|js
dSt|j�tt|j��S�Ng)r6�sumrTrrErrr�time_per_iterationvszProgressBar.time_per_iterationcCs"|jr|js|j|j|jSdSrV)r4r;rXr3r5rErrr�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$)r:rY)rA�t�seconds�minutes�hours�daysrrr�
format_eta�s
zProgressBar.format_etacCs"t|j�}|jr|d|j7}|S)Nz/%s)�strr5r4r3)rAr5rrr�
format_pos�s
zProgressBar.format_poscCsdt|jd�dd�S)Nz% 4d%%�dr)rrUrErrr�
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*r4rrUr0r%r&r+r;�listrX�math�cosr5�join�appendrcrer)r:rar,r>r'r-r(�rstrip)rAr*Z	info_bitsZ
bar_lengthrfZ	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
k�r(||_
t||j|j|d�|j��dS)	Nr)�get_terminal_sizeFTrr r$)r.r/�nl)Ztermuiror?r-r1r0r	rn�maxrl�
BEFORE_BARr<rkr@rr.r/rQ)
rArorp�bufZ	old_widthZclutter_lengthZ	new_widthZclear_width�lineZline_lenrrrrD�s>




zProgressBar.render_progresscCsz|j|7_|jr&|j|jkr&d|_t��|jdkr<dSt��|_|jdd�|jt��|jg|_|j|_dS)NTrRi����)	r5r4r3r;r7r9r6r8r:�rAZn_stepsrrr�	make_step�s
(zProgressBar.make_stepcCs|�|�|��dSrG)rvrDrurrr�update�s
zProgressBar.updatecCsd|_d|_d|_dS)NrT)r:r>r;rErrr�finish�szProgressBar.finishcCsb|jrt|j�Szt|j�}||_Wn*tk
rN|��|��t��YnX|�d�|SdS)Nr)r?�nextr2r>�
StopIterationrxrDrw)rA�rvrrrry�s



zProgressBar.next)
Nrr r!r"TNFNNNNr#)�__name__�
__module__�__qualname__rCrFrLrNrH�propertyrUrXrYrarcrernrDrvrwrxryr�__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
k�rt|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�hasattrr��tempfile�mkstemp�close�unlink)�textr/�stdoutZ	pager_cmdr��fd�filenamerrr�pagers,
 r�c		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�X�qq�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�dictr�r��rsplit�splitr�rkr�Popen�PIPEr
r�rO�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��mktemprr
r�r�rrOr�r�r�r�)r�r�r/r�r�r��frrrr�]s
r�cCs|st|�}|�|�dS)z>Simply print unformatted text.  This is the ultimate fallback.N)rrO)�streamr�r/rrrr�lsr�c@s.eZdZddd�Zdd�Zdd	�Zd
d�ZdS)
�EditorNT�.txtcCs||_||_||_||_dSrG)�editorr��require_save�	extension)rAr�r�r�r�rrrrCuszEditor.__init__cCsb|jdk	r|jSdD]}tj�|�}|r|Sqtr:dSdD]}t�d|�dkr>|Sq>dS)N)ZVISUALZEDITORZnotepad)ZvimZnanozwhich %s >/dev/null 2>&1r�vi)r�r�r�r�rr�)rA�keyr{r�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�r�r��copyrwr�r�r
�OSError)rAr�r�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�r�r�rr�r��fdopenrOr��path�getmtimer�r��open�read�decode)	rAr�r�r��namer�r��	timestampr{rrr�edit�s4


�

zEditor.edit)NNTr�)r|r}r~rCr�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��unquote)�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�rlr�r�r�r�rr�r�r�r��dirnamer�r��
webbrowser)	r�r�Zlocater�r��args�nullr�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r{�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	TCSADRAINr�rQr��ttyZsetrawr�r�rO�errorr�r�r
)rr�r�Zold_settingsr�rrrr�
s(





)N)FF)$�__doc__r�r�r7ri�_compatrrrrrrr	r
r�utilsr�
exceptionsr
r�rrrPr�objectrr�r�r�r�r�r�r�r�r�r�r�rrrr�<module>s8,
a
/M
3