HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/click/__pycache__/_termui_impl.cpython-37.pyc
B

�P�e^�@s@dZddlZddlZddlZddlZddlZddlZddlmZ	ddl
mZddlm
Z
ddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZe�d�Zejdkr�dZdZndZdZGdd�dej e�Z!d5ej"e#ej$e%dd�dd�Z&ej"e#e#ej$e%dd�dd�Z'ej"e#e#ej$e%dd�dd �Z(ej)ej"e#ej$e%dd!�d"d#�Z*Gd$d%�d%�Z+d6e#e%e%e,d'�d(d)�Z-e#ej$e.d*�d+d,�Z/e�rddl0Z0ej1ej2e,d-�d.d/��Z3e%e#d0�d1d2�Z4n:ddl5Z5ddl6Z6ej1ej2e,d-�d3d/��Z3e%e#d0�d4d2�Z4dS)7z�
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.
�N)�gettext)�StringIO)�
TracebackType�)�_default_text_stdout)�CYGWIN)�get_best_encoding)�isatty)�open_stream)�
strip_ansi)�term_len)�WIN)�ClickException)�echo�V�nt�
�
z
[?25lz[?25h
c@s�eZdZd6ejejeejeeeeee	eje	e	ejej
ejegejefejeejejeje	eedd
�dd�Zd
d�dd�Z
ejejeejeejedd�dd�Zejed�dd�Zed�dd�Zdd�dd�Zeed�dd��Zeed�dd��Zeed�dd��Zed�d d!�Zed�d"d#�Zed�d$d%�Zed�d&d'�Zed�d(d)�Zdd�d*d+�Z edd,�d-d.�Z!d7eejedd/�d0d1�Z"dd�d2d3�Z#ejed�d4d5�Z$dS)8�ProgressBarN�#� �%(bar)s�  TFr�)�iterable�length�	fill_char�
empty_char�bar_template�info_sep�show_eta�show_percent�show_pos�item_show_func�label�file�color�update_min_steps�width�returncCs@||_||_||_||_||_||_|	|_|
|_|p6d|_|dkrVt	�}|dkrVt
�}||_|
|_||_
d|_||_|dk|_|dkr�ddlm}||d�}|dkr�d}|dkr�|dkr�td��t�tjtt|��}t|�|_||_d|_g|_||t��|_|_d|_ d|_!d|_"d|_#d|_$t%|j�|_&d|_'dS)N�r)�length_hint���ziterable or length is requiredF)(rrrrr r!r"r#r$rrr%r&r'�_completed_intervalsr(�	autowidth�operatorr+�	TypeError�t�cast�Iterabler�range�iterr�pos�avg�time�start�last_eta�	eta_known�finished�	max_width�entered�current_itemr	�	is_hidden�
_last_line)�selfrrrrrrr r!r"r#r$r%r&r'r(r+�rC�C/opt/alt/python37/lib/python3.7/site-packages/click/_termui_impl.py�__init__&sT



zProgressBar.__init__zProgressBar[V])r)cCsd|_|��|S)NT)r>�render_progress)rBrCrCrD�	__enter__kszProgressBar.__enter__)�exc_type�	exc_value�tbr)cCs|��dS)N)�
render_finish)rBrHrIrJrCrCrD�__exit__pszProgressBar.__exit__cCs|jstd��|��|��S)Nz.You need to use progress bars in a with block.)r>�RuntimeErrorrF�	generator)rBrCrCrD�__iter__xszProgressBar.__iter__cCstt|��S)N)�nextr5)rBrCrCrD�__next__~szProgressBar.__next__cCs$|jr
dS|j�t�|j��dS)N)r@r%�write�	AFTER_BAR�flush)rBrCrCrDrK�szProgressBar.render_finishcCs(|jr
dSt|jt|jpd�p dd�S)Ng�?r)r<�minr6�floatr)rBrCrCrD�pct�szProgressBar.pctcCs"|js
dSt|j�tt|j��S)Ng)r7�sumrV�len)rBrCrCrD�time_per_iteration�szProgressBar.time_per_iterationcCs&|jdk	r"|js"|j|j|jSdS)Ng)rr<rZr6)rBrCrCrD�eta�szProgressBar.etacCs�|jr�t|j�}|d}|d}|d}|d}|d}|d}|dkrh|�d|d�d|d�d|d��S|d�d|d�d|d��SdS)N�<�rzd Z02�:r*)r;�intr[)rBr1�seconds�minutes�hoursrCrCrD�
format_eta�s
 zProgressBar.format_etacCs(t|j�}|jdk	r$|d|j��7}|S)N�/)�strr6r)rBr6rCrCrD�
format_pos�s

zProgressBar.format_poscCst|jd�d�d�dd�S)N�dz 4�%r)r_rW)rBrCrCrD�
format_pct�szProgressBar.format_pctcCs�|jdk	r:t|j|j�}|j|}||j|j|7}nf|jrN|j|j}nRt|j|jp\d�}|jdkr�|j|tt	�
|j|j�dd|j�<d�|�}|S)Nrrg@g�?r*)
rr_rWr(rrr<�listrZ�math�cosr6�join)rBZ
bar_length�bar�charsrCrCrD�
format_bar�s


*
zProgressBar.format_barcCs�|j}g}|jdk	r$|dkr$|j}|jr8|�|���|rJ|�|���|jrj|jrj|jsj|�|�	��|j
dk	r�|�
|j�}|dk	r�|�|�|j|j
|��|j�|�d���S)N)r$rn�info)r!rr"�appendrfrir r;r<rcr#r?rr$rprrm�rstrip)rBr!Z	info_bitsZ	item_inforCrCrD�format_progress_line�s$

z ProgressBar.format_progress_linec	CsBddl}|jr:|j|jkr6|j|_t|j|j|jd�dSg}|jr�|j}d|_t	|�
��}td|��j
|�}||kr�|�t�|�d|j�||_||_|j}|jdk	r�|j}|�t�|�
�}t	|�}|jdks�|j|kr�||_|�|�|�d||�d�|�}||jk�r>||_t||j|jdd�|j��dS)Nr)r%r&rr*F)r%r&�nl)�shutilr@rAr$rr%r&r.r(rrt�max�get_terminal_size�columnsrr�
BEFORE_BARr=rmrT)	rBrv�bufZ	old_widthZclutter_lengthZ	new_widthZclear_width�line�line_lenrCrCrDrF�s@




zProgressBar.render_progress)�n_stepsr)cCs�|j|7_|jdk	r*|j|jkr*d|_t��|jdkr@dSt��|_|jrft��|j|j}nt��|j}|jdd�|g|_|jdk	|_dS)NTg�?i����)r6rr<r8r:r9r7r;)rBr~�steprCrCrD�	make_steps
zProgressBar.make_step)r~r?r)cCsF|dk	r||_|j|7_|j|jkrB|�|j�|��d|_dS)aUpdate the progress bar by advancing a specified number of
        steps, and optionally set the ``current_item`` for this new
        position.

        :param n_steps: Number of steps to advance.
        :param current_item: Optional item to set as ``current_item``
            for the updated position.

        .. versionchanged:: 8.0
            Added the ``current_item`` optional parameter.

        .. versionchanged:: 8.0
            Only render when the number of steps meets the
            ``update_min_steps`` threshold.
        Nr)r?r-r'r�rF)rBr~r?rCrCrD�update'szProgressBar.updatecCsd|_d|_d|_dS)NFT)r;r?r<)rBrCrCrD�finishAszProgressBar.finishccsn|jstd��|jr"|jEdHnHx6|jD],}||_|jdkrF|��|V|�d�q*W|��|��dS)z�Return a generator which yields the items added to the bar
        during construction, and updates the progress bar *after* the
        yielded block returns.
        z.You need to use progress bars in a with block.Nrr)	r>rMr@r5r?r-rFr�r�)rB�rvrCrCrDrNFs
zProgressBar.generator)NrrrrTNFNNNNrr)N)%�__name__�
__module__�__qualname__r1�Optionalr3rr_re�bool�Callable�TextIOrErG�Type�
BaseExceptionrrL�IteratorrOrQrK�propertyrVrWrZr[rcrfrirprtrFr�r�r�rNrCrCrCrDr%sNj4-r)rNr&r)c	Cs0t�}|dkrt�}ttj�r&t|�s2t|||�Stj�dd�pBd�	�}|rht
r\t|||�St|||�Stj�d�dkr�t|||�St
s�tj
�d�r�t|d|�Sttd�r�t�d	�d
kr�t|d|�Sd
dl}|��\}}t�|�z<ttd��rt�d|�d
��d
k�rt|d|�St|||�St�|�XdS)z2Decide what method to use for paging through text.NZPAGERr*�TERM)�dumb�emacsZos2zmore <�systemz(less) 2>/dev/nullr�lesszmore "�"�more)rrr	�sys�stdin�
_nullpager�os�environ�get�stripr
�_tempfilepager�
_pipepager�platform�
startswith�hasattrr��tempfile�mkstemp�close�unlink)rNr&�stdoutZ	pager_cmdr��fd�filenamerCrCrD�pagerhs0
$r�)rN�cmdr&r)c	Cs4ddl}ttj�}|�dd�d��}|dkr�|ddkr�tj�dd��d	�|dd����}|spd
|d<d}nd|ks�d
|kr�d}|j|d|j	|d�}t
�t
j|j
�}t|�}	y0x*|D]"}
|s�t|
�}
|�|
�|	d��q�WWnttfk
r�Yn
X|��x,y|��Wntk
�r&YnXP�qWdS)zqPage through text by feeding it to another program.  Invoking a
    pager through this might support colors.
    rNrdrr,r��LESSr*rz-RT�r�R)�shellr��env�replace)�
subprocess�dictr�r��rsplit�splitr�rm�Popen�PIPEr1r2�BinaryIOr�rrrR�encode�OSError�KeyboardInterruptr��wait)rNr�r&r�r�Z
cmd_detailZ
less_flags�cr��encoding�textrCrCrDr��s6
$

r�c		Cs�ddl}|��\}}d�|�}|s*t|�}ttj�}t|d�d�}|�|�	|��WdQRXzt
�|�d|�d��Wdt
�|�t
�
|�XdS)z<Page through text by invoking a program on a temporary file.rNr*�wbz "r�)r�r�rmrrr�r�r
rRr�r�r�r�r�)	rNr�r&r�r�r�r�r��frCrCrDr��s


r�)�streamrNr&r)cCs(x"|D]}|st|�}|�|�qWdS)z>Simply print unformatted text.  This is the ultimate fallback.N)rrR)r�rNr&r�rCrCrDr��s
r�c@sxeZdZdejeejejeefeedd�dd�Zed�dd	�Z	edd
�dd�Z
ejejejejd
�dd�ZdS)�EditorNT�.txt)�editorr��require_save�	extensionr)cCs||_||_||_||_dS)N)r�r�r�r�)rBr�r�r�r�rCrCrDrE�szEditor.__init__)r)cCsf|jdk	r|jSx dD]}tj�|�}|r|SqWtr:dSx&dD]}t�d|�d��dkr@|Sq@WdS)N)ZVISUALZEDITORZnotepad)zsensible-editor�vimZnanozwhich z >/dev/null 2>&1r�vi)r�r�r�r�r
r�)rB�keyr�r�rCrCrD�
get_editor�s


zEditor.get_editor)r�r)c
Cs�ddl}|��}d}|jr0tj��}|�|j�yD|j|�d|�d�|dd�}|��}|dkrrt	t
d�j|d���Wn:tk
r�}zt	t
d�j||d	��|�Wdd}~XYnXdS)
Nrz "r�T)r�r�z{editor}: Editing failed)r�z{editor}: Editing failed: {e})r��e)
r�r�r�r�r��copyr�r�r�r�_�formatr�)rBr�r�r�r�r��	exit_coder�rCrCrD�	edit_file�s 
zEditor.edit_file)r�r)c		Cs>ddl}|sd}nLt|ttf�r&|}n8|r<|�d�s<|d7}trT|�dd��d�}n
|�d�}|jd|j	d�\}}z�t
�|d	��}|�|�WdQRXt
�
|t
j�|�t
j�|�d
f�t
j�|�}|�|�|jr�t
j�|�|kr�dSt|d��}|��}WdQRXt|ttf��r|S|�d��dd�St
�|�XdS)Nr�rz
z	utf-8-sigzutf-8zeditor-)�prefix�suffixr���rb)r��
isinstance�bytes�	bytearray�endswithr
r�r�r�r�r��fdopenrR�utime�path�getatime�getmtimer�r��open�read�decoder�)	rBr�r��datar��namer��	timestampr�rCrCrD�edit
s2
$
zEditor.edit)NNTr�)
r�r�r�r1r�re�Mappingr�rEr�r��AnyStrr�rCrCrCrDr��s r�F)�urlr��locater)c
Cs�ddl}ttd�dd�}tjdkr|dg}|r6|�d�|rD|�d�|�||��td	d
�}z|j||d���S|��Xn�t	r�|r�||�
dd
��}d|�d�}n*|�
dd
�}|r�dnd
}d|�d|�d�}t�|�St
�r>|�rtj�||��
dd
��}d|�d�}n,|�
dd
�}|�rdnd
}d|�d|�d�}t�|�SyF|�r^tj�||���pZd}n||�}|�d|g�}|�r�|��SdStk
�r�|�d��r�|�s�|�s�ddl}	|	�|�dSdSXdS)Nr)r�r)cSs*ddlm}|�d�r&||dd��}|S)Nr)�unquotezfile://�)�urllib.parser�r�)r�r�rCrCrD�
_unquote_file@s
zopen_url.<locals>._unquote_file�darwinr�z-Wz-Rz	/dev/null�w)�stderrr�r*zexplorer /select,"z/WAITzstart z "" "z
cygstart "z-wz	cygstart z "�.zxdg-open)zhttp://zhttps://r)r�rer�r�rrr�r�r�r�r
r�r�r�rr��dirnamer�r��
webbrowser)
r�r�r�r�r��args�nullZwait_strr�r�rCrCrD�open_url=sV






r�)�chr)cCs6|dkrt��|dkr ts t��|dkr2tr2t��dS)N���)r�r
�EOFError)r�rCrCrD�_translate_ch_to_excysr�)r)ccs
dVdS)Nr,rCrCrCrCrD�raw_terminal�sr�)rr)cCs6|rtj}ntj}|�}|dkr*||�7}t|�|S)N)��à)�msvcrtZgetwche�getwchr�)r�funcr�rCrCrD�getchar�s 
rccs�ttj�std�}|��}ntj��}d}yPt�|�}zt�|�|VWdt�	|tj
|�tj��|dk	rv|�
�XWntjk
r�YnXdS)Nz/dev/tty)r	r�r�r��fileno�termios�	tcgetattr�ttyZsetraw�	tcsetattr�	TCSADRAINr�rTr��error)r�r�Zold_settingsrCrCrDr��s 






c	CsRt��B}t�|d��ttj�d�}|r<ttj�r<tj�	|�t
|�|SQRXdS)N� r�)r�r�r�r�rr�r�r	r�rRr�)rr�r�rCrCrDr�s)N)FF)7�__doc__�
contextlibrkr�r�r8�typingr1rr��ior�typesr�_compatrrrr	r
rrr
�
exceptionsr�utilsr�TypeVarrr�rzrS�Genericrr3rer�r�r�r�r�r�r�r�r_r�r�r�r�contextmanagerr�r�rrrrCrCrCrD�<module>s^

E # 3a<
0