
    Ki
                     ,   d dl mZmZmZ d dlmZmZ d dlmZm	Z	 dee   defdZ
dedef   defd	Zd
ededededef
dZ ed      Zdedeee   df   d
ededededeeeef   f   dededefdZdedeee   df   d
ededededef   dededefdZy)    )	AwaitableCallable	Coroutine)AnyTypeVar)asleepsleep	awaitablereturnc                 "   K   |  d{   S 7 w)zW
    Equivalent to await awaitable, converted to await awaitable by async_to_sync.
    N )r
   s    i/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/key_value/shared/code_gen/run.pyawait_awaitabler      s      ??s   function.c                      |        S )zM
    Equivalent to function(), converted to function() by async_to_sync.
    r   )r   s    r   run_functionr      s     :    initial_delay	max_delayexponential_baseattemptc                 *    | ||z  z  }t        ||      S )zBCalculate the delay for a given attempt using exponential backoff.)min)r   r   r   r   delays        r   _calculate_delayr      s    -w67Eui  r   Tmax_retriesretry_on	operationargskwargsc                    K   d}t        | dz         D ]  }		  ||i | d{   c S  |r|d}t        |      7 # |$ r5}
|
}|	| k  r#t        ||||	      }t        |       d{  7   n Y d}
~
_d}
~
ww xY wwz&Execute an operation with retry logic.N   z(Retry operation failed without exception)ranger   r   RuntimeErrorr   r   r   r   r   r   r    r!   last_exceptionr   er   msgs                r   async_retry_operationr+      s      (,Nq) 
		"D3F333
 
4C
s
 4 	N$(	CSU\]Um##  $		sC   A:=;=A:=A7#A2%A(&A2-A:2A77A:c                     d}t        | dz         D ]  }		  ||i |c S  |r|d}t        |      # |$ r,}
|
}|	| k  rt        ||||	      }t        |       n Y d}
~
Ld}
~
ww xY wr#   )r%   r   r	   r&   r'   s                r   retry_operationr-   >   s     (,Nq) 
		d-f--
 
4C
s
  	N$(	CSU\]e  		s   1A""AA"N)collections.abcr   r   r   typingr   r   key_value.shared.code_gen.sleepr   r	   r   r   floatintr   r   tupletype	Exceptionr+   r-   r   r   r   <module>r6      sj   : :  9Ys^  8CH- # !E !e !u !_b !gl ! CLDOS()  	
  YsC{334   @DOS()  	
  Q   r   