o
    .&ßa{  ã                   @   s    d dl mZ G dd„ deƒZdS )é    )ÚFileInfoc                   @   s.   e Zd ZdZ		d
dd„Zdd„ Zdd	„ ZdS )ÚFileInfoBuilderz�
    This class takes a ``FileBase`` object's attributes and generates
    a ``FileInfo`` object so that the operation can be performed.
    NFc                 C   s*   || _ || _|d ur|| _|| _|| _d S ©N)Ú_clientÚ_source_clientÚ_parametersÚ
_is_stream)ÚselfÚclientÚsource_clientÚ
parametersÚ	is_stream© r   úJ/usr/lib/python3/dist-packages/awscli/customizations/s3/fileinfobuilder.pyÚ__init__   s   
zFileInfoBuilder.__init__c                 c   s    � |D ]
}|   |¡}|V  qd S r   )Ú_inject_info)r	   ÚfilesÚ	file_baseÚ	file_infor   r   r   Úcall   s
   €
þzFileInfoBuilder.callc                 C   sÀ   i }|j |d< |j|d< |j|d< |j|d< |j|d< |j|d< |j|d< |j|d< | j|d	< | j	|d
< |j
|d< |jdkrO| j d¡rO| j|d< | j|d< n
| j|d< | j|d< tdi |¤ŽS )NÚsrcÚdestÚcompare_keyÚsizeÚlast_updateÚsrc_typeÚ	dest_typeÚoperation_namer   r   Úassociated_response_dataÚdeleter
   r   r   )r   r   r   r   r   r   r   r   r   r   Úresponse_dataÚgetr   r   r   )r	   r   Úfile_info_attrr   r   r   r   #   s(   












ÿ


zFileInfoBuilder._inject_info)NNF)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r      s    
ÿ	r   N)Ú!awscli.customizations.s3.fileinfor   Úobjectr   r   r   r   r   Ú<module>   s   