[Python-Dev] Status of the PEP 400? (deprecate codecs.StreamReader/StreamWriter)

Victor Stinner victor.stinner at haypocalc.com
Thu Jul 28 11:28:43 CEST 2011


Le 28/07/2011 11:03, M.-A. Lemburg a écrit :
> Victor Stinner wrote:
>> Hi,
>>
>> Three weeks ago, I posted a draft on my PEP on this mailing list. I
>> tried to include all remarks you made, and the PEP is now online:
>>
>>     http://www.python.org/dev/peps/pep-0400/
>>
>> It's now unclear to me if the PEP will be accepted or rejected. I don't
>> know what to do to move forward.
>
> The PEP still compares apples and oranges, issues and features,

I don't know how to write a PEP and this is my first PEP. I think that 
it is possible to compare two classes using a list of issues and 
features. How should I change the PEP to compare comparable things?

> and doesn't cover the fact that it is proposing to not just deprecate
> a feature, but a part of a design concept which will then no longer
> be available in Python.

The "Usage of StreamReader and StreamWriter" section tries to list 
usages of these classes, and "Deprecate StreamReader and StreamWriter" 
section explains that these classes will be removed. I agree that these 
sections are short, but I don't know what to add.

Could you please enhance these sections?

> I'm still -1 on that part of the PEP.

Ok.

> As I mentioned before, having
> codecs.open() changed to be a wrapper around io.open() in Python 3.3,
> should be investigated. If it doesn't cause too much trouble, this
> would be a good idea.

I did already try on the full Python test suite, and all test pass. I 
don't know if it's representative.

> Please do keep the original implementation
> around (e.g. renamed to codecs.open_stream()), though, so that it's
> still possible to get easy-to-use access to codec StreamReader/Writers.

I will add your alternative to the PEP (except if you would like to do 
that yourself?). If I understood correctly, you propose to:

  * rename codecs.open() to codecs.open_stream()
  * change codecs.open() to reuse open() (and so io.TextIOWrapper)

(and don't deprecate anything)

Add a new function to Python 3.3 means that we will have to maintain it 
for later versions. It's just the opposite of my proposition :-)

Victor


More information about the Python-Dev mailing list