'Returns the next input from as an (offset, line) tuple.'

def next(self):

    self._has_iterated = True
    if self._read_before_start:
        self._blob_reader.readline()
        self._read_before_start = False
    start_position = self._blob_reader.tell()
    if (start_position >= self._end_position):
        raise StopIteration()
    line = self._blob_reader.readline()
    if (not line):
        raise StopIteration()
    return (start_position, line.rstrip('\n'))
