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
, '_')
22 f
= eval('self.repr_' + typename
)
23 except AttributeError:
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
:]
31 def repr_tuple(self
, x
, level
):
33 if n
== 0: return '()'
34 if level
<= 0: return '(...)'
36 for i
in range(min(n
, self
.maxtuple
)):
38 s
= s
+ self
.repr1(x
[i
], level
-1)
39 if n
> self
.maxtuple
: s
= s
+ ', ...'
40 elif n
== 1: s
= s
+ ','
42 def repr_list(self
, x
, level
):
44 if n
== 0: return '[]'
45 if level
<= 0: return '[...]'
47 for i
in range(min(n
, self
.maxlist
)):
49 s
= s
+ self
.repr1(x
[i
], level
-1)
50 if n
> self
.maxlist
: s
= s
+ ', ...'
52 def repr_dictionary(self
, x
, level
):
54 if n
== 0: return '{}'
55 if level
<= 0: return '{...}'
59 for i
in range(min(n
, self
.maxdict
)):
62 s
= s
+ self
.repr1(key
, level
-1)
63 s
= s
+ ': ' + self
.repr1(x
[key
], level
-1)
64 if n
> self
.maxlist
: s
= s
+ ', ...'
66 def repr_string(self
, x
, level
):
67 s
= `x
[:self
.maxstring
]`
68 if len(s
) > self
.maxstring
:
69 i
= max(0, (self
.maxstring
-3)/2)
70 j
= max(0, self
.maxstring
-3-i
)
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
:]