code: def _exponential_timeout_generator(initial, maximum, multiplier, deadline):
      
      if deadline is not None:
          deadline_datetime = datetime_helpers.utcnow() + datetime.timedelta(
              seconds=deadline
          )
      else:
          deadline_datetime = datetime.datetime.max
  
      timeout = initial
      while True:
          now = datetime_helpers.utcnow()
          yield min(
              # The calculated timeout based on invocations.
              timeout,
              # The set maximum timeout.
              maximum,
              # The remaining time before the deadline is reached.
              float((deadline_datetime - now).seconds),
          )
          timeout = timeout * multiplier
docs: A generator that yields exponential timeout values.
  
      Args:
          initial (float): The initial timeout.
          maximum (float): The maximum timeout.
          multiplier (float): The multiplier applied to the timeout.
          deadline (float): The overall deadline across all invocations.
  
      Yields:
          float: A timeout value.