B 䊇c@sRdZddlZddlmZddlmZeeZGdddeZ GdddeZ dS) zSpecial 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. N)crc32)BaseRetryableCheckerc@seZdZdZddZdS)RetryIDPCommunicationErrorstscCs(|jjj}||jkrdS|}|dkS)NFZIDPCommunicationError)operation_model service_model service_name _SERVICE_NAMEZget_error_code)selfcontextrZ error_coder s/private/var/folders/8c/hx9_v10d5x38qmnzt13b7b8j1k3n5b/T/pip-target-x6xd5gna/lib/python/botocore/retries/special.py is_retryables   z'RetryIDPCommunicationError.is_retryableN)__name__ __module__ __qualname__r rr r r r rsrc@seZdZdZdZddZdS)RetryDDBChecksumErrorz x-amz-crc32ZdynamodbcCst|jjj}||jkrdS|jdkr&dS|jj|j}|dkrBdSt|jj d@}|t |krpt d||dSdS)NFlz@DynamoDB crc32 checksum does not match, expected: %s, actual: %sT) rrrr http_responseheadersget_CHECKSUM_HEADERrcontentintloggerdebug)r r rZchecksumZ actual_crc32r r r r#s    z"RetryDDBChecksumError.is_retryableN)rrrrr rr r r r rsr) __doc__loggingbinasciirZbotocore.retries.baser getLoggerrrrrr r r r s