[1.8.x] Refs #23763 -- Fixed Python 3.5 PendingDeprecationWarning in LazyStream.

Fixed "PendingDeprecationWarning: generator 'LazyStream.read.<locals>.parts'
raised StopIteration" per PEP 0479.

Backport of 3f2de80318 from master
This commit is contained in:
Tim Graham 2015-06-16 11:46:32 -04:00
parent e2ea30c440
commit 2a36a9bb15
1 changed files with 9 additions and 6 deletions

View File

@ -327,12 +327,15 @@ class LazyStream(six.Iterator):
while remaining != 0:
assert remaining > 0, 'remaining bytes to read should never go negative'
chunk = next(self)
emitting = chunk[:remaining]
self.unget(chunk[remaining:])
remaining -= len(emitting)
yield emitting
try:
chunk = next(self)
except StopIteration:
return
else:
emitting = chunk[:remaining]
self.unget(chunk[remaining:])
remaining -= len(emitting)
yield emitting
out = b''.join(parts())
return out