code: def read_stream(self, file: IO, data_stream: DataStream) -> Reply:
          '''Read from the data stream.
  
          Args:
              file: A destination file object or a stream writer.
              data_stream: The stream of which to read from.
  
          Coroutine.
  
          Returns:
              Reply: The final reply.
          '''
  
          yield from data_stream.read_file(file=file)
  
          reply = yield from self._control_stream.read_reply()
  
          self.raise_if_not_match(
              'End stream',
              ReplyCodes.closing_data_connection,
              reply
          )
  
          data_stream.close()
  
          return replf read_stream(self, file: IO, data_stream: DataStream) -> Reply:
          '''Read from the data stream.
  
          Args:
              file: A destination file object or a stream writer.
              data_stream: The stream of which to read from.
  
          Coroutine.
  
          Returns:
              Reply: The final reply.
          '''
  
          yield from data_stream.read_file(file=file)
  
          reply = yield from self._control_stream.read_reply()
  
          self.raise_if_not_match(
              'End stream',
              ReplyCodes.closing_data_connection,
              reply
          )
  
          data_stream.close()
  
          return reply
docs: Read from the data stream.
  
          Args:
              file: A destination file object or a stream writer.
              data_stream: The stream of which to read from.
  
          Coroutine.
  
          Returns:
              Reply: The final reply.