[Python-3000-checkins] r58808 - in python/branches/py3k-pep3137: Lib/uuid.py Objects/stringobject.c

guido.van.rossum python-3000-checkins at python.org
Fri Nov 2 22:32:46 CET 2007


Author: guido.van.rossum
Date: Fri Nov  2 22:32:46 2007
New Revision: 58808

Modified:
   python/branches/py3k-pep3137/Lib/uuid.py
   python/branches/py3k-pep3137/Objects/stringobject.c
Log:
Fix test_uuid.py.
This meant restoring reversed(b"...") functionality,
by putting back string_item().


Modified: python/branches/py3k-pep3137/Lib/uuid.py
==============================================================================
--- python/branches/py3k-pep3137/Lib/uuid.py	(original)
+++ python/branches/py3k-pep3137/Lib/uuid.py	Fri Nov  2 22:32:46 2007
@@ -234,7 +234,7 @@
 
     @property
     def bytes(self):
-        bytes = b''
+        bytes = buffer()
         for shift in range(0, 128, 8):
             bytes.insert(0, (self.int >> shift) & 0xff)
         return bytes

Modified: python/branches/py3k-pep3137/Objects/stringobject.c
==============================================================================
--- python/branches/py3k-pep3137/Objects/stringobject.c	(original)
+++ python/branches/py3k-pep3137/Objects/stringobject.c	Fri Nov  2 22:32:46 2007
@@ -810,6 +810,16 @@
     return memchr(PyString_AS_STRING(self), ival, Py_Size(self)) != NULL;
 }
 
+static PyObject *
+string_item(PyStringObject *a, register Py_ssize_t i)
+{
+	if (i < 0 || i >= Py_Size(a)) {
+		PyErr_SetString(PyExc_IndexError, "string index out of range");
+		return NULL;
+	}
+	return PyInt_FromLong((unsigned char)a->ob_sval[i]);
+}
+
 static PyObject*
 string_richcompare(PyStringObject *a, PyStringObject *b, int op)
 {
@@ -981,7 +991,7 @@
 	(lenfunc)string_length, /*sq_length*/
 	(binaryfunc)string_concat, /*sq_concat*/
 	(ssizeargfunc)string_repeat, /*sq_repeat*/
-	0,		/*sq_item*/
+	(ssizeargfunc)string_item, /*sq_item*/
 	0,		/*sq_slice*/
 	0,		/*sq_ass_item*/
 	0,		/*sq_ass_slice*/


More information about the Python-3000-checkins mailing list