Issue #7142: Fix uses of unicode in memoryview objects
diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py
index 571481e..0caf5ec 100644
--- a/Lib/test/test_memoryview.py
+++ b/Lib/test/test_memoryview.py
@@ -54,6 +54,12 @@
m = self._view(b)
self.assertEqual(list(m), [m[i] for i in range(len(m))])
+ def test_repr(self):
+ for tp in self._types:
+ b = tp(self._source)
+ m = self._view(b)
+ self.assertIsInstance(m.__repr__(), str)
+
def test_setitem_readonly(self):
if not self.ro_type:
return
@@ -156,6 +162,7 @@
def check_attributes_with_type(self, tp):
m = self._view(tp(self._source))
self.assertEquals(m.format, self.format)
+ self.assertIsInstance(m.format, str)
self.assertEquals(m.itemsize, self.itemsize)
self.assertEquals(m.ndim, 1)
self.assertEquals(m.shape, (6,))
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index 9427522..21e0645 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -335,7 +335,7 @@
static PyObject *
memory_format_get(PyMemoryViewObject *self)
{
- return PyUnicode_FromString(self->view.format);
+ return PyString_FromString(self->view.format);
}
static PyObject *
@@ -503,7 +503,7 @@
static PyObject *
memory_repr(PyMemoryViewObject *self)
{
- return PyUnicode_FromFormat("<memory at %p>", self);
+ return PyString_FromFormat("<memory at %p>", self);
}
/* Sequence methods */