code: def _should_retry(exc):
      
      if not hasattr(exc, "errors"):
          return False
  
      if len(exc.errors) == 0:
          # Check for unstructured error returns, e.g. from GFE
          return isinstance(exc, _UNSTRUCTURED_RETRYABLE_TYPES)
  
      reason = exc.errors[0]["reason"]
      return reason in _RETRYABLE_REASONS
docs: Predicate for determining when to retry.
  
      We retry if and only if the 'reason' is 'backendError'
      or 'rateLimitExceeded'.