class_docstr: Wait strategy that applies exponential backoff.
  
  It allows for a customized multiplier and an ability to restrict the
  upper and lower limits to some maximum and minimum value.
  
  The intervals are fixed (i.e. there is no jitter), so this strategy is
  suitable for balancing retries against latency when a required resource is
  unavailable for an unknown duration, but *not* suitable for resolving
  contention between multiple processes for a shared resource. Use
  wait_random_exponential for the latter case.
code: def __call__(self, retry_state):
      try:
          exp = self.exp_base ** (retry_state.attempt_number - 1)
          result = self.multiplier * exp
      except OverflowError:
          return self.max
      return max(max(0, self.min), min(result, self.max))
  
imports: import abc
  import random
  import six
  from tenacity import _utils
label_desc: Use image node_id 2 for calling the wait_exponential obj's underlying member method code with example usage: obj.__call__(retry_state) and returns: max, self