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/struct.py b/Lib/struct.py
index 10085b7..45f6729 100644
--- a/Lib/struct.py
+++ b/Lib/struct.py
@@ -26,8 +26,6 @@
The variable struct.error is an exception raised on errors.
"""
-# XXX Move the bytes and str8 casts into the _struct module
-
__version__ = '3.0'
@@ -36,7 +34,9 @@
class Struct(_Struct):
def __init__(self, fmt):
if isinstance(fmt, str):
- fmt = str8(fmt, 'latin1')
+ fmt = bytes(fmt, 'ascii')
+ elif isinstance(fmt, buffer):
+ fmt = bytes(fmt)
_Struct.__init__(self, fmt)
_MAXCACHE = 100