[Python-ideas] changing sys.stdout encoding
Amaury Forgeot d'Arc
amauryfa at gmail.com
Tue Jun 5 23:22:27 CEST 2012
2012/6/5 Stephen J. Turnbull <stephen at xemacs.org>
> I wouldn't object to a method with the semantics of reinitialization,
> but it should have a name implying reinitialization. It probably
> should also error if the stream is open and has been written to.
>
What do you think of the following method TextIOWrapper.reset_encoding?
(the assert statements should certainly be replaced by some IOError)
::
def reset_encoding(self, encoding, errors='strict'):
if self._decoder:
# No decoded chars awaiting read
assert self._decoded_chars_used == len(self._decoded_chars)
# Nothing in the input buffer
buf, flag = self._decoder.getstate()
assert buf == b''
if self._encoder:
# Nothing in the output buffer
buf = self._encoder.encode('', final=True)
assert buf == b''
# Reset the decoders
self._decoder = None
self._encoder = None
# Now change the encoding
self._encoding = encoding
self._errors = errors
--
Amaury Forgeot d'Arc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20120605/457ab1b7/attachment.html>
More information about the Python-ideas
mailing list