HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/rich/__pycache__/live.cpython-310.pyc
o

;j�;�@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__��=/opt/saltstack/salt/lib/python3.10/site-packages/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�Zellipsis)	�console�screen�auto_refreshr"�	transient�redirect_stdout�redirect_stderr�vertical_overflow�get_renderable�
renderable�Optional[RenderableType]r@�Optional[Console]rA�boolrBr"r#rCrDrErFrrG�&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)rF)�_renderablerr@�_screen�_alt_screen�_redirect_stdout�_redirect_stderr�_restore_stdout�_restore_stderrrr4�
ipy_widgetrB�_startedrC�_refresh_threadr"rF�_get_renderablerrG�_live_render�_nested)r*rHr@rArBr"rCrDrErFrGr-r-r.r)9s,�
z
Live.__init__cCs|jS)z'Check if live display has been started.)rUr1r-r-r.�
is_startedbszLive.is_startedrcCs |jdur	|��n|j}|pdS)N�)rWrM)r*rHr-r-r.rGgs

��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)r4rUr@Zset_liverYrN�set_alt_screenrO�show_cursor�_enable_redirect_ioZpush_render_hookr6�	Exceptionr2rBrr"rV�start)r*r6r-r-r.r`os6��	��"�z
Live.startcCs|j��|js	Wd�dSd|_|j��|jr.|js%|j�|j�	Wd�dS|jr>|j	dur>|j	�
�d|_	d|_|j��zQ|jsQ|jj
sQ|��W|��|j��|jsk|jjrk|jjrk|j��|j�d�|jrz|j�d�|jr�|js�|j�|j���|jdur�|jr�|j��nG|��|j��|js�|jjr�|jjr�|j��|j�d�|jr�|j�d�|jr�|js�|j�|j���|jdur�|jr�|j��wwwWd�n1s�wYWd�dSWd�dS1�swYdS)zStop live rendering display.NFZvisibleT)r4rUr@Z
clear_liverYrC�printrHrBrVr2rFrO�
is_jupyterr6�_disable_redirect_ioZpop_render_hook�is_terminalrXZlast_render_height�liner]r\�controlZrestore_cursorrT�closer1r-r-r.r2�sv�
�

�
���

��
���
����$�z	Live.stoprcCs|j|jdud�|S)N�r6)r`rMr1r-r-r.�	__enter__�szLive.__enter__�exc_type�Optional[Type[BaseException]]�exc_val�Optional[BaseException]�exc_tb�Optional[TracebackType]cCs|��dSr/)r2)r*rjrlrnr-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)
r@rdrbrP�
isinstance�sys�stdoutrrRrrQ�stderrrSr1r-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)rRrrrrsrSrtr1r-r-r.rc�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-)rG)�.0r r-r-r.�
<listcomp>�sz#Live.renderable.<locals>.<listcomp>)r@�_live_stackrrGrOr)r*Z
live_stackrHr-r-r.rH�s
zLive.renderablerhcCsdt|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)rq�strr@Z
render_strr4rMr6)r*rHr6r-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)r4rXZset_renderablerHrYr@rwr6rbZIPython.displayrzZ
ipywidgetsr{�ImportError�warnings�warnrTZclear_outputrardZis_dumb_terminalrrUrC)r*rzr{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)rFrXr@Zis_interactiver4rOr�homeZposition_cursorrUrC)r*r�resetr-r-r.�process_renderabless$

��
�����zLive.process_renderablesr/)rHrIr@rJrArKrBrKr"r#rCrKrDrKrErKrFrrGrLr$r%)r$rK)r$r)F)r6rKr$r%r8)r$r)rjrkrlrmrnror$r%)rHrr6rKr$r%)rr�r$r�)r9r:r;r<r)�propertyrZrGr`r2rirpr^rcrHryr6r�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)Zline_numbersZfooZbarZbaz�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...ZexamplezPretty printed)�type�textz	Syntax...zGive it a try!)ZSGDZMYRZEURZUSDZAUDZJPYZCNHZHKDZCADZINRZDKKZGBPZRUBZNZDZMXNZIDRZTWDZTHBZVND)r@zDict[Tuple[str, str], float]�exchange_rate_dict�dg�������?�
��i@zExchange Rates)�titlezSource CurrencyzDestination Currencyz
Exchange Ratez.4fg�?ZredZgreen)�style)X�
__future__rrr�	threadingrrr�typesr�typingrrr	r
rrr
rrr[rr@rrrrrrfrZ
file_proxyrZjupyterrZlive_renderrrrArr�rZtyping_extensionsrrr>r9�random�time�	itertoolsr�r�r�Zalignr�r Zpanelr�Zruler�Zsyntaxr��tabler�Zadd_rowZprogress_renderablesZexamplesZ	exchangesZ
live_tabler��__annotations__�range�index�lenZselect_exchangeZexchange�sleep�randint�log�next�pop�list�keysZ
add_column�items�source�destZ
exchange_ratery�centerr-r-r-r.�<module>s�,
��


�



��	��$��