ó 9(Zc@sÎddlZddlZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm Z d efd „ƒYZ d efd „ƒYZ d efd„ƒYZ dS(iÿÿÿÿN(tTask(tSubmissionTask(tCreateMultipartUploadTask(tCompleteMultipartUploadTask(t get_callbacks(tcalculate_range_parameter(tChunksizeAdjustertCopySubmissionTaskc BsÇeZdZidd6dd6dd6dd6d d 6d d 6d d6dd6Zddddd d dd d d dg Zddddd d ddgZd„Zd„Zd„Zd„Z d„Z d„Z RS(s+Task for submitting tasks to execute a copytIfMatchtCopySourceIfMatchtIfModifiedSincetCopySourceIfModifiedSincet IfNoneMatchtCopySourceIfNoneMatchtIfUnmodifiedSincetCopySourceIfUnmodifiedSincetSSECustomerKeytCopySourceSSECustomerKeytSSECustomerAlgorithmtCopySourceSSECustomerAlgorithmtSSECustomerKeyMD5tCopySourceSSECustomerKeyMD5t RequestPayertMetadataDirectivec Csð|jjdkr¢|jj}|j|jƒ}|j}x=|jƒD]/\} } | |jkrF| ||j| R@textra_part_argsR((s5/tmp/pip-build-wDUJoH/s3transfer/s3transfer/copies.pyR'sr       "             cCs<t|tƒrtj|ƒStd|t|ƒfƒ‚dS(NsZExpecting dictionary formatted: {"Bucket": bucket_name, "Key": key} but got %s or type %s.(t isinstancetdicttcopyt TypeErrorttype(R(R((s5/tmp/pip-build-wDUJoH/s3transfer/s3transfer/copies.pyRés  cCsCi}x6|jƒD](\}}||jkr||| s  í