[Python-ideas] Add a context manager to keep stream position unchanged
Dmitry Kazakov
jsbfox at gmail.com
Sun Mar 29 19:04:12 CEST 2015
I propose adding a context manager to contextlib module, which would
restore the stream position of its argument at exit:
with contextlib.closing(file_like_object) as file:
file.read(1)
old = file.tell()
with contextlib.keep_stream_position(file) as f:
assert file is f
assert file_like_object is f
# Do something with the file(-like) object e.g. feed it
# to `PIL.Image.open` (will consume the whole stream)
assert file.tell() == old
This CM would allow us to reuse streams efficiently, without requiring
to call seek() explicitly. I will open a new issue and submit a patch
in case of favorable responses.
More information about the Python-ideas
mailing list