On Wed, Jul 27, 2011 at 6:00 PM, Nick Coghlan <ncogh...@gmail.com> wrote: > On Thu, Jul 28, 2011 at 9:38 AM, Guido van Rossum <gu...@python.org> wrote: >>> Users of codecs.open() or users of codecs.Stream* classes? >> >> I would think both. Is there any reason to continue using codecs.open()? > > It's the easiest way to write Unicode friendly code that spans both 2.x and > 3.x.
Even on 2.6, where the io module exists? > The problem is that naive 2.x code will migrate to the optimised IO > stack automatically on the 2.x -> 3.x transition, while code that > tried to do the right thing has to be changed manually (either in 3.x > only, or by switching to the io module for 2.x as well) in order to > adjust for the differences in argument order. > > The idea behind changing codecs.open to be a wrapper around io.open > was to allow such code to switch to the new optimised IO stack as > easily as code that just uses the open builtin. If it's acceptable for > the builtin behaviour to change (far more substantially), why not > change codecs.open as well? Aren't the cases different? Using built-in open() just means you want to open a file in the default way. Using codecs.open() presumably means that you've thought about Unicode. TBH, I said I was only -0 on the PEP, and if the stream returned by codecs.open() in 3.3 is sufficiently compatible with the stream returned the same function returns in 3.2, I am okay with it. (Except I also want you to cut a trillion dollars from the non-military budget, without raising taxes. :-) -- --Guido van Rossum (python.org/~guido) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com