HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/click/__pycache__/_termui_impl.cpython-310.pyc
o

�hXh�@s�dZddlmZddlmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZ
ddlmZddlmZddlmZddlmZddlmZd	d
lmZd	dlmZd	dlmZd	d
lmZd	dlmZd	dlmZd	dlmZd	dlm Z d	dl!m"Z"d	dl#m$Z$e
�%d�Z&ej'dkr�dZ(dZ)ndZ(dZ)Gdd�de
j*e&�Z+dEdFd"d#�Z,dGd'd(�Z-dGd)d*�Z.dHd-d.�Z/Gd/d0�d0�Z0dIdJd7d8�Z1dKd:d;�Z2e
j3d<kr�ddl4Z4ej5dLd>d?��Z6dMdAdB�Z7dSddl8Z8ddl9Z9ej5dLdCd?��Z6dMdDdB�Z7dS)Nz�
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.
�)�annotationsN)�gettext)�StringIO)�Path)�which)�
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�eZdZ																dXdYd%d&�ZdZd(d)�Zd[d0d1�Zd\d3d4�Zd]d6d7�Zd^d8d9�Ze	d_d;d<��Z
e	d_d=d>��Ze	d_d?d@��Zd`dAdB�Z
d`dCdD�Zd`dEdF�Zd`dGdH�Zd`dIdJ�Zd^dKdL�ZdadNdO�ZdbdcdRdS�Zd^dTdU�Zd\dVdW�ZdS)d�ProgressBarN�#� �%(bar)s�  FTr��iterable�cabc.Iterable[V] | None�length�
int | None�	fill_char�str�
empty_char�bar_template�info_sep�hidden�bool�show_eta�show_percent�bool | None�show_pos�item_show_func�)t.Callable[[V | None], str | None] | None�label�
str | None�file�t.TextIO | None�color�update_min_steps�int�width�return�NonecCs>||_||_||_||_||_||_|	|_|
|_||_|pd|_	|
dur.t
�}
|
dur.t�}
|
|_||_
||_d|_||_|dk|_|durWddlm}||d�}|dkrWd}|durk|durctd��t�dt|��}t|�|_||_d|_g|_||t��|_|_d|_d|_ d|_!d|_"d|_#t$|j�|_%d|_&dS)N�r)�length_hint���ziterable or length is requiredzcabc.Iterable[V]F)'r!r#r$r%r&r(r)r+r,r.r	rr0r2r3�_completed_intervalsr5�	autowidth�operatorr9�	TypeError�t�cast�range�iterr�pos�avg�time�start�last_eta�	eta_known�finished�	max_width�entered�current_itemr�_is_atty�
_last_line)�selfrrr!r#r$r%r&r(r)r+r,r.r0r2r3r5r9�rP�E/usr/local/CyberCP/lib/python3.10/site-packages/click/_termui_impl.py�__init__-sV




zProgressBar.__init__�ProgressBar[V]cCsd|_|��|S)NT)rK�render_progress�rOrPrPrQ�	__enter__tszProgressBar.__enter__�exc_type�type[BaseException] | None�	exc_value�BaseException | None�tb�TracebackType | NonecCs|��dS�N)�
render_finish)rOrWrYr[rPrPrQ�__exit__y�zProgressBar.__exit__�cabc.Iterator[V]cCs|jstd��|��|��S)N�.You need to use progress bars in a with block.)rK�RuntimeErrorrT�	generatorrUrPrPrQ�__iter__�szProgressBar.__iter__rcCstt|��Sr])�nextrBrUrPrPrQ�__next__�r`zProgressBar.__next__cCs*|js|jsdS|j�t�|j��dSr])r&rMr0�write�	AFTER_BAR�flushrUrPrPrQr^�szProgressBar.render_finish�floatcCs(|jrdSt|jt|jp
d�pdd�S)N��?r)rI�minrCrkrrUrPrPrQ�pct�szProgressBar.pctcCs"|jsdSt|j�tt|j��S�Ng)rD�sumrk�lenrUrPrPrQ�time_per_iteration�szProgressBar.time_per_iterationcCs&|jdur|js|j|j|jSdSro)rrIrrrCrUrPrPrQ�eta�szProgressBar.etacCs�|jrAt|j�}|d}|d}|d}|d}|d}|d}|dkr4|�d|d�d|d�d|d��S|d�d|d�d|d��SdS)N�<�rzd �02�:r8)rHr4rs)rOr?�seconds�minutes�hoursrPrPrQ�
format_eta�s
 zProgressBar.format_etacCs(t|j�}|jdur|d|j��7}|S)N�/)r"rCr)rOrCrPrPrQ�
format_pos�s

zProgressBar.format_poscCst|jd�d�d�dd�S)N�dz 4�%r)r4rnrUrPrPrQ�
format_pct�szProgressBar.format_pctcCs�|jdurt|j|j�}|j|}||j|j|7}|S|jr)|j|j}|St|j|jp0d�}|jdkrM|j|tt	�
|j|j�dd|j�<d�|�}|S)Nrrg@g�?r8)
rr4rnr5r!r#rI�listrr�math�cosrC�join)rO�
bar_length�bar�charsrPrPrQ�
format_bar�s(


��
����
zProgressBar.format_barcCs�|j}g}|jdur|dur|j}|jr|�|���|r%|�|���|jr5|jr5|js5|�|�	��|j
durI|�
|j�}|durI|�|�|j|j
|��|j�|�d���S)N)r.r��info)r)rr+�appendr}r�r(rHrIr{r,rLr$r.r�r%r��rstrip)rOr)�	info_bits�	item_inforPrPrQ�format_progress_line�s,


���z ProgressBar.format_progress_linec	CsXddl}|jr	dS|js"|j|jkr |j|_t|j|j|jd�dSg}|jrY|j	}d|_	t
|���}td|�
�j|�}||krV|jdurV|�t�|�d|j�||_||_	|j	}|jdurd|j}|�t�|��}t
|�}|jdus{|j|kr~||_|�|�|�d||�d�|�}||jkr�||_t||j|jdd�|j��dSdS)Nr)r0r2rr8F)r0r2�nl)�shutilr&rMrNr.rr0r2r<r5rr��max�get_terminal_size�columnsrJr��
BEFORE_BARr�rj)	rOr��buf�	old_width�clutter_length�	new_width�clear_width�line�line_lenrPrPrQrT�sF





�zProgressBar.render_progress�n_stepscCs�|j|7_|jdur|j|jkrd|_t��|jdkr dSt��|_|jr3t��|j|j}nt��|j}|jdd�|g|_|jdu|_dS)NTrli����)rCrrIrErGrFrDrH)rOr��steprPrPrQ�	make_steps
zProgressBar.make_steprL�V | NonecCsJ|dur||_|j|7_|j|jkr#|�|j�|��d|_dSdS)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)rLr;r3r�rT)rOr�rLrPrPrQ�update1s
�zProgressBar.updatecCsd|_d|_d|_dS)NFT)rHrLrIrUrPrPrQ�finishKs
zProgressBar.finishccsn�|jstd��|js|jEdHdS|jD]}||_|jdkr$|��|V|�d�q|��|��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.
        rbNrr)	rKrcrMrBrLr;rTr�r�)rO�rvrPrPrQrdPs�

zProgressBar.generator)NrrrrFTNFNNNNrr)"rrrr r!r"r#r"r$r"r%r"r&r'r(r'r)r*r+r'r,r-r.r/r0r1r2r*r3r4r5r4r6r7)r6rS)rWrXrYrZr[r\r6r7)r6ra)r6r)r6r7)r6rk�r6r")r�r4r6r7r])r�r4rLr�r6r7)�__name__�
__module__�__qualname__rRrVr_rergr^�propertyrnrrrsr{r}r�r�r�rTr�r�r�rdrPrPrPrQr,sL�
G










.
rrd�cabc.Iterable[str]r2r*r6r7c	Cs&t�}|dur
t�}ttj�rt|�st|||�Stjtj	�
dd�dd�}|r:tr2t|||�r1dSnt
|||�r:dStj	�
d�dvrHt|||�StsPtj�d�rYt|d	g|�rYdSt
|d
g|�rbdSddl}|��\}}t�|�zt
|d	g|�r�Wt�|�dSt|||�Wt�|�St�|�w)z2Decide what method to use for paging through text.N�PAGERr8F)�posix�TERM)�dumb�emacs�os2�more�lessr)r	rr�sys�stdin�
_nullpager�shlex�split�os�environ�getr�_tempfilepager�
_pipepager�platform�
startswith�tempfile�mkstemp�close�unlink)rdr2�stdout�pager_cmd_partsr��fd�filenamerPrPrQ�pagerrs<��
�r��	cmd_parts�	list[str]r'cCs�|sdS|d}|dd�}t|�}|sdSt|���}|j}ddl}ttj�}	|durQ|dkrQtj�dd��d�	|���}
|
sGd	|	d<d
}n
d|
vsOd|
vrQd
}|j
t|�g|d
|j|	d
d
d�}|j
dusiJ�zTz|D]}|sut|�}|j
�|�qmWnty�Ynty�}
z|��|
�d}
~
wwWz|j
��Wn	ty�Ynw	z|��W	d
Sty�Ynwq�z|j
��Wn	ty�Ynw	z|��W	wty�Ynwq�)z�Page through text by feeding it to another program. Invoking a
    pager through this might support colors.

    Returns `True` if the command was found, `False` otherwise and thus another
    pager should be attempted.
    FrrNr��LESSr8r�-RT�r�R�replace)�shellr��env�errors�text)rr�resolve�name�
subprocess�dictr�r�r�r��Popenr"�PIPEr�rrh�BrokenPipeError�	Exception�	terminater��wait�KeyboardInterrupt)rdr�r2�cmd�
cmd_params�cmd_filepath�cmd_path�cmd_namer�r��
less_flags�cr��erPrPrQr��s�

�����	�
�����
���r�c
	Cs|sdS|d}t|�}|sdSt|���}ddl}ddl}|��\}}	d�|�}
|s/t|
�}
tt	j
�}t|	d�d�}|�|
�
|��Wd�n1sNwYz/z|�t|�|	g�Wn	tyhYnwWt�|�t�|	�dSWt�|�t�|	�dSt�|�t�|	�w)z�Page through text by invoking a program on a temporary file.

    Returns `True` if the command was found, `False` otherwise and thus another
    pager should be attempted.
    FrNr8�wbT)rrr�r�r�r�r�rrr�r�r
rh�encode�callr"�OSErrorr�r�r�)
rdr�r2r�r�r�r�r�r�r�r��encoding�frPrPrQr��s@	

���

�


�r��stream�t.TextIOcCs$|D]
}|s
t|�}|�|�qdS)z>Simply print unformatted text.  This is the ultimate fallback.N)rrh)r�rdr2r�rPrPrQr� s
�r�c@s^eZdZ				dd dd�Zd!dd�Zd"dd�Zejd#dd��Zejd$dd��Zd%dd�ZdS)&�EditorNT�.txt�editorr/r��cabc.Mapping[str, str] | None�require_saver'�	extensionr"r6r7cCs||_||_||_||_dSr])r�r�r�r�)rOr�r�r�r�rPrPrQrR+s
zEditor.__init__cCs\|jdur|jSdD]}tj�|�}|r|Sq
trdSdD]}t|�dur+|SqdS)N)�VISUAL�EDITOR�notepad)zsensible-editor�vim�nano�vi)r�r�r�r�rr)rO�keyr�r�rPrPrQ�
get_editor7s
��zEditor.get_editor�	filenamesr�c	
Cs�ddl}|��}d}|jrtj��}|�|j�d�dd�|D��}z"|j|�d|��|dd�}|�	�}|dkrBt
td�j|d���WdSt
y\}zt
td	�j||d
��|�d}~ww)Nrrcss�|]	}d|�d�VqdS)�"NrP)�.0r�rPrPrQ�	<genexpr>Os�z$Editor.edit_files.<locals>.<genexpr>T)�argsr�r�z{editor}: Editing failed)r�z{editor}: Editing failed: {e})r�r�)r�r�r�r�r��copyr�r�r�r�r�_�formatr�)	rOr�r�r�r��exc_filenamer��	exit_coder�rPrPrQ�
edit_filesEs2
�������zEditor.edit_filesr��bytes | bytearray�bytes | NonecC�dSr]rP�rOr�rPrPrQ�edit_�zEditor.editcCrr]rPrrPrPrQr	dr
�str | bytes | bytearray | None�str | bytes | Nonec		Cs�ddl}|durd}n&t|ttf�r|}n|r |�d�s |d7}tr,|�dd��d�}n|�d�}|jd|j	d�\}}z�t
�|d	��
}|�|�Wd�n1sRwYt
�
|t
j�|�t
j�|�d
f�t
j�|�}|�|f�|jr�t
j�|�|kr�Wt
�|�dSt|d��}|��}Wd�n1s�wYt|ttf�r�|Wt
�|�S|�d��dd�Wt
�|�St
�|�w)Nr�rz
z	utf-8-sigzutf-8zeditor-)�prefix�suffixr���rb)r��
isinstance�bytes�	bytearray�endswithrr�r�r�r�r��fdopenrh�utime�path�getatime�getmtimerr�r��open�read�decode)	rOr�r��datar�r�r��	timestampr�rPrPrQr	gs:
�$
�
��)NNTr�)
r�r/r�r�r�r'r�r"r6r7r�)r�r�r6r7)r�rr6r)r�r/r6r/)r�rr6r)	r�r�r�rRr�rr?�overloadr	rPrPrPrQr�*s�

r�F�urlr"r��locater4c	Cs�ddl}ddd�}tjdkr?dg}|r|�d	�|r|�d
�|�||��tdd�}z|j||d
���W|��S|��wtrt|rO||�}dd|��g}ndg}|rY|�d�|�d�|�|�z|�	|�WSt
ysYdSwtr�|r�||�}dtj
�|�g}ndg}|r�|�d�|�|�z|�	|�WSt
y�YdSwz"|r�tj
�||��p�d}n||�}|�d|g�}|r�|��WSWdSt
y�|�d�r�|s�|s�ddl}|�|�YdSYdSw)Nrr!r"r6cSs*ddlm}|�d�r||dd��}|S)Nr)�unquotezfile://�)�urllib.parser#r�)r!r#rPrPrQ�
_unquote_file�s
zopen_url.<locals>._unquote_file�darwinrz-Wr�z	/dev/null�w)�stderr�explorerz/select,rFz/WAITr8��cygstartz-w�.zxdg-open)zhttp://zhttps://r)r!r"r6r")r�r�r�r�rr�r�r�rr�r�r
r�r�dirnamer��
webbrowser)	r!r�r"r�r&r��nullr�r/rPrPrQ�open_url�sn







�

�

�r1�chcCs6|dkrt��|dkrtst��|dkrtrt��dS)N���)r�r�EOFError)r2rPrPrQ�_translate_ch_to_exc�sr7�win32�cabc.Iterator[int]ccs�dVdS)Nr:rPrPrPrPrQ�raw_terminal�s�
r:rcCsZ|rt�tjgtftj�}nt�tjgtftj�}|�}|dvr'||�7}t|�|S)N)��à)r?r@�Callabler"�msvcrt�getwche�getwchr7)r�funcr�rPrPrQ�getchar�s
rBccs��ttj�std�}|��}ntj��}d}zAt�|�}z$t�|�|VWt�	|tj
|�tj��|dur>|�
�WdSWdSt�	|tj
|�tj��|durW|�
�wwtjybYdSw)Nz/dev/tty)rr�r�r�fileno�termios�	tcgetattr�tty�setraw�	tcsetattr�	TCSADRAINr�rjr��error)r�r��old_settingsrPrPrQr:$s0�





��

��cCsjt��(}t�|d��ttj�d�}|rttj�rtj�	|�t
|�|Wd�S1s.wYdS)N� r�)r:r�rrrr�r�rr�rhr7)rr�r2rPrPrQrB?s$�r])rdr�r2r*r6r7)rdr�r�r�r2r*r6r')r�r�rdr�r2r*r6r7)FF)r!r"r�r'r"r'r6r4)r2r"r6r7)r6r9)rr'r6r"):�__doc__�
__future__r�collections.abc�abc�cabc�
contextlibr�r�r�r�rE�typingr?rr�ior�pathlibrr�r�typesr�_compatr	r
rrr
rrr�
exceptionsr�utilsr�TypeVarrr�r�ri�Genericrr�r�r�r�r�r1r7r�r>�contextmanagerr:rBrDrFrPrPrPrQ�<module>sf

H
*
Z
*
m
G

/