]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
* teach repr.repr() about collections.deque()
authorRaymond Hettinger <python@rcn.com>
Fri, 21 May 2004 23:01:18 +0000 (23:01 +0000)
committerRaymond Hettinger <python@rcn.com>
Fri, 21 May 2004 23:01:18 +0000 (23:01 +0000)
* rename a variable for clarity

Lib/repr.py
Lib/test/test_repr.py

index a1373063acf5597998c2c79cbc6b104f5e569858..7c0016b54e2b2a49fe86e2a4d78a19f63eb44814 100644 (file)
@@ -15,6 +15,7 @@ class Repr:
         self.maxdict = 4
         self.maxset = 6
         self.maxfrozenset = 6
+        self.maxdeque = 6
         self.maxstring = 30
         self.maxlong = 40
         self.maxother = 20
@@ -37,7 +38,7 @@ class Repr:
                 s = s[:i] + '...' + s[len(s)-j:]
             return s
 
-    def _repr_iterable(self, x, level, left, right, maxiter, final=''):
+    def _repr_iterable(self, x, level, left, right, maxiter, trail=''):
         n = len(x)
         if level <= 0 and n:
             s = '...'
@@ -47,7 +48,7 @@ class Repr:
             pieces = [repr1(elem, newlevel) for elem in islice(x, maxiter)]
             if n > maxiter:  pieces.append('...')
             s = ', '.join(pieces)
-            if n == 1 and final:  s += final
+            if n == 1 and trail:  right = trail + right
         return '%s%s%s' % (left, s, right)
 
     def repr_tuple(self, x, level):
@@ -67,6 +68,9 @@ class Repr:
         return self._repr_iterable(x, level, 'frozenset([', '])',
                                    self.maxfrozenset)
 
+    def repr_deque(self, x, level):
+        return self._repr_iterable(x, level, 'deque([', '])', self.maxdeque)
+
     def repr_dict(self, x, level):
         n = len(x)
         if n == 0: return '{}'
index b00f328702117938b997d57d684aabb143f3668f..4ded4846f6355403bc0414d86c937970abd7bfce 100644 (file)
@@ -35,6 +35,7 @@ class ReprTests(unittest.TestCase):
 
     def test_container(self):
         from array import array
+        from collections import deque
 
         eq = self.assertEquals
         # Tuples give up after 6 elements
@@ -65,6 +66,9 @@ 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
+        eq(r(deque([1, 2, 3, 4, 5, 6, 7])), "deque([1, 2, 3, 4, 5, 6, ...])")
+
         # Dictionaries give up after 4.
         eq(r({}), "{}")
         d = {'alice': 1, 'bob': 2, 'charles': 3, 'dave': 4}