
In the grander scheme of things, I worry that interpreting byte strings as integers and implementing bitwise operators on them is going to cause more confusion and isn't generally useful enough to warrant the extra code. I'd be okay with a standard API to transform a byte array into an integer and vice versa -- there you can be explicit about byte order and what to do about negative numbers.
For some background, I think the separation of text and data is a powerful idea, and now that I have my nice builtin object for data (and its mutable cousin), I want to be able to manipulate the raw data directly. Currently, all of the bitwise manipulations live in the int type (for what I like to think of as historical reasons). Currently, when manipulating a byte at a time, the bytes type does the right thing and shows the elements as ints, giving me access to these bitwise manipulations. However there currently lacks builtin functionality to manipulate multi-bytes chunks. In the grander scheme of things, this is what I would like to see addressed. The most general solution, which Guido mentions, and which I have also been thinking about, is a builtin conversion from bytes to ints that explicitly requires resolving ambiguities (eg endianness, negatives, data length). I personally use those pretty gross hacks to fake the functionality now, but they assumes big-endian, two's complement etc. I proposed direct bitwise operators (~ & ^ |) for bytes because these seemed to be the subset of all bitwise manipulations that were (mostly) unambiguous for raw bytes. Even if python gains conversions between bytes and ints, I still think these unambiguous operations would be useful to have (especially ~, the most unambiguous among them). -Eric