1 # Redo the `...` (representation) but with limits on most sizes.
15 return self
.repr1(x
, self
.maxlevel
)
16 def repr1(self
, x
, level
):
17 typename
= `
type(x
)`
[7:-2] # "<type '......'>"
19 parts
= string
.split(typename
)
20 typename
= string
.joinfields(parts
, '_')
21 if hasattr(self
, 'repr_' + typename
):
22 return getattr(self
, 'repr_' + typename
)(x
, level
)
25 if len(s
) > self
.maxother
:
26 i
= max(0, (self
.maxother
-3)/2)
27 j
= max(0, self
.maxother
-3-i
)
28 s
= s
[:i
] + '...' + s
[len(s
)-j
:]
30 def repr_tuple(self
, x
, level
):
32 if n
== 0: return '()'
33 if level
<= 0: return '(...)'
35 for i
in range(min(n
, self
.maxtuple
)):
37 s
= s
+ self
.repr1(x
[i
], level
-1)
38 if n
> self
.maxtuple
: s
= s
+ ', ...'
39 elif n
== 1: s
= s
+ ','
41 def repr_list(self
, x
, level
):
43 if n
== 0: return '[]'
44 if level
<= 0: return '[...]'
46 for i
in range(min(n
, self
.maxlist
)):
48 s
= s
+ self
.repr1(x
[i
], level
-1)
49 if n
> self
.maxlist
: s
= s
+ ', ...'
51 def repr_dictionary(self
, x
, level
):
53 if n
== 0: return '{}'
54 if level
<= 0: return '{...}'
58 for i
in range(min(n
, self
.maxdict
)):
61 s
= s
+ self
.repr1(key
, level
-1)
62 s
= s
+ ': ' + self
.repr1(x
[key
], level
-1)
63 if n
> self
.maxlist
: s
= s
+ ', ...'
65 def repr_string(self
, x
, level
):
66 s
= `x
[:self
.maxstring
]`
67 if len(s
) > self
.maxstring
:
68 i
= max(0, (self
.maxstring
-3)/2)
69 j
= max(0, self
.maxstring
-3-i
)
70 s
= `x
[:i
] + x
[len(x
)-j
:]`
71 s
= s
[:i
] + '...' + s
[len(s
)-j
:]
73 def repr_long_int(self
, x
, level
):
74 s
= `x`
# XXX Hope this isn't too slow...
75 if len(s
) > self
.maxlong
:
76 i
= max(0, (self
.maxlong
-3)/2)
77 j
= max(0, self
.maxlong
-3-i
)
78 s
= s
[:i
] + '...' + s
[len(s
)-j
:]
80 def repr_instance(self
, x
, level
):
83 # Bugs in x.__repr__() can cause arbitrary
84 # exceptions -- then make up something
86 return '<' + x
.__class
__.__name
__ + ' instance at ' + \
88 if len(s
) > self
.maxstring
:
89 i
= max(0, (self
.maxstring
-3)/2)
90 j
= max(0, self
.maxstring
-3-i
)
91 s
= s
[:i
] + '...' + s
[len(s
)-j
:]