def reset_stream(self): # Trying to reset a stream when there is a no stream will # just immediately return. It's not an error, it will produce # the same result as if we had actually reset the stream (we'll send # the entire body contents again if we need to). # Same case if the body is a string/bytes type. if self.body is None or isinstance(self.body, six.text_type) or \ isinstance(self.body, six.binary_type): return try: logger.debug("Rewinding stream: %s", self.body) self.body.seek(0) except Exception as e: logger.debug("Unable to rewind stream: %s", e) raise UnseekableStreamError(stream_object=self.body)
def reset_stream(self): """Resets the streaming body to it's initial position. If the request contains a streaming body (a streamable file-like object) seek to the object's initial position to ensure the entire contents of the object is sent. This is a no-op for static bytes-like body types. """ # Trying to reset a stream when there is a no stream will # just immediately return. It's not an error, it will produce # the same result as if we had actually reset the stream (we'll send # the entire body contents again if we need to). # Same case if the body is a string/bytes/bytearray type. non_seekable_types = (six.binary_type, six.text_type, bytearray) if self.body is None or isinstance(self.body, non_seekable_types): return try: logger.debug("Rewinding stream: %s", self.body) self.body.seek(0) except Exception as e: logger.debug("Unable to rewind stream: %s", e) raise UnseekableStreamError(stream_object=self.body)