HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/awscli/__pycache__/utils.cpython-36.pyc
3

�T_��@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddlm
Z
dd�Zdd�Zdd
d�Z
dd
�Zdd�Zdd�Zejdd��Zdd�Zdd�ZGdd�de�Zdd�ZdS)�N)�six)�get_binary_stdout)�get_popen_kwargs_for_pager_cmdcs^t�fdd�dD��s �jd�St�fd	d�d
D��sRttjtj��dd
��dSt��SdS)Nc3s|]}|�kVqdS)N�)�.0�char)�valuer�/usr/lib/python3.6/utils.py�	<genexpr>sz"split_on_commas.<locals>.<genexpr>�"�\�'�]�[�,c3s|]}|�kVqdS)Nr)rr)rrr	r
s)�
escapecharr)rrr
rr)rr
rr)�any�split�list�csv�readerr�StringIO�_split_with_quotes)rr)rr	�split_on_commass

rc	CsNy ttjtj|�dd��d}Wn"tjk
rBtd|��YnXt|�}g}x�|D]�}t|�}|j	d�}|dkr�|j	d�dkr�|dks�|j	|�|kr�d|kr�|}nt
|||d�}t||dd��}|d|d�d	j|�}|j
|�qVn<|dk�r|j
|�qVn$|j|�dk�r,|j
|j|d
��qVt
|||||�}|j
|�qVW|S)
Nr)rrzBad csv value: %sz=[r��r����r)rrrrr�Error�
ValueError�iter�_find_quote_char_in_part�find�
_eat_itemsr�join�append�count�replace)	r�parts�
iter_partsZ	new_parts�part�
quote_charZ
list_startZ	new_chunkZ
list_itemsrrr	r's6 




rrcCsl|}|j|d�g}xNytj|�}Wntk
r>t|��YnX|j|j|d��|j|�rPqWdj|�S)z�
    Eat items from an iterator, optionally replacing characters with
    a blank and stopping when the end_char has been reached.
    rr)r'rZadvance_iterator�
StopIterationrr%�endswithr$)rr)r*Zend_charZreplace_charZcurrentZchunksrrr	r#Rs
r#cCsvd|krd|krdSd}|jd�}|jd�}|dkrB|dkrBd}n0|dkrX|dkrXd}n||krfd}n||krrd}|S)Nrr
rrrr)r")r*r+Zdouble_quoteZsingle_quoterrr	r!ds

r!cCsJ|jd�dd�}d}t|�dkr*|d}d}t|�dkrB|d}||fS)z�
    Grabs the service id and the operation name from an event name.
    This is making the assumption that the event name is in the form
    event.service.operation.
    �.rNr)r�len)Z
event_nameZsplit_eventZservice_nameZoperation_namerrr	�%find_service_and_method_in_event_nameusr0cCst|tj�r|j�S|SdS)z6JSON encoder that formats datetimes as ISO8601 format.N)�
isinstance�datetimeZ	isoformat)�objrrr	�json_encoder�sr4ccs0tjtjtj�}z
dVWdtjtj|�XdS)N)�signal�SIGINT�SIG_IGN)�originalrrr	�
ignore_ctrl_c�s
r9cCs|jd||d�dS)Nztop-level-args-parsed)Zparsed_args�session)�emit)r:�argsrrr	� emit_top_level_args_parsed_event�sr=cCs6ytjtjj��Stk
r0}zdSd}~XnXdS)NF)�os�isatty�sys�stdout�fileno�	Exception)�errr	�is_a_tty�srEc@s<eZdZd
dd�Zejddd��Zejdd��Zdd	�ZdS)�OutputStreamFactoryNcCs||_|dkrtj|_dS)N)�_popen�
subprocess�Popen)�self�popenrrr	�__init__�szOutputStreamFactory.__init__ccsL|j|�}z2y|jf|�}|jVWntk
r8YnXWd|j�XdS)N)�_get_process_pager_kwargsrG�stdin�IOErrorZcommunicate)rJZpreferred_pagerZpopen_kwargsZprocessrrr	�get_pager_stream�s

z$OutputStreamFactory.get_pager_streamccst�VdS)N)r)rJrrr	�get_stdout_stream�sz%OutputStreamFactory.get_stdout_streamcCst|�}tj|d<|S)NrN)rrH�PIPE)rJZ	pager_cmd�kwargsrrr	rM�s
z-OutputStreamFactory._get_process_pager_kwargs)N)N)	�__name__�
__module__�__qualname__rL�
contextlib�contextmanagerrPrQrMrrrr	rF�s

rFcCs(|jd�|jtj|��|jd�dS)N�
)�writerZ	text_type)ZexZoutfilerrr	�write_exception�s
r[)r)rr5r2rWr>r@rHZ
awscli.compatrrrrrr#r!r0r4rXr9r=rE�objectrFr[rrrr	�<module>
s(
+