B >@SaKã@sRdZddlZddlmZddlmZe e¡ZGdd„deƒZ Gdd„deƒZ dS) zå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. éN)Úcrc32)ÚBaseRetryableCheckerc@seZdZdZdd„ZdS)ÚRetryIDPCommunicationErrorÚstscCs(|jjj}||jkrdS| ¡}|dkS)NFZIDPCommunicationError)Úoperation_modelÚ service_modelÚ service_nameÚ _SERVICE_NAMEZget_error_code)ÚselfÚcontextrZ error_code©r úp/private/var/folders/fg/1jzmct0d7d72tjkvm_1nhqc5sw67yj/T/pip-unpacked-wheel-ef76ia09/botocore/retries/special.pyÚ is_retryables   z'RetryIDPCommunicationError.is_retryableN)Ú__name__Ú __module__Ú __qualname__r rr r r r rsrc@seZdZdZdZdd„ZdS)ÚRetryDDBChecksumErrorz x-amz-crc32ZdynamodbcCst|jjj}||jkrdS|jdkr&dS|jj |j¡}|dkrBdSt|jj ƒd@}|t |ƒkrpt   d||¡dSdS)NFlÿÿz@DynamoDB crc32 checksum does not match, expected: %s, actual: %sT) rrrr Ú http_responseÚheadersÚgetÚ_CHECKSUM_HEADERrÚcontentÚintÚloggerÚdebug)r r rZchecksumZ actual_crc32r r r r#s    z"RetryDDBChecksumError.is_retryableN)rrrrr rr r r r rsr) Ú__doc__ÚloggingÚbinasciirZbotocore.retries.baserÚ getLoggerrrrrr r r r Ús