Skip to content

Commit fce2791

Browse files
committed
Make __repr__ more similar to other mapping types
1 parent 45105ec commit fce2791

File tree

4 files changed

+11
-25
lines changed

4 files changed

+11
-25
lines changed

immutables/_map.c

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3194,14 +3194,14 @@ map_py_repr(BaseMapObject *m)
31943194

31953195
if (MapMutation_Check(m)) {
31963196
if (_PyUnicodeWriter_WriteASCIIString(
3197-
&writer, "<immutables.MapMutation({", 25) < 0)
3197+
&writer, "MapMutation({", 13) < 0)
31983198
{
31993199
goto error;
32003200
}
32013201
}
32023202
else {
32033203
if (_PyUnicodeWriter_WriteASCIIString(
3204-
&writer, "<immutables.Map({", 17) < 0)
3204+
&writer, "Map({", 5) < 0)
32053205
{
32063206
goto error;
32073207
}
@@ -3255,16 +3255,6 @@ map_py_repr(BaseMapObject *m)
32553255
goto error;
32563256
}
32573257

3258-
PyObject *addr = PyUnicode_FromFormat(" at %p>", m);
3259-
if (addr == NULL) {
3260-
goto error;
3261-
}
3262-
if (_PyUnicodeWriter_WriteStr(&writer, addr) < 0) {
3263-
Py_DECREF(addr);
3264-
goto error;
3265-
}
3266-
Py_DECREF(addr);
3267-
32683258
Py_ReprLeave((PyObject *)m);
32693259
return _PyUnicodeWriter_Finish(&writer);
32703260

immutables/map.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -649,8 +649,7 @@ def __repr__(self):
649649
items = []
650650
for key, val in self.items():
651651
items.append("{!r}: {!r}".format(key, val))
652-
return '<immutables.Map({{{}}}) at 0x{:0x}>'.format(
653-
', '.join(items), id(self))
652+
return 'Map({{{}}})'.format(', '.join(items))
654653

655654
def __dump__(self): # pragma: no cover
656655
buf = []

tests/test_map.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -845,11 +845,10 @@ def test_map_getitem_1(self):
845845

846846
def test_repr_1(self):
847847
h = self.Map()
848-
self.assertTrue(repr(h).startswith('<immutables.Map({}) at 0x'))
848+
self.assertEqual(repr(h), 'Map({})')
849849

850850
h = h.set(1, 2).set(2, 3).set(3, 4)
851-
self.assertTrue(repr(h).startswith(
852-
'<immutables.Map({1: 2, 2: 3, 3: 4}) at 0x'))
851+
self.assertEqual(repr(h), 'Map({1: 2, 2: 3, 3: 4})')
853852

854853
def test_repr_2(self):
855854
h = self.Map()
@@ -879,8 +878,7 @@ def __repr__(self):
879878
h = h.set(k, 1)
880879
k.val = h
881880

882-
self.assertTrue(repr(h).startswith(
883-
'<immutables.Map({{...}: 1}) at 0x'))
881+
self.assertEqual(repr(h), 'Map({{...}: 1})')
884882

885883
def test_hash_1(self):
886884
h = self.Map()
@@ -964,8 +962,7 @@ def test_map_mut_3(self):
964962
h = h.set('a', 1)
965963
hm1 = h.mutate()
966964

967-
self.assertTrue(repr(hm1).startswith(
968-
"<immutables.MapMutation({'a': 1})"))
965+
self.assertEqual(repr(hm1), "MapMutation({'a': 1})")
969966

970967
with self.assertRaisesRegex(TypeError, 'unhashable type'):
971968
hash(hm1)

tests/test_none_keys.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def test_none_as_key(self):
6161
self.assertEqual(len(m), 1)
6262
self.assertTrue(None in m)
6363
self.assertEqual(m[None], 1)
64-
self.assertTrue(repr(m).startswith('<immutables.Map({None: 1}) at 0x'))
64+
self.assertEqual(repr(m), 'Map({None: 1})')
6565

6666
for level in range(7):
6767
key = NoneCollision('a', level)
@@ -72,7 +72,7 @@ def test_none_as_key(self):
7272
m = m.delete(None)
7373
self.assertEqual(len(m), 0)
7474
self.assertFalse(None in m)
75-
self.assertTrue(repr(m).startswith('<immutables.Map({}) at 0x'))
75+
self.assertEqual(repr(m), 'Map({})')
7676

7777
self.assertEqual(m, self.Map())
7878

@@ -125,7 +125,7 @@ def test_none_collision_1(self):
125125
self.assertFalse(None in m3)
126126
self.assertFalse(key in m3)
127127
self.assertEqual(m3, self.Map())
128-
self.assertTrue(repr(m3).startswith('<immutables.Map({}) at 0x'))
128+
self.assertEqual(repr(m3), 'Map({})')
129129
with self.assertRaises(KeyError):
130130
m3.delete(None)
131131
with self.assertRaises(KeyError):
@@ -144,7 +144,7 @@ def test_none_collision_1(self):
144144
self.assertFalse(None in m4)
145145
self.assertFalse(key in m4)
146146
self.assertEqual(m4, self.Map())
147-
self.assertTrue(repr(m4).startswith('<immutables.Map({}) at 0x'))
147+
self.assertEqual(repr(m4), 'Map({})')
148148
with self.assertRaises(KeyError):
149149
m4.delete(None)
150150
with self.assertRaises(KeyError):

0 commit comments

Comments
 (0)