'stream(source_file, [error_handling])
This method yield SubRipItem instances a soon as they have been parsed
without storing them. It is a kind of SAX parser for .srt files.
`source_file` -> Any iterable that yield unicode strings, like a file
opened with `codecs.open()` or an array of unicode.
Example:
>>> import pysrt
>>> import codecs
>>> file = codecs.open(\'movie.srt\', encoding=\'utf-8\')
>>> for sub in pysrt.stream(file):
...     sub.text += "
Hello !"
...     print unicode(sub)'

@classmethod
def stream(cls, source_file, error_handling=ERROR_PASS):

    string_buffer = []
    for (index, line) in enumerate(chain(source_file, '\n')):
        if line.strip():
            string_buffer.append(line)
        else:
            source = string_buffer
            string_buffer = []
            if (source and all(source)):
                try:
                    (yield SubRipItem.from_lines(source))
                except Error as error:
                    error.args += (''.join(source),)
                    cls._handle_error(error, error_handling, index)
