code: def exponential_sleep_generator(initial, maximum, multiplier=_DEFAULT_DELAY_MULTIPLIER):
      
      delay = initial
      while True:
          # Introduce jitter by yielding a delay that is uniformly distributed
          # to average out to the delay time.
          yield min(random.uniform(0.0, delay * 2.0), maximum)
          delay = delay * multiplier
docs: Generates sleep intervals based on the exponential back-off algorithm.
  
      This implements the `Truncated Exponential Back-off`_ algorithm.
  
      .. _Truncated Exponential Back-off:
          https://cloud.google.com/storage/docs/exponential-backoff
  
      Args:
          initial (float): The minimum about of time to delay. This must
              be greater than 0.
          maximum (float): The maximum about of time to delay.
          multiplier (float): The multiplier applied to the delay.
  
      Yields:
          float: successive sleep intervals.