def getNextRecord(self, useCache=True):
assert self._file is not None<EOL>assert self._mode == self._FILE_READ_MODE<EOL>try:<EOL><INDENT>line = self._reader.next()<EOL><DEDENT>except StopIteration:<EOL><INDENT>if self.rewindAtEOF:<EOL><INDENT>if self._recordCount == <NUM_LIT:0>:<EOL><INDENT>raise Exception("<STR_LIT>"<EOL>"<STR_LIT>" % self._filename)<EOL><DEDENT>self.rewind()<EOL>line = self._reader.next()<EOL><DEDENT>else:<EOL><INDENT>return None<EOL><DEDENT><DEDENT>self._recordCount += <NUM_LIT:1><EOL>record = []<EOL>for i, f in enumerate(line):<EOL><INDENT>if f in self._missingValues:<EOL><INDENT>record.append(SENTINEL_VALUE_FOR_MISSING_DATA)<EOL><DEDENT>else:<EOL><INDENT>record.append(self._adapters[i](f))<EOL><DEDENT><DEDENT>return record<EOL>
Returns next available data record from the file.

        :returns: a data row (a list or tuple) if available; None, if no more
                  records in the table (End of Stream - EOS); empty sequence (list
                  or tuple) when timing out while waiting for the next record.