
    Ngv                     P    d dl Z d dlZd dlZd dl mZ d dlmZmZmZ d Zd Z	d Z
dS )    N)	timedelta)_init_wait_gen_maybe_call
_next_waitc                 `    |||||d}|                     |           | D ]} ||           d S )Ntargetargskwargstrieselapsed)update)	hdlrsr	   r
   r   r   r   extradetailshdlrs	            I/var/www/html/ai-engine/env/lib/python3.11/site-packages/backoff/_sync.py_call_handlersr   
   sY     G NN5  W     c                j    	 t          j                    	f
d            }
|
S )Nc                  n  
 t                    }t                    }d}t          j                                        }t                    }	 |dz  }t	          j        t          j                                        |z
            }| |||d} | i |}	 |	          r||k    }
|d uo||k    }|
s|rt          fi |d|	i nk	 t          ||	||          }n# t          $ r t          fi | Y n=w xY wt          fi ||	|d t          j
        |           t          fi |d|	i 	 |	S )Nr   T   r   value)r   waitr   datetimenowr   r   total_secondsr   r   StopIterationtimesleep)r
   r   max_tries_valuemax_time_valuer   startr   r   r   retmax_tries_exceededmax_time_exceededsecondsjittermax_time	max_tries
on_backoff	on_giveup
on_success	predicater	   wait_genwait_gen_kwargss                r   retryzretry_predicate.<locals>.retry   s   %i00$X..!%%''h88#	QJE-h.?.C.C.E.E.MNNG  " G &$)&))Cy~~ &+&>"%34%? &?%,%> " & ): "9CCCCsCCCC(sFG)79 9GG$   "988888E z 8 8W 8%(w8 8 8 8 8 
7###z@@W@@C@@@@
s   C C98C9	functoolswraps)r	   r0   r/   r+   r*   r)   r.   r,   r-   r1   r2   s   `````````` r   retry_predicater6      sq     _V, , , , , , , , , , , , , ,\ Lr   c       	         r    	
 t          j                   	
 fd            }|S )Nc                     t                    }t                    }d}t          j                                        }t                    }	 |dz  }t	          j        t          j                                        |z
            }| |||d}	  | i |}	t          fi | |	S # $ r}
||k    }|d uo||k    } |
          s|s|rt          fi |d|
i r Y d }
~
d S 	 t          ||
||          }n!# t          $ r t          fi |d|
i |
w xY wt          fi |||
d t          j
        |           Y d }
~
nd }
~
ww xY w)Nr   Tr   r   	exception)r   r9   r   )r
   r   r"   r#   r   r$   r   r   r   r%   er&   r'   r(   r9   giveupr)   r*   r+   r,   r-   r.   raise_on_giveupr	   r0   r1   s                 r   r2   zretry_exception.<locals>.retryU   s'   %i00$X..!%%''h88&	QJE-h.?.C.C.E.E.MNNG  " Gfd-f--0 z55W555
3  $ $ $&+&>"%34%? &?%,%> " 6!99   2  6G  "9EEEE1EEEE& 44444(q&')79 9GG$   "9EEEE1EEEEG z , ,W ,7)*, , , , , 
7########+$&	s0   B) )E.3E(C<;E<D)EEr3   )r	   r0   r9   r+   r*   r)   r;   r.   r,   r-   r<   r1   r2   s   ```````````` r   retry_exceptionr=   O   s}     _V- - - - - - - - - - - - - - - -\ Lr   )r   r4   r    r   backoff._commonr   r   r   r   r6   r=    r   r   <module>r@      s                E E E E E E E E E E
 
 
5 5 5p5 5 5 5 5r   