diff -r 8111ee79d27c Lib/reprlib.py --- a/Lib/reprlib.py Mon Nov 10 10:21:03 2014 +0200 +++ b/Lib/reprlib.py Mon Nov 10 10:31:21 2014 +0200 @@ -83,7 +83,9 @@ class Repr: return self._repr_iterable(x, level, '[', ']', self.maxlist) def repr_array(self, x, level): - header = "array('%s', [" % x.typecode + if not x: + return "array(%r)" % x.typecode + header = "array(%r, [" % x.typecode return self._repr_iterable(x, level, header, '])', self.maxarray) def repr_set(self, x, level): diff -r 8111ee79d27c Lib/test/test_reprlib.py --- a/Lib/test/test_reprlib.py Mon Nov 10 10:21:03 2014 +0200 +++ b/Lib/test/test_reprlib.py Mon Nov 10 10:31:21 2014 +0200 @@ -83,7 +83,11 @@ class ReprTests(unittest.TestCase): eq(r(frozenset([1, 2, 3, 4, 5, 6])), "frozenset({1, 2, 3, 4, 5, 6})") eq(r(frozenset([1, 2, 3, 4, 5, 6, 7])), "frozenset({1, 2, 3, 4, 5, 6, ...})") - # collections.deque after 6 + # collections.deque give up after 6 as well + eq(r(deque([])), "deque([])") + eq(r(deque([1])), "deque([1])") + eq(r(deque([1, 2, 3])), "deque([1, 2, 3])") + eq(r(deque([1, 2, 3, 4, 5, 6])), "deque([1, 2, 3, 4, 5, 6])") eq(r(deque([1, 2, 3, 4, 5, 6, 7])), "deque([1, 2, 3, 4, 5, 6, ...])") # Dictionaries give up after 4. @@ -94,7 +98,7 @@ class ReprTests(unittest.TestCase): eq(r(d), "{'alice': 1, 'arthur': 1, 'bob': 2, 'charles': 3, ...}") # array.array after 5. - eq(r(array('i')), "array('i', [])") + eq(r(array('i')), "array('i')") eq(r(array('i', [1])), "array('i', [1])") eq(r(array('i', [1, 2])), "array('i', [1, 2])") eq(r(array('i', [1, 2, 3])), "array('i', [1, 2, 3])")