
    Ri                         S SK r S SKJrJr  SrSr " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r	 " S S\5      r
 " S S\5      r " S S\5      rS rg)    N)ABCabstractmethodgMb?gMb?c                   .    \ rS rSrSrS r\S 5       rSrg)AbstractBackoff
   zBackoff interfacec                     g)z|
Reset internal state before an operation.
`reset` is called once at the beginning of
every call to `Retry.call_with_retry`
N selfs    _/var/www/html/backend/Backoffice_Marketplace/venv/lib/python3.13/site-packages/redis/backoff.pyresetAbstractBackoff.reset   s     	    c                     g)z'Compute backoff in seconds upon failureNr	   r   failuress     r   computeAbstractBackoff.compute   s     	r   r	   N)	__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes__r	   r   r   r   r   
   s      r   r   c                   $    \ rS rSrSrS rS rSrg)ConstantBackoff   zConstant backoff upon failurec                     Xl         g)z"`backoff`: backoff time in secondsN_backoff)r   backoffs     r   __init__ConstantBackoff.__init__   s    r   c                     U R                   $ Nr   r   s     r   r   ConstantBackoff.compute"   s    }}r   r   N)r   r   r   r   r   r"   r   r   r	   r   r   r   r      s    ' r   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )	NoBackoff&   zNo backoff upon failurec                 $   > [         TU ]  S5        g Nr   )superr"   )r   	__class__s    r   r"   NoBackoff.__init__)   s    r   r	   )r   r   r   r   r   r"   r   __classcell__)r-   s   @r   r(   r(   &   s    ! r   r(   c                   ,    \ rS rSrSr\\4S jrS rSr	g)ExponentialBackoff-   z Exponential backoff upon failurec                     Xl         X l        gM
`cap`: maximum backoff time in seconds
`base`: base backoff time in seconds
N_cap_baser   capbases      r   r"   ExponentialBackoff.__init__0       
 	
r   c                 N    [        U R                  U R                  SU-  -  5      $ )N   )minr7   r8   r   s     r   r   ExponentialBackoff.compute8   s     499djj1h;677r   r8   r7   N
r   r   r   r   r   DEFAULT_CAPDEFAULT_BASEr"   r   r   r	   r   r   r1   r1   -   s    *&\ 8r   r1   c                   ,    \ rS rSrSr\\4S jrS rSr	g)FullJitterBackoff<   z Full jitter backoff upon failurec                     Xl         X l        gr4   r6   r9   s      r   r"   FullJitterBackoff.__init__?   r=   r   c           	      x    [         R                  " S[        U R                  U R                  SU-  -  5      5      $ )Nr   r?   )randomuniformr@   r7   r8   r   s     r   r   FullJitterBackoff.computeG   s+    ~~aTYY

Q[0H!IJJr   rB   NrC   r	   r   r   rG   rG   <   s    *&\ Kr   rG   c                   ,    \ rS rSrSr\\4S jrS rSr	g)EqualJitterBackoffK   z!Equal jitter backoff upon failurec                     Xl         X l        gr4   r6   r9   s      r   r"   EqualJitterBackoff.__init__N   r=   r   c                     [        U R                  U R                  SU-  -  5      S-  nU[        R                  " SU5      -   $ )Nr?   r   )r@   r7   r8   rL   rM   )r   r   temps      r   r   EqualJitterBackoff.computeV   s:    499djj1h;67!;fnnQ---r   rB   NrC   r	   r   r   rP   rP   K   s    +&\ .r   rP   c                   2    \ rS rSrSr\\4S jrS rS r	Sr
g)DecorrelatedJitterBackoff[   z(Decorrelated jitter backoff upon failurec                 *    Xl         X l        SU l        g)r5   r   N)r7   r8   _previous_backoffr9   s      r   r"   "DecorrelatedJitterBackoff.__init__^   s    
 	
!"r   c                     SU l         g r+   )r[   r
   s    r   r   DecorrelatedJitterBackoff.resetg   s
    !"r   c                     [        U R                  U R                  S-  5      n[        R                  " U R                  U5      n[        U R                  U5      U l        U R                  $ )N   )maxr8   r[   rL   rM   r@   r7   )r   r   max_backoffrU   s       r   r   !DecorrelatedJitterBackoff.computej   sP    $**d&<&<q&@A~~djj+6!$TYY!5%%%r   )r8   r7   r[   N)r   r   r   r   r   rD   rE   r"   r   r   r   r	   r   r   rX   rX   [   s    2&\ ##&r   rX   c                      [        5       $ r%   )rP   r	   r   r   default_backoffre   q   s    r   )rL   abcr   r   rD   rE   r   r   r(   r1   rG   rP   rX   re   r	   r   r   <module>rg      sr     # c "o  8 8K K. . & &, r   