Issue 14017: Make it easy to create a new TextIOWrapper based on an existing

Issue14017

Created on 2012-02-14 23:49 by ncoghlan, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (5)
msg153376 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012-02-14 23:49
io.TextIOWrapper acquired a new "write_through" argument for 3.3, but that is not exposed as a documented attribute.

This is needed so that a text wrapper can be replaced with an equivalent that only alters selected settings (such as the Unicode error handler).
msg153377 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012-02-14 23:59
Updating issue title, since I realised this doesn't work in 3.2 either (the "newline" argument also isn't available for introspection - "newlines" is not the same thing)

Possible API signature:

    _missing = object()
    def rewrap(self, encoding=_missing, errors=_missing, newline=_missing, line_buffering=_missing, write_through=_missing):
        pass

That is, accept the same arguments as __init__ (excluding the buffer argument), with any arguments not explicitly supplied replaced with the values from the current instance.
msg220628 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2014-06-15 12:42
@Nick would you like or even need this in 3.5?
msg339487 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2019-04-05 10:04
TextIOWrapper now has reconfigure() method.
Can this issue be closed?
msg339575 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2019-04-07 12:00
Aye, let's close this for now - swapping streams out has enough other problems with stale references to the original stream that using reconfigure() to update the existing stream in place is usually going to be the better option.
History
Date User Action Args
2022-04-11 14:57:26adminsetgithub: 58225
2019-04-07 12:00:16ncoghlansetstatus: open -> closed
resolution: postponed
messages: + msg339575

stage: needs patch -> resolved

2019-04-05 10:04:49methanesetnosy: + methane
messages: + msg339487
2019-03-15 23:13:27BreamoreBoysetnosy: - BreamoreBoy
2014-06-15 12:42:15BreamoreBoysetnosy: + BreamoreBoy

messages: + msg220628
versions: + Python 3.5, - Python 3.4

2013-01-27 01:36:31ezio.melottisetnosy: + pitrou
stage: needs patch
type: enhancement

versions: + Python 3.4, - Python 3.3

2012-02-14 23:59:33ncoghlansetmessages: + msg153377
title: io.TextIOWrapper should expose a documented write_through attribute -> Make it easy to create a new TextIOWrapper based on an existing
2012-02-14 23:49:33ncoghlancreate