o .&ßaKã@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}||jkr dS| ¡}|dkS)NFÚIDPCommunicationError)Úoperation_modelÚ service_modelÚ service_nameÚ _SERVICE_NAMEÚget_error_code)ÚselfÚcontextr Ú error_code©rú:/usr/lib/python3/dist-packages/botocore/retries/special.pyÚ is_retryables  z'RetryIDPCommunicationError.is_retryableN)Ú__name__Ú __module__Ú __qualname__r rrrrrrs rc@seZdZdZdZdd„ZdS)ÚRetryDDBChecksumErrorz x-amz-crc32ÚdynamodbcCst|jjj}||jkr dS|jdurdS|jj |j¡}|dur!dSt|jj ƒd@}|t |ƒkr8t   d||¡dSdS)NFlÿÿz@DynamoDB crc32 checksum does not match, expected: %s, actual: %sT) rrr r Ú http_responseÚheadersÚgetÚ_CHECKSUM_HEADERrÚcontentÚintÚloggerÚdebug)r r r ÚchecksumÚ actual_crc32rrrr#s    ÿýz"RetryDDBChecksumError.is_retryableN)rrrrr rrrrrrs r) Ú__doc__ÚloggingÚbinasciirÚbotocore.retries.baserÚ getLoggerrrrrrrrrÚs