ó ŕtÚ_c@sqdZddlZddlmZddlmZejeƒZdefd„ƒYZ defd„ƒYZ dS( sĺSpecial cased retries. These are additional retry cases we still have to handle from the legacy retry handler. They don't make sense as part of the standard mode retry module. Ideally we should be able to remove this module. i˙˙˙˙N(tcrc32(tBaseRetryableCheckertRetryIDPCommunicationErrorcBseZdZd„ZRS(tstscCs8|jjj}||jkr"tS|jƒ}|dkS(NtIDPCommunicationError(toperation_modelt service_modelt service_namet _SERVICE_NAMEtFalsetget_error_code(tselftcontextRt error_code((sC/opt/awscli/lib/python2.7/site-packages/botocore/retries/special.pyt is_retryables  (t__name__t __module__RR(((sC/opt/awscli/lib/python2.7/site-packages/botocore/retries/special.pyRstRetryDDBChecksumErrorcBseZdZdZd„ZRS(s x-amz-crc32tdynamodbcCs |jjj}||jkr"tS|jdkr5tS|jjj|j ƒ}|dkr]tSt |jj ƒd@}|t |ƒkrœt jd||ƒtSdS(NI˙˙˙˙s@DynamoDB crc32 checksum does not match, expected: %s, actual: %s(RRRRR t http_responsetNonetheaderstgett_CHECKSUM_HEADERRtcontenttinttloggertdebugtTrue(R R Rtchecksumt actual_crc32((sC/opt/awscli/lib/python2.7/site-packages/botocore/retries/special.pyR#s   (RRRRR(((sC/opt/awscli/lib/python2.7/site-packages/botocore/retries/special.pyRs( t__doc__tloggingtbinasciiRtbotocore.retries.baseRt getLoggerRRRR(((sC/opt/awscli/lib/python2.7/site-packages/botocore/retries/special.pyts