diff options
author | Tim Peters <tim.peters@gmail.com> | 2003-02-05 18:29:34 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2003-02-05 18:29:34 (GMT) |
commit | 6ee0480521901d3e84769d1590603f89efd456a4 (patch) | |
tree | 9ecc2d6febd0422f8ea6018c7625a02c7b636f60 | |
parent | 5c4ded2c3b59aa134b82ab17cdfe7ab633194ca6 (diff) | |
download | cpython-6ee0480521901d3e84769d1590603f89efd456a4.zip cpython-6ee0480521901d3e84769d1590603f89efd456a4.tar.gz cpython-6ee0480521901d3e84769d1590603f89efd456a4.tar.bz2 |
[680789] Debug with long array takes forever
Added array.array to the types repr.py knows about, after a suggestion
from Jurjen N.E. Bos.
-rw-r--r-- | Lib/repr.py | 18 | ||||
-rw-r--r-- | Lib/test/test_repr.py | 12 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 33 insertions, 0 deletions
diff --git a/Lib/repr.py b/Lib/repr.py index c69ce28..0431857 100644 --- a/Lib/repr.py +++ b/Lib/repr.py @@ -7,6 +7,7 @@ class Repr: self.maxlevel = 6 self.maxtuple = 6 self.maxlist = 6 + self.maxarray = 5 self.maxdict = 4 self.maxstring = 30 self.maxlong = 40 @@ -48,6 +49,23 @@ class Repr: s = s + self.repr1(x[i], level-1) if n > self.maxlist: s = s + ', ...' return '[' + s + ']' + + def repr_array(self, x, level): + n = len(x) + header = "array('%s', [" % x.typecode + if n == 0: + return header + "])" + if level <= 0: + return header + "...])" + s = '' + for i in range(min(n, self.maxarray)): + if s: + s += ', ' + s += self.repr1(x[i], level-1) + if n > self.maxarray: + s += ', ...' + return header + s + "])" + def repr_dict(self, x, level): n = len(x) if n == 0: return '{}' diff --git a/Lib/test/test_repr.py b/Lib/test/test_repr.py index 47ec07c..29e1687 100644 --- a/Lib/test/test_repr.py +++ b/Lib/test/test_repr.py @@ -34,6 +34,8 @@ class ReprTests(unittest.TestCase): eq(r(s), expected) def test_container(self): + from array import array + eq = self.assertEquals # Tuples give up after 6 elements eq(r(()), "()") @@ -56,6 +58,16 @@ class ReprTests(unittest.TestCase): d['arthur'] = 1 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', [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])") + eq(r(array('i', [1, 2, 3, 4])), "array('i', [1, 2, 3, 4])") + eq(r(array('i', [1, 2, 3, 4, 5])), "array('i', [1, 2, 3, 4, 5])") + eq(r(array('i', [1, 2, 3, 4, 5, 6])), + "array('i', [1, 2, 3, 4, 5, ...])") + def test_numbers(self): eq = self.assertEquals eq(r(123), repr(123)) @@ -145,6 +145,9 @@ Extension modules Library ------- +- array.array was added to the types repr.py knows about (see + <http://www.python.org/sf/680789>). + - The new pickletools.py contains lots of documentation about pickle internals, and supplies some helpers for working with pickles, such as a symbolic pickle disassembler. |