Skip to content

Commit 08133af

Browse files
committed
Issue python#7142: Fix uses of unicode in memoryview objects
1 parent 196b092 commit 08133af

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

Lib/test/test_memoryview.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ def test_iter(self):
5454
m = self._view(b)
5555
self.assertEqual(list(m), [m[i] for i in range(len(m))])
5656

57+
def test_repr(self):
58+
for tp in self._types:
59+
b = tp(self._source)
60+
m = self._view(b)
61+
self.assertIsInstance(m.__repr__(), str)
62+
5763
def test_setitem_readonly(self):
5864
if not self.ro_type:
5965
return
@@ -156,6 +162,7 @@ def test_compare(self):
156162
def check_attributes_with_type(self, tp):
157163
m = self._view(tp(self._source))
158164
self.assertEquals(m.format, self.format)
165+
self.assertIsInstance(m.format, str)
159166
self.assertEquals(m.itemsize, self.itemsize)
160167
self.assertEquals(m.ndim, 1)
161168
self.assertEquals(m.shape, (6,))

Objects/memoryobject.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char fort)
335335
static PyObject *
336336
memory_format_get(PyMemoryViewObject *self)
337337
{
338-
return PyUnicode_FromString(self->view.format);
338+
return PyString_FromString(self->view.format);
339339
}
340340

341341
static PyObject *
@@ -503,7 +503,7 @@ memory_dealloc(PyMemoryViewObject *self)
503503
static PyObject *
504504
memory_repr(PyMemoryViewObject *self)
505505
{
506-
return PyUnicode_FromFormat("<memory at %p>", self);
506+
return PyString_FromFormat("<memory at %p>", self);
507507
}
508508

509509
/* Sequence methods */

0 commit comments

Comments
 (0)