Guido van Rossum wrote:
It was well understood that the bytes "type" in 2.6 and the bytes type
in 3.0 would behave quite different. Attempts to come up with a
separate bytes type that behaved more like its 3.0 counterpart were
doomed, because there just are too many places where the usage was
ambiguous. We should probably have written a PEP about this just to
prevent the discussion from being repeated all over again in this
thread.
The only two anticipated *reasonable* uses in 2.6 were the bytes
literal (b'abc') and tests for isinstance(x, bytes), which are flags
for 2to3 to keep these usages as bytes, not str.
Full ack!
I replies this to the op on the general Python list:
---
I guess you got the intention of the bytes alias wrong. It's partly my
fault because I didn't document the bytes alias. We are well aware that
the bytes alias in 2.6 isn't fully compatible with the bytes type in
3.0. The bytes alias isn't MEANT to be compatible, too. :)
At first I wanted to backport the bytes type from 3.0 to 2.6. But it was
too many work and the implications of yet another types were too
complex. So I just added the alias in order to help people with writing
forward compatible code like e.g. isinstance(egg, bytes).
Summa summarum the bytes alias was added for documentary purpose and to
aid the 2to3 transition of code where 'str' is ambiguous.
--
I have no intention of rolling this back. It isn't compatible with
3.0, but then, 2.6 and 3.0 aren't in general meant to be compatible --
2.6 is a stepping stone, but that's not the same thing. It is
backwards compatible with prior versions because it is new in 2.6, so
it shouldn't break old code. I have only limited sympathy for people
who don't read documentation in this case.
Maybe the documentation isn't clear enough what purpose the bytes alias
serves? I spent 5 minutes with the docs but I wasn't able to find a good
explanation of the bytes alias
Christian
_______________________________________________
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