o
    !d                     @   sR   d dl mZ dd ZdddZdd Zd	d
 Zdd Zdd Zdd Zdd Z	dS )    )sixc                 C   s   t | | d S N)_format_text)datastream r   /usr/lib/python3.10/site-packages/awscli/text.pyformat_text   s   r	   Nc                 C   sT   t | trt|| || d S t | trt| || d S |t|  |d d S )N
)
isinstancedict_format_dictlist_format_listwriter   	text_type)itemr   
identifierscalar_keysr   r   r   r      s   

r   c                 C   s   | sd S t dd | D r t| }| D ]
}t||||d qd S t dd | D rEt| \}}|r7t||| |D ]	}t|||d q9d S t| || d S )Nc                 s       | ]}t |tV  qd S r   )r   r   .0elr   r   r   	<genexpr>#       z_format_list.<locals>.<genexpr>)r   r   r   c                 s   r   r   )r   r   r   r   r   r   r   (   r   )r   r   )any_all_scalar_keysr   _partition_list_format_scalar_list)r   r   r   Zall_keyselementZscalar_elementsnon_scalars
non_scalarr   r   r   r       s&   r   c                 C   s>   g }g }| D ]}t |ttfr|| q|| q||fS r   )r   r   r   append)r   scalarsr    r   r   r   r   r   3   s   r   c                 C   sT   |d ur| D ]}| d| |f  qd S | ddd | D  | d d S )Nz%s	%s
	c                 S   s   g | ]}t |qS r   )r   r   )r   r   r   r   r   
<listcomp>E   s    z'_format_scalar_list.<locals>.<listcomp>r
   )r   upperjoin)elementsr   r   r   r   r   r   r   >   s   
r   c                 C   sf   t || d\}}|r#|d ur|d|  |d| |d |D ]\}}t|||d q%d S )N)r   r   r$   r
   )r   r   r   )_partition_dictinsertr&   r   r'   r   )r   r   r   r   r#   r    Znew_identifierr!   r   r   r   r   I   s   
r   c                 C   sF   t  }| D ]}| D ]\}}t|ttfs|| qqtt|S r   )setitemsr   r   r   addsorted)Zlist_of_dictsZ	keys_seen	item_dictkeyvaluer   r   r   r   U   s   
r   c              	   C   s   g }g }|d u r.t |  D ]\}}t|ttfr!|||f q|t| q||fS |D ]}|t| |d q0t t	| 
 t	| }|D ]}||| | f qM||fS )N )r.   r,   r   r   r   r"   r   r   getr+   keys)r/   r   Zscalarr!   r0   r1   Zremaining_keysZremaining_keyr   r   r   r)   ^   s   r)   )NN)
Zawscli.compatr   r	   r   r   r   r   r   r   r)   r   r   r   r   <module>   s   
	