HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/uaclient/cli/__pycache__/formatter.cpython-38.pyc
U

��Jh�"�@s.ddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZddlm
Z
ddlmZdZdZdZd	d
dd�ZGd
d�de�ZGdd�d�Zeje
�d�eeed�dd�Zeed�dd�Zdd�Zeed�dd�Zeee
ed�dd�ZGdd �d ej�ZGd!d"�d"e�Z Gd#d$�d$e�Z!dS)%�N)�Enum)�Any�Dict�List�Optional)�UAConfig)�TxtColorz
\033\[.*?mz\033]8;;.+?\033\\+z]8;;\�-�x�*)u—u✘u✔c@seZdZdZdZdS)�ContentAlignment�l�rN)�__name__�
__module__�__qualname__�LEFT�RIGHT�rr�8/usr/lib/python3/dist-packages/uaclient/cli/formatter.pyrsrc@s8eZdZdZdZeed�dd��Zedd�dd��ZdS)	�ProOutputFormatterConfigT��cfgcCs<tjjdk	odtjj��k|_tj��o4t�d�dk|_dS)NzUTF-8ZNO_COLOR)	�sys�stdout�encoding�upper�use_utf8�isatty�os�getenv�	use_color)�clsrrrr�init!s�zProOutputFormatterConfig.initN��returncCs
d|_dS)NF)r!)r"rrr�
disable_color*sz&ProOutputFormatterConfig.disable_color)	rrrrr!�classmethodrr#r&rrrrrsrr)�text�urlr%cCsdj||d�S)Nz]8;;{url}\{text}]8;;\)r)r()�format)r(r)rrr�create_link2sr+)r(r%cCs0t�td|�}t�td|�}|�td�}t|�S)N�)�re�sub�COLOR_FORMATTING_PATTERN�LINK_START_PATTERN�replace�LINK_END�len)r(�resultrrr�real_len6sr5cCstj��rt��jSdS)Ni�)rrrr�get_terminal_size�columnsrrrr�_get_default_length@s

r8cCst|}tjst�td|�}tjsLt��D]\}}|�||�}q&|�	dd��
�}tj�
�spt�td|�}|�td�}|S)Nr,�ascii�ignore)rr!r-r.r/r�UTF8_ALTERNATIVES�itemsr1�encode�decoderrrr0r2)r(�output�charZalternativerrr�process_formatter_configHs
rA)r(�	max_widthr%cCsvt|�|kr|gS|��}g}d}|D]8}t|�t|�|krR|�|���|}q&|d|7}q&|rr|�|���|S)Nr,� )r5�split�append�strip)r(rBZwordsZ
wrapped_linesZcurrent_lineZwordrrr�	wrap_text[srGc@s0eZdZejdeeed�dd��Zdd�Z	dS)�ProOutputFormatterN��line_lengthr%cCsdS�Nr)�selfrJrrr�	to_stringqszProOutputFormatter.to_stringcCs|��SrK)rM�rLrrr�__str__uszProOutputFormatter.__str__)N)
rrr�abc�abstractmethodr�int�strrMrOrrrrrHpsrHc@s�eZdZdZdeeeeeeeeeed�dd�Ze	ee
ed�dd��Ze	ee
ed�d	d
��Zee
d�dd
�Z
dee
ed�dd�Ze
d�dd�Ze
eeed�dd�Zeeed�dd�ZdS)�Tablez  N)�headers�rows�	alignmentcCs�|dk	r|ng|_|dk	r|ng|_|��|_|dk	r:|ntjgt|j�|_t|j�t|j�krvtd�	t|j����|jd|_
dS)Nz&'alignment' list should have length {}���)rUrV�_get_column_sizes�column_sizesrrr3rW�
ValueErrorr*�last_column_size)rLrUrVrWrrr�__init__|s
����zTable.__init__)�string�total_lengthr%cCs$t|�}||kr|S|d||S�NrC�r5�r^r_Z
str_lengthrrr�ljust�szTable.ljustcCs$t|�}||kr|Sd|||Sr`rarbrrr�rjust�szTable.rjustr$cs�|js|jstd��|jr6tdd�|jD��r6td��g}|jrL|�|j�|jr^|�|j�t|d��t�fdd�|D��s�td��g}tt|d��D] �|�t	�fdd�|D���q�|S)	Nz:Empty table not supported. Please provide headers or rows.css|]}t|�dkVqdS)rN�r3��.0�itemrrr�	<genexpr>�sz*Table._get_column_sizes.<locals>.<genexpr>z=Empty row not supported. Please provide content for each row.rc3s|]}t|��kVqdSrKrerf)�expected_lengthrrri�szQMixed lengths in table content. Please provide headers / rows of the same length.c3s|]}tt|���VqdSrK)r5rSrf)�irrri�s)
rUrVr[�anyrE�extendr3�all�range�max)rLZall_contentrZr)rjrkrrY�s0����zTable._get_column_sizesrIcCs||dkrt�}|j}|��|kr*|�|�}d}|jrT|tj|�|j�tjd7}|D]}||�|�7}|d7}qXt	|�S)Nr,�
)
r8rV�_get_line_length�wrap_last_columnrUr�BOLD�	_fill_row�ENDCrA)rLrJrVr?�rowrrrrM�s(

����
zTable.to_stringcCs"t|j�t|j�dt|j�S)N�)�sumrZr3�	SEPARATORrNrrrrr�s�zTable._get_line_length)�
max_lengthr%cCs�|t|jdd��t|j�dt|j�|_g}|jD]�}t|d�|jkr\|�|�q:t|d|j�}|�|dd�|dg�|dd�D](}dgt|j�d|g}|�|�q�q:|S)NrXrxrrC)ryrZr3rzr\rVrErG)rLr{Znew_rowsrwZwrapped_last_columnZ
extra_lineZnew_rowrrrrs�s"��
�zTable.wrap_last_column)rwr%cCs�d}tt|�d�D]f}|j|tjkrJ||�|||j|�|j7}q|j|tjkr||�	|||j|�|j7}q|jdtjkr�||d7}n&|jdtjkr�||�	|d|j
�7}|S)Nr,rxrX)ror3rWrrrcrZrzrrdr\)rLrwr?rkrrrru�s��zTable._fill_row)NNN)N)rrrrzrrrSrr]�staticmethodrRrcrdrYrMrrrsrurrrrrTys$�

� rTc@sHeZdZdZdZd
eeeeed�dd�Z	dee
ed�dd	�ZdS)�Block�rCN��title�contentcCs||_|dk	r|ng|_dSrKr)rLr�r�rrrr]szBlock.__init__rIcCs�|dkrt�}||j8}d}|jrB|tjtj|jtjd7}|jD]L}t|t	�rd|j
|d�}nd�tt
|�|��d}|t�||j|j�7}qHt|�S)Nr,rq)rJ)r8�INDENT_SIZEr�rrtZDISABLEGREYrvr��
isinstancerHrM�joinrGrS�textwrap�indent�INDENT_CHARrA)rLrJr?rhZitem_strrrrrMs2
�����


�zBlock.to_string)NN)N)rrrr�r�rrSrrr]rRrMrrrrr}�s�
�r})"rPrr-rr��enumr�typingrrrrZuaclient.configrZuaclient.messagesrr/r0r2r;rrr#rSr+rRr5r8rArG�ABCrHrTr}rrrr�<module>s6�