o
    2&ßa¼  ã                   @   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/dist-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   Úall_keysÚelementÚ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"   Ú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)Úlist_of_dictsÚ	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Ú )r1   r/   r   r   r   r$   r   r   Úgetr.   Úkeys)r4   r   Úscalarr#   r5   r6   Úremaining_keysÚremaining_keyr   r   r   r+   ^   s   ûr+   )NN)
Úawscli.compatr   r	   r   r   r   r   r   r   r+   r   r   r   r   Ú<module>   s   
	