for chunk in chunks:
    if pending is not None:
        chunk = pending + chunk
lines = chunk.splitlines()
if lines and lines[-1] and chunk and lines[-1][-1] == chunk[-1]:
    pending = lines.pop()
else:
    pending = None
for line in lines:
    yield line
if pending is not None:
    yield pending
Эффективное чтение строк из сжатого, разбитого на фрагменты потока HTTP по мере их поступления.