
    pge                         d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZ ddlmZ efdZ G d de          Z G d	 d
e          Z G d de
          Z G d de          ZdS )    )DEFAULT_MAX_ATTEMPTSExponentialBackoffMaxAttemptsCheckerModeledRetryableCheckerOrRetryCheckerRetryEventAdapterRetryHandlerRetryPolicyRetryQuotaCheckerStandardRetryConditionsThrottledRetryableCheckerTransientRetryableCheckerloggerquotaspecial   )	async_anyresolve_awaitable   )AioRetryDDBChecksumErrorc                    t          t          j                              }| j        j        j        }|                                }| j        j                            d| |j	                   t          t          t          |          t                                t                      |          }d|z  }| j        j                            d|z  |j        |           |S )Nzafter-call.)max_attempts)retry_checkerretry_backoff)retry_policyretry_event_adapterretry_quotazretry-config-%szneeds-retry.%s)	unique_id)r   r   
RetryQuotametaservice_model
service_id	hyphenizeeventsregisterrelease_retry_quotaAioRetryHandlerAioRetryPolicyAioStandardRetryConditionsr   r   needs_retry)clientr   r   r"   service_event_namehandlerr   s          <lib/python3.11/site-packages/aiobotocore/retries/standard.pyregister_retry_handlerr/      s   #E$4$6$677K*5J#--//
K*(**K,K   #4)   -..	
 
 
 .//	 	 	G "$66I
K--     
 N    c                       e Zd Zd ZdS )r'   c                   K   d} | j         j        di |}| j                            |           d{V r_| j                            |          r0| j                            |          }t          j        d|           n)t          j        d           nt          j        d           | j         	                    |           |S )z.Connect as a handler to the needs-retry event.Nz1Retry needed, retrying request after delay of: %sz;Retry needed but retry quota reached, not retrying request.zNot retrying request. )
_retry_event_adaptercreate_retry_context_retry_policyshould_retry_retry_quotaacquire_retry_quotacompute_retry_delayr   debug!adapt_retry_response_from_context)selfkwargsretry_delaycontexts       r.   r*   zAioRetryHandler.needs_retry5   s      @$+@JJ6JJ#0099999999 	2  44W== 
"0DDWMMG   
 ,   
 L0111!CCGLLLr0   N)__name__
__module____qualname__r*   r3   r0   r.   r'   r'   4   s#            r0   r'   c                       e Zd Zd ZdS )r(   c                 `   K   t          | j                            |                     d {V S N)r   _retry_checkeris_retryabler=   r@   s     r.   r7   zAioRetryPolicy.should_retryN   sJ      &,,W55
 
 
 
 
 
 
 
 	
r0   N)rA   rB   rC   r7   r3   r0   r.   r(   r(   M   #        
 
 
 
 
r0   r(   c                       e Zd ZefdZd ZdS )r)   c           
          t          |          | _        t          t                      t	                      t                      t          t          j                    t                      g          g          | _	        d S rF   )
r   _max_attempts_checkerAioOrRetryCheckerr   r   r   r   RetryIDPCommunicationErrorr   _additional_checkers)r=   r   s     r.   __init__z#AioStandardRetryConditions.__init__U   ss    
 &8%E%E"$5)++)++'))!:<<022 	
%
 %
!!!r0   c                    K   | j                             |          o,t          | j                            |                     d {V S rF   )rM   rH   r   rP   rI   s     r.   rH   z'AioStandardRetryConditions.is_retryablei   sh      )66
 
 
%%227;;
 
 
 
 
 
 
 
	
r0   N)rA   rB   rC   r   rQ   rH   r3   r0   r.   r)   r)   T   s:        /
 
 
 
(
 
 
 
 
r0   r)   c                       e Zd Zd ZdS )rN   c                 T   K   t          fd| j        D                        d {V S )Nc              3   B   K   | ]}|                               V  d S rF   )rH   ).0checkerr@   s     r.   	<genexpr>z1AioOrRetryChecker.is_retryable.<locals>.<genexpr>s   sB       
 
.5G  ))
 
 
 
 
 
r0   )r   	_checkersrI   s    `r.   rH   zAioOrRetryChecker.is_retryabler   s_       
 
 
 
9=
 
 
 
 
 
 
 
 
 
 
 	
r0   N)rA   rB   rC   rH   r3   r0   r.   rN   rN   q   rJ   r0   rN   N)botocore.retries.standardr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   _helpersr   r   r   r/   r'   r(   r)   rN   r3   r0   r.   <module>r\      s                                   $ 4 3 3 3 3 3 3 3 - - - - - - 1E    :    l   2
 
 
 
 
[ 
 
 

 
 
 
 
!8 
 
 
:
 
 
 
 
 
 
 
 
 
r0   