HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/awscli/__pycache__/table.cpython-38.pyc
U

>�^<�@s�ddlZddlZddlZddlZddlmZddlmZddd�Zdd�Z	dd
d�Z
dd
d�Zd dd�Zdd�Z
Gdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)!�N)�is_a_tty)�sixTF)Z	autoreset�stripcCst�|�}tdd�|D��S)Ncss$|]}t�|�dkrdndVqdS)ZWFA��N)�unicodedataZeast_asian_width)�.0�char�r
�./usr/lib/python3/dist-packages/awscli/table.py�	<genexpr>'s�z"get_text_length.<locals>.<genexpr>)r�	text_type�sum)�textr
r
r�get_text_lengths
�r�PcCs~zddlm}ddlm}Wntk
r4|YSXz&t�d|tj|d��dd�\}}Wnt	k
rt|YSX|SdS)Nr)�
TIOCGWINSZ)�ioctlZhhhhzr)
ZtermiosrZfcntlr�ImportError�structZunpack�sys�stdout�	Exception)Z
default_widthrrZheight�widthr
r
r�determine_terminal_width+s 
��
r�|c
Cs�|dkrt|�}g}|d|dd}|�|d||�t|�||}|t|�|}|�d|�|�|�d�|�}	|	S)aCenter text with specified edge chars.

    You can pass in the length of the text as an arg, otherwise it is computed
    automatically for you.  This can allow you to center a string not based
    on it's literal length (useful if you're using ANSI codes).
    Nrr� �)r�append�join)
r�length�	left_edge�
right_edge�text_length�outputZ
char_start�
length_so_farZright_side_spaces�finalr
r
r�center_text;s	

r'rc
Cs�|dkrt|�}||t|�t|�}||dkr:|}nd}g}d}	|�|�|	t|�7}	|�d|�|	|7}	|�|�|	|7}	|�d||	t|��|�|�d�|�S)zLeft align text.Nrrr)rr�lenr)
rr r!r"r#Zleft_paddingZcomputed_length�paddingr$r%r
r
r�
align_leftQs,���


r*cCsvt|�D]h\}}t|j�dkr|jr|j}t�}|j|_|j|_t||jd�D]\}}|�||g�qP|||<qdS)Nrr)	�	enumerater(�rows�headers�Section�title�indent_level�zip�add_row)Zsections�i�sectionr-�new_section�header�elementr
r
r�convert_to_vertical_tableksr8c@s&eZdZd	dd�Zdd�Zdd�ZdS)
�IndentedStreamrcCs||_||_||_||_dS�N)�_stream�
_indent_level�_left_indent_char�_right_indent_char)�self�streamr0Zleft_indent_charZright_indent_charr
r
r�__init__�szIndentedStream.__init__cCsd|j�|j|j�|�d�rT|j�|dd��|j�|j|j�|j�d�n|j�|�dS)N�
���)r;�writer=r<�endswithr>�r?rr
r
rrD�s
zIndentedStream.writecCst|j|�Sr:)�getattrr;)r?�attrr
r
r�__getattr__�szIndentedStream.__getattr__N)rr)�__name__�
__module__�__qualname__rArDrIr
r
r
rr9�s
�
	r9c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�StylercCs|Sr:r
rFr
r
r�style_title�szStyler.style_titlecCs|Sr:r
rFr
r
r�style_header_column�szStyler.style_header_columncCs|Sr:r
rFr
r
r�style_row_element�szStyler.style_row_elementcCs|Sr:r
rFr
r
r�style_indentation_char�szStyler.style_indentation_charN)rJrKrLrNrOrPrQr
r
r
rrM�srMc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�ColorizedStylercCstjft�dSr:)�coloramaZinit�COLORAMA_KWARGS�r?r
r
rrA�szColorizedStyler.__init__cCs|Sr:r
rFr
r
rrN�szColorizedStyler.style_titlecCs|Sr:r
rFr
r
rrO�sz#ColorizedStyler.style_header_columncCstjjtjj|tjjSr:)rS�StyleZBRIGHT�ForeZBLUE�	RESET_ALLrFr
r
rrP�s
��z!ColorizedStyler.style_row_elementcCstjjtjj|tjjSr:)rSrVZDIMrWZYELLOWrXrFr
r
rrQ�s
��z&ColorizedStyler.style_indentation_charN)rJrKrLrArNrOrPrQr
r
r
rrR�s
rRc@sxeZdZddd�Zdd�Zdd	�Zd
d�Zd d
d�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)!�
MultiTableNTrcCsr||_|rt�|_|jg|_nd|_g|_|dkrLt�rBt�|_qRt�|_n||_d|_||_	|dkrnt
�|_dS)Nr)�_auto_reformatr.�_current_section�	_sectionsrrR�_stylerrMZ_rendering_index�_column_separatorr�_terminal_width)r?Zterminal_widthZinitial_sectionZcolumn_separatorZterminalZstylerZ
auto_reformatr
r
rrA�s

zMultiTable.__init__cCs|j�|�dSr:)r[�	add_title�r?r/r
r
rr`�szMultiTable.add_titlecCs|j�|�dSr:)r[�
add_header�r?r-r
r
r�add_row_header�szMultiTable.add_row_headercCs|j�|�dSr:)r[r2)r?Zrow_elementsr
r
rr2�szMultiTable.add_rowrcCs.t�|_|j�|j�|j�|�||j_dSr:)r.r[r\rr`r0)r?r/r0r
r
rr5�szMultiTable.new_sectioncCsX|��}|�|�}|r(t|j�|��}|�d|d�|jD]}|�|||�q@dS)N�-rB)�_calculate_max_width�_determine_conversion_neededr8r\rD�_render_section)r?r@�	max_widthZshould_convert_tabler4r
r
r�render�s


zMultiTable.rendercCs||jkr|jSdSr:)r_rZ�r?rir
r
rrg�s
z'MultiTable._determine_conversion_neededcCstdd�|jD��}|S)Ncss |]}|jdd|jd�VqdS)�T)r)�with_border�
outer_paddingN)�total_widthr0)r�sr
r
rr�s��z2MultiTable._calculate_max_width.<locals>.<genexpr>)�maxr\rkr
r
rrf�s�zMultiTable._calculate_max_widthcCs\t||j|j�d�|j�d��}||jd8}|�|||�|�|||�|�|||�dS)Nrr)r9r0r]rQ�
_render_title�_render_column_titles�_render_rows)r?r4rir@r
r
rrh�s

�zMultiTable._render_sectionc	Cs^|jrZ|j�|j�}|�t||ddt|j��d�|jsZ|jsZ|�dd|dd�dS)NrrB�+%s+rer)r/r]rNrDr'rr-r,)r?r4rir@r/r
r
rrrs��zMultiTable._render_titlec	Cs�|js
dS|jd|d�}d}d}d}t||j�D]H\}}	|j�|	�}
|rRd}d}nd}|t|
||dt|	�d�7}||7}q0|�||�|�|d	�dS�
Nrl)r)rirrTrF)rr r!r"r#rB)	r-�calculate_column_widthsr1r]rOr'r�_write_line_breakrD)r?r4rir@�widths�currentr%�firstrr6Zstylized_headerr!r
r
rrss,��
z MultiTable._render_column_titlescCsfg}d}|D]:}|r0|�dd|d�d}q|�dd|d�q|�d�|�d	�|��dS)
NTrurerFz%s+rrBr)rrDr)r?r@ry�partsr{rr
r
rrx&s
zMultiTable._write_line_breakc

Cs�|js
dS|jd|d�}|s dS|�||�|jD]t}d}d}d}t||�D]J\}	}
|rbd}d}nd}|j�|
�}|t||	||jt|
�d�7}||	7}qL|�	|d	�q2|�||�dSrv)
r,rwrxr1r]rPr*r^rrD)
r?r4rir@ry�rowrzr%r{rr7r!Zstylizedr
r
rrt4s4�
�
zMultiTable._render_rows)NTrNNT)r)rJrKrLrAr`rdr2r5rjrgrfrhrrrsrxrtr
r
r
rrY�s$�


	rYc@s`eZdZdd�Zdd�Zddd�Zdd
d�Zdd
�Zdd�Zdd�Z	dd�Z
dd�Zdd�ZdS)r.cCs(d|_g|_g|_d|_d|_g|_dS)Nrr)r/r-r,r0�	_num_cols�_max_widthsrUr
r
rrASszSection.__init__cCsd|j|j|jt|j�fS)Nz;Section(title=%s, headers=%s, indent_level=%s, num_rows=%s))r/r-r0r(r,rUr
r
r�__repr__[s�zSection.__repr__rNcs��fdd�|jD�}|dkr |S|s(|S|tt|����fdd�|D�}t|�|}|dkr�tt|��}|dkrzt|�}|D]J}|dkr�||d8<|d8}n||d7<|d7}|dkr~qVq~qV|SdS)Ncsg|]}|��qSr
r
�r�w)r)r
r�
<listcomp>asz3Section.calculate_column_widths.<locals>.<listcomp>csg|]}tt�|���qSr
)�int�roundr�)�scale_factorr
rr�isrr)r�floatr�ranger(�reversed)r?r)riZunscaled_widthsZscaledZoff_byZ
iter_orderr3r
)r)r�rrw_s*
zSection.calculate_column_widthsFcCsVd}d}|��D]}|||7}q|r.||7}|||7}tt|j�||||�S)Nrr)rwrqrr/)r?r)rmrnZtotalZborder_paddingr�r
r
rro|s��zSection.total_widthcCs
||_dSr:)r/rar
r
rr`�szSection.add_titlecCs.|�|�|jdkrt|�|_|�|�|_dSr:)�_update_max_widthsr~r(�_format_headersr-rcr
r
rrb�s


zSection.add_headercCs|Sr:r
rcr
r
rr��szSection._format_headerscCs\|jdkrt|�|_t|�|jkr8td|jt|�f��|�|�}|j�|�|�|�dS)Nz.Row should have %s elements, instead it has %s)r~r(�
ValueError�_format_rowr,rr��r?r}r
r
rr2�s

�
zSection.add_rowcCsdd�|D�S)NcSsg|]}t�|��qSr
)rr
)r�rr
r
rr��sz'Section._format_row.<locals>.<listcomp>r
r�r
r
rr��szSection._format_rowcCsH|jsdd�|D�|_n,t|�D]"\}}tt|�|j|�|j|<q dS)NcSsg|]}t|��qSr
)r)r�elr
r
rr��sz.Section._update_max_widths.<locals>.<listcomp>)rr+rqr)r?r}r3r�r
r
rr��szSection._update_max_widths)rN)rFr)
rJrKrLrAr�rwror`rbr�r2r�r�r
r
r
rr.Rs


r.)r)rrrN)rrNr)rrrrSZawscli.utilsrZ
awscli.compatrrTrrr'r*r8�objectr9rMrRrYr.r
r
r
r�<module>
s.�
�
�