Message384674
In tempfile, SpooledTemporaryFile.__iter__ is defined as follows:
# file protocol
def __iter__(self):
return self._file.__iter__()
A rollover would switch the underlying _file object from a BytesIO to a TemporaryFile, thereby leaving the original iterator stale.
This may be fixed by:
def __iter__(self):
while True:
line = self._file.readline()
if not line:
break
yield line
Or perhaps:
def __iter__(self):
while True:
file = self._file
for line in file:
yield line
if file is not self._file:
break
else:
break |
|
Date |
User |
Action |
Args |
2021-01-08 14:46:35 | jinoh.kang.kr | set | recipients:
+ jinoh.kang.kr |
2021-01-08 14:46:35 | jinoh.kang.kr | set | messageid: <1610117195.08.0.928321664408.issue42868@roundup.psfhosted.org> |
2021-01-08 14:46:35 | jinoh.kang.kr | link | issue42868 messages |
2021-01-08 14:46:35 | jinoh.kang.kr | create | |
|