
    gv                     N    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
y)    N)	timedelta)_init_wait_gen_maybe_call
_next_waitc                 T    |||||d}|j                  |       | D ]
  } ||        y )Ntargetargskwargstrieselapsed)update)	hdlrsr	   r
   r   r   r   extradetailshdlrs	            B/var/www/openai/venv/lib/python3.12/site-packages/backoff/_sync.py_call_handlersr   
   s7    G NN5W     c                f    	 t        j                          	f
d       }
|
S )Nc                  F  
 t              }t              }d}t        j                  j                         }t              }	 |dz  }t	        j
                  t        j                  j                         |z
        }| |||d} | i |}	 |	      r^||k(  }
|d uxr ||k\  }|
s|rt        fi |d|	i 	 |	S 	 t        ||	||      }t        fi ||	|d t        j                  |       t        fi |d|	i 	 |	S # t        $ r t        fi | Y |	S w xY w)Nr      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   sm   %i0$X.!!%%'h8QJE--h.?.?.C.C.E.MNG  "G $)&)C~&+&>"%34%? &?%,%> " &):"9CCsC$ 
!(sFG)79G z 8W 8%(w8 

7#z@W@C@
 % "988 
s   >D D D 	functoolswraps)r	   r0   r/   r+   r*   r)   r.   r,   r-   r1   r2   s   `````````` r   retry_predicater6      s.     __V, , ,\ Lr   c       	         n    	
 t        j                         	
 fd       }|S )Nc                  t   t              }t              }d}t        j                  j                         }t              }	 |dz  }t	        j
                  t        j                  j                         |z
        }| |||d}	  | i |}	t        fi | |	S # $ r}
||k(  }|d uxr ||k\  } |
      s|s|rt        fi |d|
i r Y d }
~
y 	 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   r   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$X.!!%%'h8QJE--h.?.?.C.C.E.MNG  "Gd-f-0 z5W5
3  $&+&>"%34%? &?%,%> " !9 26G"9EE1E&(q&')79G$ "9EE1EG z ,W ,7)*, 

7##+$ s0   B D6"/D1C'&D1'D)D11D6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
5p5r   