code: def _should_recover(self, exception):
          
          exception = _maybe_wrap_exception(exception)
          # If this is in the list of idempotent exceptions, then we want to
          # recover.
          if isinstance(exception, _RETRYABLE_STREAM_ERRORS):
              _LOGGER.info("Observed recoverable stream error %s", exception)
              return True
          _LOGGER.info("Observed non-recoverable stream error %s", exception)
          return False
docs: Determine if an error on the RPC stream should be recovered.
  
          If the exception is one of the retryable exceptions, this will signal
          to the consumer thread that it should "recover" from the failure.
  
          This will cause the stream to exit when it returns :data:`False`.
  
          Returns:
              bool: Indicates if the caller should recover or shut down.
              Will be :data:`True` if the ``exception`` is "acceptable", i.e.
              in a list of retryable / idempotent exceptions.