class_docstr: Wait strategy that applies exponential backoff and jitter.
  
  It allows for a customized initial wait, maximum wait and jitter.
  
  This implements the strategy described here:
  https://cloud.google.com/storage/docs/retry-strategy
  
  The wait time is min(initial * 2**n + random.uniform(0, jitter), maximum)
  where n is the retry count.
class_docstr_tok: ["Wait","strategy","that","applies","exponential","backoff","and","jitter",".","It","allows","for","a","customized","initial","wait",",","maximum","wait","and","jitter",".","This","implements","the","strategy","described","here",":","https",":","\/\/cloud.google.com\/storage\/docs\/retry-strategy","The","wait","time","is","min","(","initial","*","2","*","*","n","+","random.uniform","(","0",",","jitter",")",",","maximum",")","where","n","is","the","retry","count","."]
code: def __init__(
      self,
      initial: float = 1,
      max: float = _utils.MAX_WAIT,  # noqa
      exp_base: float = 2,
      jitter: float = 1,
  ) -> None:
      self.initial = initial
      self.max = max
      self.exp_base = exp_base
      self.jitter = jitter
  
imports: import abc
  import random
  import typing
  from tenacity import _utils
label_desc: Use image node_id 1 to create a new wait_exponential_jitter object from inherited base classes: wait_base with example: obj = wait_exponential_jitter(initial, max, exp_base, jitter)