This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author jinoh.kang.kr
Recipients jinoh.kang.kr
Date 2021-01-08.14:46:35
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1610117195.08.0.928321664408.issue42868@roundup.psfhosted.org>
In-reply-to
Content
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
History
Date User Action Args
2021-01-08 14:46:35jinoh.kang.krsetrecipients: + jinoh.kang.kr
2021-01-08 14:46:35jinoh.kang.krsetmessageid: <1610117195.08.0.928321664408.issue42868@roundup.psfhosted.org>
2021-01-08 14:46:35jinoh.kang.krlinkissue42868 messages
2021-01-08 14:46:35jinoh.kang.krcreate