def update_from_read_rows(self, read_rows_response_pb):
        if self._committed:
            raise ValueError('The row has been committed')

        if read_rows_response_pb.row_key != self.row_key:
            raise ValueError('Response row key (%r) does not match current '
                             'one (%r).' % (read_rows_response_pb.row_key,
                                            self.row_key))

        last_chunk_index = len(read_rows_response_pb.chunks) - 1
        for index, chunk in enumerate(read_rows_response_pb.chunks):
            chunk_property = chunk.WhichOneof('chunk')
            if chunk_property == 'row_contents':
                self._handle_row_contents(chunk)
            elif chunk_property == 'reset_row':
                self._handle_reset_row(chunk)
            elif chunk_property == 'commit_row':
                self._handle_commit_row(chunk, index, last_chunk_index)
            else:
                # NOTE: This includes chunk_property == None since we always
                #       want a value to be set
                raise ValueError('Unexpected chunk property: %s' % (
                    chunk_property,))

            self._chunks_encountered = True
Updates the current row from a ``ReadRows`` response.
dataset/ETHPy150Open GoogleCloudPlatform/gcloud-python/gcloud/bigtable/row_data.py/PartialRowData.update_from_read_rows