Ë
    U¼Sf?  ã                   ó:   — d dl Z d dlZdZdZdZdZ	  G d„ d«      Zy)é    Né   g      ð?gš™™™™™¹?g       @c                   óL   — e Zd ZdZeeeefd„Zd„ Z	d„ Z
ed„ «       Zed„ «       Zy)ÚExponentialBackoffa>  An exponential backoff iterator. This can be used in a for loop to
    perform requests with exponential backoff.

    Args:
        total_attempts Optional[int]:
            The maximum amount of retries that should happen.
            The default value is 3 attempts.
        initial_wait_seconds Optional[int]:
            The amount of time to sleep in the first backoff. This parameter
            should be in seconds.
            The default value is 1 second.
        randomization_factor Optional[float]:
            The amount of jitter that should be in each backoff. For example,
            a value of 0.1 will introduce a jitter range of 10% to the
            current backoff period.
            The default value is 0.1.
        multiplier Optional[float]:
            The backoff multipler. This adjusts how much each backoff will
            increase. For example a value of 2.0 leads to a 200% backoff
            on each attempt. If the initial_wait is 1.0 it would look like
            this sequence [1.0, 2.0, 4.0, 8.0].
            The default value is 2.0.
    c                 ól   — || _         || _        | j                  | _        || _        || _        d| _        y ©Nr   )Ú_total_attemptsÚ_initial_wait_secondsÚ_current_wait_in_secondsÚ_randomization_factorÚ_multiplierÚ_backoff_count)ÚselfÚtotal_attemptsÚinitial_wait_secondsÚrandomization_factorÚ
multipliers        ú_C:\Users\user\Documents\project_loop\venv\Lib\site-packages\google/auth/_exponential_backoff.pyÚ__init__zExponentialBackoff.__init__@   s:   € ð  .ˆÔØ%9ˆÔ"à(,×(BÑ(BˆÔ%à%9ˆÔ"Ø%ˆÔØˆÕó    c                 ó6   — d| _         | j                  | _        | S r   )r   r	   r
   ©r   s    r   Ú__iter__zExponentialBackoff.__iter__P   s   € ØˆÔØ(,×(BÑ(BˆÔ%Øˆr   c                 ó|  — | j                   | j                  k\  rt        ‚| xj                   dz  c_         | j                  | j                  z  }t        j                  | j                  |z
  | j                  |z   «      }t        j                  |«       | xj                  | j                  z  c_        | j                   S )Né   )
r   r   ÚStopIterationr
   r   ÚrandomÚuniformÚtimeÚsleepr   )r   Újitter_varianceÚjitters      r   Ú__next__zExponentialBackoff.__next__U   sž   € Ø×Ñ $×"6Ñ"6Ò6ÜÐØ×Ò˜qÑ Õà×7Ñ7¸$×:TÑ:TÑTˆÜ—‘Ø×)Ñ)¨OÑ;Ø×)Ñ)¨OÑ;ó
ˆô
 	�
‰
�6Ôà×%Ò%¨×)9Ñ)9Ñ9Õ%Ø×"Ñ"Ð"r   c                 ó   — | j                   S )z7The total amount of backoff attempts that will be made.)r   r   s    r   r   z!ExponentialBackoff.total_attemptse   s   € ð ×#Ñ#Ð#r   c                 ó   — | j                   S )z;The current amount of backoff attempts that have been made.)r   r   s    r   Úbackoff_countz ExponentialBackoff.backoff_countj   s   € ð ×"Ñ"Ð"r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú_DEFAULT_RETRY_TOTAL_ATTEMPTSÚ!_DEFAULT_INITIAL_INTERVAL_SECONDSÚ_DEFAULT_RANDOMIZATION_FACTORÚ_DEFAULT_MULTIPLIERr   r   r"   Úpropertyr   r%   © r   r   r   r   '   sL   „ ñð4 5Ø>Ø:Ø&ó ò ò
#ð  ñ$ó ð$ð ñ#ó ñ#r   r   )r   r   r*   r+   r,   r-   r   r/   r   r   ú<module>r0      s>   ðó Û ð !"Ð ð %(Ð !ð !$Ð ð Ð ð÷F#ò F#r   