def follow(self):
trailing = True       <EOL>while True:<EOL><INDENT>where = self.file.tell()<EOL>if where > os.fstat(self.file.fileno()).st_size:<EOL><INDENT>where = <NUM_LIT:0><EOL>self.file.seek(where)<EOL><DEDENT>line = self.file.readline()<EOL>if line:    <EOL><INDENT>if trailing and line in self.LINE_TERMINATORS:<EOL><INDENT>trailing = False<EOL>continue<EOL><DEDENT>terminator = self.suffix_line_terminator(line)<EOL>if terminator:<EOL><INDENT>line = line[:-len(terminator)]<EOL><DEDENT>trailing = False<EOL>yield line<EOL><DEDENT>else:<EOL><INDENT>trailing = True<EOL>self.file.seek(where)<EOL>yield None<EOL><DEDENT><DEDENT>
Iterator generator that returns lines as data is added to the file.

None will be yielded if no new line is available.
Caller may either wait and re-try or end iteration.