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/lib/python3.10/dist-packages/pip/_vendor/rich/__pycache__/live.cpython-310.pyc
o

��hL;�@s^UddlmZddlZddlmZmZmZddlmZddl	m
Z
mZmZm
Z
mZmZmZmZmZddlmZddlmZmZmZmZmZdd	lmZdd
lmZddlm Z ddl!m"Z"m#Z#dd
l$m%Z%ddl&m'Z'ersddl(m)Z)Gdd�de�Z*Gdd�de e�Z+e,dk�r�ddl-Z-ddl.Z.ddl/m0Z0ddl	m1Z1mZm2Z2ddl3m4Z4ddlmZddl5m+Z+ddl6m7Z7ddl8m9Z9ddl:m;Z;ddl<m=Z=e�Ze;ddd d!�Z:e=d"d#d$�Z<e<�>d%d&d'�d(e7d)�d*e<d+d,d-d.�d/e:e9d0�g	Z?e0e?�Z@gd1�ZAe+ed2���ZBiZCd3eDd4<eEd5�D]�ZFeAeFeGeA�ZHeAD]ZIeIeHk�r!�qe.�Jd6�e-�Kdd7�dk�r6e�LeMe@��d8e-�-�d9deCeHeIf<eGeC�eGeA�dk�rZeC�NeOeC�P��d�e=d:d;�Z<e<�Qd<�e<�Qd=�e<�Qd>�eC�R�D]\\ZSZTZUe<�>eSeTe'eUd?�eUd@k�r�dAndBdC���qreB�Ve4�We<���q�qWd�dS1�s�wYdSdS)D�)�annotationsN)�Event�RLock�Thread)�
TracebackType)	�IO�
TYPE_CHECKING�Any�Callable�List�Optional�TextIO�Type�cast�)�get_console)�Console�ConsoleRenderable�Group�RenderableType�
RenderHook)�Control)�	FileProxy)�JupyterMixin)�
LiveRender�VerticalOverflowMethod)�Screen)�Text)�Selfcs6eZdZdZd�fdd	�Zdd
d�Zddd
�Z�ZS)�_RefreshThreadz3A thread that calls refresh() at regular intervals.�live�'Live'�refresh_per_second�float�return�Nonecs&||_||_t�|_t�jdd�dS)NT)�daemon)r r"r�done�super�__init__)�selfr r"��	__class__��@/usr/local/lib/python3.10/dist-packages/pip/_vendor/rich/live.pyr)sz_RefreshThread.__init__cCs|j��dS�N)r'�set�r*r-r-r.�stopsz_RefreshThread.stopcCsh|j�d|j�s2|jj�|j��s|j��Wd�n1s"wY|j�d|j�r	dSdS)Nr)r'�waitr"r �_lock�is_set�refreshr1r-r-r.�run"s


���z_RefreshThread.run)r r!r"r#r$r%�r$r%)�__name__�
__module__�__qualname__�__doc__r)r2r7�
__classcell__r-r-r+r.rs

rc@s�eZdZdZ	d@dddddddddd�	dAdd�ZedBdd��ZdCdd �ZdDdEd"d#�ZdFd$d%�Z	dGd'd(�Z
dHd/d0�ZdFd1d2�ZdFd3d4�Z
edCd5d6��Zdd7�dId8d9�ZdFd:d;�ZdJd>d?�ZdS)K�Livea�Renders an auto-updating live display of any given renderable.

    Args:
        renderable (RenderableType, optional): The renderable to live display. Defaults to displaying nothing.
        console (Console, optional): Optional Console instance. Defaults to an internal Console instance writing to stdout.
        screen (bool, optional): Enable alternate screen mode. Defaults to False.
        auto_refresh (bool, optional): Enable auto refresh. If disabled, you will need to call `refresh()` or `update()` with refresh flag. Defaults to True
        refresh_per_second (float, optional): Number of times per second to refresh the live display. Defaults to 4.
        transient (bool, optional): Clear the renderable on exit (has no effect when screen=True). Defaults to False.
        redirect_stdout (bool, optional): Enable redirection of stdout, so ``print`` may be used. Defaults to True.
        redirect_stderr (bool, optional): Enable redirection of stderr. Defaults to True.
        vertical_overflow (VerticalOverflowMethod, optional): How to handle renderable when it is too tall for the console. Defaults to "ellipsis".
        get_renderable (Callable[[], RenderableType], optional): Optional callable to get renderable. Defaults to None.
    NFT��ellipsis)	�console�screen�auto_refreshr"�	transient�redirect_stdout�redirect_stderr�vertical_overflow�get_renderable�
renderable�Optional[RenderableType]rA�Optional[Console]rB�boolrCr"r#rDrErFrGrrH�&Optional[Callable[[], RenderableType]]r$r%c	Cs�|dksJd��||_|dur|nt�|_||_d|_||_||_d|_d|_t	�|_
d|_||_d|_
|r8dn||_d|_||_|	|_|
|_t|��|	d�|_d|_dS)Nrzrefresh_per_second must be > 0FT)rG)�_renderablerrA�_screen�_alt_screen�_redirect_stdout�_redirect_stderr�_restore_stdout�_restore_stderrrr4�
ipy_widgetrC�_startedrD�_refresh_threadr"rG�_get_renderablerrH�_live_render�_nested)r*rIrArBrCr"rDrErFrGrHr-r-r.r)9s,�
z
Live.__init__cCs|jS)z'Check if live display has been started.)rVr1r-r-r.�
is_startedbszLive.is_startedrcCs |jdur	|��n|j}|pdS)N�)rXrN)r*rIr-r-r.rHgs

��zLive.get_renderabler6c	Cs�|j�p|jr	Wd�dSd|_|j�|�s%d|_	Wd�dS|jr/|j�d�|_|j�d�|�	�|j�
|�|rTz|��WntyS|�
��w|jrkt||j�|_|j��Wd�dSWd�dS1svwYdS)z|Start live rendering display.

        Args:
            refresh (bool, optional): Also refresh. Defaults to False.
        NTF)r4rVrA�set_liverZrO�set_alt_screenrP�show_cursor�_enable_redirect_io�push_render_hookr6�	Exceptionr2rCrr"rW�start)r*r6r-r-r.rcos6��	��"�z
Live.startcCs�|j��|js	Wd�dSd|_|j��|jr.|js%|j�|j�	Wd�dS|jr>|j	dur>|j	�
�d|_	d|_|j��zM|jsQ|jj
sQ|��W|��|j��|jsg|jjrg|j��|j�d�|jrv|j�d�|jr�|js�|j�|j���|jdur�|jr�|j��nC|��|j��|js�|jjr�|j��|j�d�|jr�|j�d�|jr�|js�|j�|j���|jdur�|jr�|j��wwwWd�n1s�wYWd�dSWd�dS1s�wYdS)zStop live rendering display.NF�visibleT)r4rVrA�
clear_liverZrD�printrIrCrWr2rGrP�
is_jupyterr6�_disable_redirect_io�pop_render_hook�is_terminal�liner_r^�controlrY�restore_cursorrU�closer1r-r-r.r2�sb�
�

�


��

����"�z	Live.stoprcCs|j|jdud�|S)N�r6)rcrNr1r-r-r.�	__enter__�szLive.__enter__�exc_type�Optional[Type[BaseException]]�exc_val�Optional[BaseException]�exc_tb�Optional[TracebackType]cCs|��dSr/)r2)r*rqrsrur-r-r.�__exit__�sz
Live.__exit__cCs�|jjs|jjr:|jr ttjt�s tj|_t	dt|jtj��t_|j
r<ttjt�s>tj|_t	dt|jtj��t_dSdSdSdS)z&Enable redirecting of stdout / stderr.r
N)
rArjrgrQ�
isinstance�sys�stdoutrrSrrR�stderrrTr1r-r-r.r`�s�zLive._enable_redirect_iocCs<|jr
td|j�t_d|_|jrtd|j�t_d|_dSdS)z'Disable redirecting of stdout / stderr.r
N)rSrryrzrTr{r1r-r-r.rh�s
�zLive._disable_redirect_iocCsF|jj}|r||durtdd�|D��}n|��}|jr!t|�S|S)zwGet the renderable that is being displayed

        Returns:
            RenderableType: Displayed renderable.
        rcSsg|]}|���qSr-)rH)�.0r r-r-r.�
<listcomp>�sz#Live.renderable.<locals>.<listcomp>)rA�_live_stackrrHrPr)r*�
live_stackrIr-r-r.rI�s
zLive.renderablerocCsdt|t�r|j�|�}|j�||_|r |��Wd�dSWd�dS1s+wYdS)z�Update the renderable that is being displayed

        Args:
            renderable (RenderableType): New renderable to use.
            refresh (bool, optional): Refresh the display. Defaults to False.
        N)rx�strrA�
render_strr4rNr6)r*rIr6r-r-r.�update�s

�"�zLive.updatec	Cs�|j��|j�|j�|jr#|jjr|jjd��	Wd�dS|jjryzddl	m
}ddlm}Wnt
yGddl}|�d�Yn�w|jdurV|�|_||j�|j�|jjdd�|j�|jj�Wd�n1sswYnK|jjr�|jjs�|j�|j�t��Wd�n1s�wYn@|js�|js�|j�|j�t��Wd�n81s�wYWd�dSWd�dSWd�dSWd�dSWd�dSWd�dSWd�dS1s�wYdS)z&Update the display of the Live Render.rN)�display)�Outputz(install "ipywidgets" for Jupyter supportT)r3)r4rY�set_renderablerIrZrAr~r6rg�IPython.displayr��
ipywidgetsr��ImportError�warnings�warnrU�clear_outputrfrj�is_dumb_terminalrrVrD)r*r�r�r�r-r-r.r6�s`��

�������������"�zLive.refresh�renderables�List[ConsoleRenderable]cCs�|j|j_|jjr3|j�|jrt��n|j��}|g|�|j�}Wd�|S1s,wY|S|j	s@|j
s@g|�|j�}|S)z;Process renderables to restore cursor and display progress.N)rGrYrA�is_interactiver4rPr�home�position_cursorrVrD)r*r��resetr-r-r.�process_renderabless$

��
�����zLive.process_renderablesr/)rIrJrArKrBrLrCrLr"r#rDrLrErLrFrLrGrrHrMr$r%)r$rL)r$r)F)r6rLr$r%r8)r$r)rqrrrsrtrurvr$r%)rIrr6rLr$r%)r�r�r$r�)r9r:r;r<r)�propertyr[rHrcr2rprwr`rhrIr�r6r�r-r-r-r.r>)s8��)

"
"



	
"r>�__main__)�cycle)�Dictr�Tuple)�Align)r)r>)�Panel)�Rule)�Syntax)�Tablea~def loop_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
    """Iterate and generate a tuple with a flag for last value."""
    iter_values = iter(values)
    try:
        previous_value = next(iter_values)
    except StopIteration:
        return
    for value in iter_values:
        yield False, previous_value
        previous_value = value
    yield True, previous_value�pythonT)�line_numbers�foo�bar�baz�1�2�3z�You can make the terminal shorter and taller to see the live table hideText may be printed while the progress bars are rendering.z(In fact, [i]any[/i] renderable will workzSuch as [magenta]tables[/]...zPretty printed structures...�examplezPretty printed)�type�textz	Syntax...zGive it a try!)�SGD�MYR�EUR�USD�AUD�JPY�CNH�HKD�CAD�INR�DKK�GBP�RUB�NZD�MXN�IDR�TWD�THB�VND)rAzDict[Tuple[str, str], float]�exchange_rate_dict�dg�������?�
��i@zExchange Rates)�titlezSource CurrencyzDestination Currencyz
Exchange Ratez.4fg�?�red�green)�style)X�
__future__rry�	threadingrrr�typesr�typingrrr	r
rrr
rrr\rrArrrrrrlr�
file_proxyr�jupyterr�live_renderrrrBrr�r�typing_extensionsrrr>r9�random�time�	itertoolsr�r�r��alignr�r �panelr��ruler��syntaxr��tabler��add_row�progress_renderables�examples�	exchanges�
live_tabler��__annotations__�range�index�len�select_exchange�exchange�sleep�randint�log�next�pop�list�keys�
add_column�items�source�dest�
exchange_rater��centerr-r-r-r.�<module>s�,
��


�



��	��$��