Vega strike Python Modules doc
0.5.1
Documentation of the " Modules " folder of Vega strike
Main Page
Namespaces
Data Structures
Files
File List
All
Data Structures
Namespaces
Files
Functions
Variables
repr.py
Go to the documentation of this file.
1
"""Redo the `...` (representation) but with limits on most sizes."""
2
3
__all__ = [
"Repr"
,
"repr"
]
4
5
class
Repr
:
6
def
__init__
(self):
7
self.
maxlevel
= 6
8
self.
maxtuple
= 6
9
self.
maxlist
= 6
10
self.
maxdict
= 4
11
self.
maxstring
= 30
12
self.
maxlong
= 40
13
self.
maxother
= 20
14
def
repr
(self, x):
15
return
self.
repr1
(x, self.
maxlevel
)
16
def
repr1
(self, x, level):
17
typename = type(x).__name__
18
if
' '
in
typename:
19
parts = typename.split()
20
typename =
'_'
.
join
(parts)
21
if
hasattr(self,
'repr_'
+ typename):
22
return
getattr(self,
'repr_'
+ typename)(x, level)
23
else
:
24
s = `x`
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:]
29
return
s
30
def
repr_tuple
(self, x, level):
31
n = len(x)
32
if
n == 0:
return
'()'
33
if
level <= 0:
return
'(...)'
34
s =
''
35
for
i
in
range(
min
(n, self.
maxtuple
)):
36
if
s: s = s +
', '
37
s = s + self.
repr1
(x[i], level-1)
38
if
n > self.
maxtuple
: s = s +
', ...'
39
elif
n == 1: s = s +
','
40
return
'('
+ s +
')'
41
def
repr_list
(self, x, level):
42
n = len(x)
43
if
n == 0:
return
'[]'
44
if
level <= 0:
return
'[...]'
45
s =
''
46
for
i
in
range(
min
(n, self.
maxlist
)):
47
if
s: s = s +
', '
48
s = s + self.
repr1
(x[i], level-1)
49
if
n > self.
maxlist
: s = s +
', ...'
50
return
'['
+ s +
']'
51
def
repr_dict
(self, x, level):
52
n = len(x)
53
if
n == 0:
return
'{}'
54
if
level <= 0:
return
'{...}'
55
s =
''
56
keys = x.keys()
57
keys.sort()
58
for
i
in
range(
min
(n, self.
maxdict
)):
59
if
s: s = s +
', '
60
key = keys[i]
61
s = s + self.
repr1
(key, level-1)
62
s = s +
': '
+ self.
repr1
(x[key], level-1)
63
if
n > self.
maxdict
: s = s +
', ...'
64
return
'{'
+ s +
'}'
65
def
repr_str
(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:]
72
return
s
73
def
repr_long
(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:]
79
return
s
80
def
repr_instance
(self, x, level):
81
try
:
82
s = `x`
83
# Bugs in x.__repr__() can cause arbitrary
84
# exceptions -- then make up something
85
except
:
86
return
'<'
+ x.__class__.__name__ +
' instance at '
+ \
87
hex(id(x))[2:] +
'>'
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:]
92
return
s
93
94
aRepr =
Repr
()
95
repr = aRepr.repr
builtin
repr.py
Generated on Mon Feb 17 2014 12:38:42 for Vega strike Python Modules doc by
1.8.4