[New-bugs-announce] [issue42868] SpooledTemporaryFile.__iter__ is not transparent to rollover
Jin-oh Kang
report at bugs.python.org
Fri Jan 8 09:46:35 EST 2021
New submission from Jin-oh Kang <jinoh.kang.kr at gmail.com>:
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
----------
components: Library (Lib)
messages: 384674
nosy: jinoh.kang.kr
priority: normal
severity: normal
status: open
title: SpooledTemporaryFile.__iter__ is not transparent to rollover
type: behavior
versions: Python 3.10
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue42868>
_______________________________________
More information about the New-bugs-announce
mailing list