[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.
This commit is contained in:
Tim Peters 2003-02-05 18:29:34 +00:00
parent 5c4ded2c3b
commit 6ee0480521
3 changed files with 33 additions and 0 deletions

View File

@ -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 '{}'

View File

@ -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))

View File

@ -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.