Merging the py3k-pep3137 branch back into the py3k branch.
No detailed change log; just check out the change log for the py3k-pep3137
branch. The most obvious changes:
- str8 renamed to bytes (PyString at the C level);
- bytes renamed to buffer (PyBytes at the C level);
- PyString and PyUnicode are no longer compatible.
I.e. we now have an immutable bytes type and a mutable bytes type.
The behavior of PyString was modified quite a bit, to make it more
bytes-like. Some changes are still on the to-do list.
diff --git a/Lib/encodings/idna.py b/Lib/encodings/idna.py
index b81e5fa..30f507a 100644
--- a/Lib/encodings/idna.py
+++ b/Lib/encodings/idna.py
@@ -151,9 +151,9 @@
raise UnicodeError("unsupported error handling "+errors)
if not input:
- return b"", 0
+ return b'', 0
- result = b""
+ result = buffer()
labels = dots.split(input)
if labels and not labels[-1]:
trailing_dot = b'.'
@@ -165,7 +165,7 @@
# Join with U+002E
result.extend(b'.')
result.extend(ToASCII(label))
- return result+trailing_dot, len(input)
+ return bytes(result+trailing_dot), len(input)
def decode(self, input, errors='strict'):
@@ -216,7 +216,7 @@
if labels:
trailing_dot = b'.'
- result = b""
+ result = buffer()
size = 0
for label in labels:
if size:
@@ -228,7 +228,7 @@
result += trailing_dot
size += len(trailing_dot)
- return (result, size)
+ return (bytes(result), size)
class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
def _buffer_decode(self, input, errors, final):