o
    ëÉ¶dE  ã                   @   s$   d dl Z dd„ Zdd„ Zdd„ ZdS )é    Nc                 C   s   t  dt| ||  |ƒ¡S )Nr   )ÚrandomÚuniformÚmin)Úbase_sleep_time_secondsÚexponent_growth_factorÚmax_wait_between_calls_secondsÚattempt© r	   ú?usr/lib/python3.10/site-packages/oci/retry/retry_sleep_utils.pyÚ3get_exponential_backoff_with_full_jitter_sleep_time   s   r   c                 C   s*   t | ||  |ƒ}|d t d|d ¡ S )Ng       @r   ©r   r   r   )r   r   r   r   Zexponential_backoff_sleepr	   r	   r
   Ú4get_exponential_backoff_with_equal_jitter_sleep_time   s   r   c                 C   s"   t | ||d   t d|¡ |ƒS )Né   r   r   )r   r   r   r   Zdecorrelated_jitterr	   r	   r
   Ú;get_exponential_backoff_with_decorrelated_jitter_sleep_time   s   "r   )r   r   r   r   r	   r	   r	   r
   Ú<module>   s   