
    'wf                         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y)    )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                  j                  j                  d| |j                         t        t        t        |      t                     t               |      }d|z  }| j                  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          p/home/panchajanya/Development/work/volatility3/venv/lib/python3.12/site-packages/aiobotocore/retries/standard.pyregister_retry_handlerr/      s    #E$4$4$67K**55J#--/
KK
()*K,K,K #4) -.	
 ./	G "$66I
KK--   
 N    c                       e Zd Zd Zy)r'   c                   K   d} | j                   j                  di |}| j                  j                  |       d{   rc| j                  j                  |      r2| j                  j                  |      }t        j                  d|       n+t        j                  d       nt        j                  d       | j                   j                  |       |S 7 w)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     @$++@@J6J##00999   44W="00DDWMG
 ,
 LL01!!CCGL# :s   =CC BCN)__name__
__module____qualname__r*   r3   r0   r.   r'   r'   4   s    r0   r'   c                       e Zd Zd Zy)r(   c                 f   K   t        | j                  j                  |             d {   S 7 wN)r   _retry_checkeris_retryabler=   r@   s     r.   r7   zAioRetryPolicy.should_retryN   s1     &,,W5
 
 	
 
s   (1/1N)rA   rB   rC   r7   r3   r0   r.   r(   r(   M       
r0   r(   c                       e Zd ZefdZd Zy)r)   c           
          t        |      | _        t        t               t	               t               t        t        j                         t               g      g      | _	        y rF   )
r   _max_attempts_checkerAioOrRetryCheckerr   r   r   r   RetryIDPCommunicationErrorr   _additional_checkers)r=   r   s     r.   __init__z#AioStandardRetryConditions.__init__U   sT    
 &8%E"$5)+)+')!::<02	
%
!r0   c                    K   | j                   j                  |      xr, t        | j                  j                  |             d {   S 7 wrF   )rM   rH   r   rP   rI   s     r.   rH   z'AioStandardRetryConditions.is_retryablei   sM     ))66
 
%%%227;
 
	

s   AAAAN)rA   rB   rC   r   rQ   rH   r3   r0   r.   r)   r)   T   s    /
(
r0   r)   c                       e Zd Zd Zy)rN   c                 \   K   t        fd| j                  D               d {   S 7 w)Nc              3   @   K   | ]  }|j                          y wrF   )rH   ).0checkerr@   s     r.   	<genexpr>z1AioOrRetryChecker.is_retryable.<locals>.<genexpr>s   s!      
.5G  )
s   )r   	_checkersrI   s    `r.   rH   zAioOrRetryChecker.is_retryabler   s/      
9=
 
 
 	
 
s   ",*,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\      sb       $ 4 - 1E :l 2
[ 

!8 
:
 
r0   