Martin Panter added the comment:

Some more use cases for temporarily switching error handler in the middle of 
writing to a stream:
* Possibly simplify the implementation of sys.displayhook()
* I have done a similar hack at 
<https://bitbucket.org/Gfy/pyrescene/commits/42ad75e375d84e090a32d024acc865de341c22aa#Lrescene/srr.pyF132>,
 to output a comment field with a permissive error handler, while other data is 
output with strict error handling.

A use case for changing a reader’s newline translation mode is to use standard 
input with the built-in “csv” module. My current idea is to do something like 
this:

encoding = sys.stdin.encoding
errors = sys.stdin.errors
line_buffering = sys.stdin.line_buffering
# No way to retain write_through mode, but shouldn’t matter for reading
sys.stdin = TextIOWrapper(sys.stdin.detach(), encoding, errors,
    newline="", line_buffering=line_buffering)

for row in csv.reader(sys.stdin):
    ...

On the other hand, I wonder about rewinding an input file after already having 
read and buffered text in the wrong encoding. From a distance, the Python 
native version of the code seems rather complex and full of dark magic. Is 
there a use case, or maybe it would be simpler to have it only work when 
nothing has been read or buffered?

----------
nosy: +vadmium

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15216>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to