o
    !dn                     @   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   Lusr/lib/python3.10/site-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   Zassociated_response_datadeleter
   r   r   )r   r   r   r   r   r   r   r   r   r   Zresponse_datagetr   r   r   )r	   r   Z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)Z!awscli.customizations.s3.fileinfor   objectr   r   r   r   r   <module>   s   