Wed, 27 Mar 2019 20:09:37 +0100
Unit Test: added capability to run test with debugger support and to stop the test on the first error or failure.
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
6645
ad476851d7e0
Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
3 | # Copyright (c) 2016 - 2019 Detlev Offenbach <detlev@die-offenbachs.de> |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing classes and functions to dump variable contents. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | # |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | # This code was inspired by pydevd. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | # |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | MaxItemsToHandle = 300 |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
15 | TooLargeMessage = ("Too large to show contents. Max items to show: " + |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | str(MaxItemsToHandle)) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | TooLargeAttribute = "Too large to be handled." |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | ## Classes implementing resolvers for various compund types |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
23 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | class BaseResolver(object): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Base class of the resolver class tree. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | def resolve(self, var, attribute): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | Public method to get an attribute from a variable. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | @param var variable to extract an attribute or value from |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @param attribute name of the attribute to extract |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @return value of the attribute |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @rtype any |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
38 | @exception NotImplementedError raised to indicate a missing |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
39 | implementation |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
40 | """ # __IGNORE_WARNING_D235__ |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | raise NotImplementedError |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | def getDictionary(self, var): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | Public method to get the attributes of a variable as a dictionary. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | @param var variable to be converted |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | @return dictionary containing the variable attributes |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | @rtype dict |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
51 | @exception NotImplementedError raised to indicate a missing |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
52 | implementation |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
53 | """ # __IGNORE_WARNING_D235__ |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | raise NotImplementedError |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
57 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
58 | ## Default Resolver |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
59 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
60 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
61 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | class DefaultResolver(BaseResolver): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | Class used to resolve the default way. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | def resolve(self, var, attribute): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | Public method to get an attribute from a variable. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | @param var variable to extract an attribute or value from |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | @param attribute name of the attribute to extract |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | @return value of the attribute |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | @rtype any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | """ |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
77 | return getattr(var, attribute, None) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | def getDictionary(self, var): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | Public method to get the attributes of a variable as a dictionary. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | @param var variable to be converted |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | @return dictionary containing the variable attributes |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | @rtype dict |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | names = dir(var) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | if not names and hasattr(var, "__members__"): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | names = var.__members__ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | d = {} |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | for name in names: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | attribute = getattr(var, name) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | d[name] = attribute |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | except Exception: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | pass # if we can't get it, simply ignore it |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | return d |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
103 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
104 | ## Resolver for Dictionaries |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
105 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
106 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
107 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | class DictResolver(BaseResolver): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | Class used to resolve from a dictionary. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | def resolve(self, var, attribute): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | Public method to get an attribute from a variable. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | @param var variable to extract an attribute or value from |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | @type dict |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | @param attribute name of the attribute to extract |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | @return value of the attribute |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | @rtype any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | """ |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
123 | if attribute in ('___len___', TooLargeAttribute): |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | return None |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
126 | if "(ID:" not in attribute: |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | return var[attribute] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | except Exception: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
130 | return getattr(var, attribute, None) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
132 | expectedID = int(attribute.split("(ID:")[-1][:-1]) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | for key, value in var.items(): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | if id(key) == expectedID: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | return value |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | return None |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
139 | def keyToStr(self, key): |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
140 | """ |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
141 | Public method to get a string representation for a key. |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
142 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
143 | @param key key to be converted |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
144 | @type any |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
145 | @return string representation of the given key |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
146 | @rtype str |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
147 | """ |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | if isinstance(key, str): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | return repr(key) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | else: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | return key |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | def getDictionary(self, var): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | Public method to get the attributes of a variable as a dictionary. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | @param var variable to be converted |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | @return dictionary containing the variable attributes |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | @rtype dict |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | d = {} |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | count = 0 |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | for key, value in var.items(): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | count += 1 |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
166 | key = "{0} (ID:{1})".format(self.keyToStr(key), id(key)) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | d[key] = value |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | if count > MaxItemsToHandle: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | d[TooLargeAttribute] = TooLargeMessage |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | break |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
172 | d["___len___"] = len(var) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | # in case it has additional fields |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | additionals = defaultResolver.getDictionary(var) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | d.update(additionals) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | return d |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
181 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
182 | ## Resolver for Lists and Tuples |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
183 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
184 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
185 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | class ListResolver(BaseResolver): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | Class used to resolve from a tuple or list. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | def resolve(self, var, attribute): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | Public method to get an attribute from a variable. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | @param var variable to extract an attribute or value from |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | @type tuple or list |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | @param attribute name of the attribute to extract |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | @return value of the attribute |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | @rtype any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | """ |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
201 | if attribute in ('___len___', TooLargeAttribute): |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | return None |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | return var[int(attribute)] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | except Exception: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
207 | return getattr(var, attribute, None) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | def getDictionary(self, var): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | Public method to get the attributes of a variable as a dictionary. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | @param var variable to be converted |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | @return dictionary containing the variable attributes |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | @rtype dict |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | d = {} |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | count = 0 |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | for value in var: |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
221 | d[str(count)] = value |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | count += 1 |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | if count > MaxItemsToHandle: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | d[TooLargeAttribute] = TooLargeMessage |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | break |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
227 | d["___len___"] = len(var) |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
228 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
229 | # in case it has additional fields |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
230 | additionals = defaultResolver.getDictionary(var) |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
231 | d.update(additionals) |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
232 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
233 | return d |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
234 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
235 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
236 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
237 | ## Resolver for Sets and Frozensets |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
238 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
239 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
240 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
241 | class SetResolver(BaseResolver): |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
242 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
243 | Class used to resolve from a set or frozenset. |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
244 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
245 | def resolve(self, var, attribute): |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
246 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
247 | Public method to get an attribute from a variable. |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
248 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
249 | @param var variable to extract an attribute or value from |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
250 | @type tuple or list |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
251 | @param attribute id of the value to extract |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
252 | @type str |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
253 | @return value of the attribute |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
254 | @rtype any |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
255 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
256 | if attribute in ('___len___', TooLargeAttribute): |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
257 | return None |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
258 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
259 | if attribute.startswith("ID: "): |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
260 | attribute = attribute.split(None, 1)[1] |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
261 | try: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
262 | attribute = int(attribute) |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
263 | except Exception: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
264 | return getattr(var, attribute, None) |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
265 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
266 | for v in var: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
267 | if id(v) == attribute: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
268 | return v |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
269 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
270 | return None |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
271 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
272 | def getDictionary(self, var): |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
273 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
274 | Public method to get the attributes of a variable as a dictionary. |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
275 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
276 | @param var variable to be converted |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
277 | @type any |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
278 | @return dictionary containing the variable attributes |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
279 | @rtype dict |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
280 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
281 | d = {} |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
282 | count = 0 |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
283 | for value in var: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
284 | count += 1 |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
285 | d["ID: " + str(id(value))] = value |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
286 | if count > MaxItemsToHandle: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
287 | d[TooLargeAttribute] = TooLargeMessage |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
288 | break |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
289 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
290 | d["___len___"] = len(var) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | # in case it has additional fields |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | additionals = defaultResolver.getDictionary(var) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | d.update(additionals) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | return d |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
299 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
300 | ## Resolver for Numpy Arrays |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
301 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
302 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
303 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
304 | class NdArrayResolver(BaseResolver): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
305 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
306 | Class used to resolve from numpy ndarray including some meta data. |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
307 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
308 | def __isNumeric(self, arr): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
309 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
310 | Private method to check, if an array is of a numeric type. |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
311 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
312 | @param arr array to check |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
313 | @type ndarray |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
314 | @return flag indicating a numeric array |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
315 | @rtype bool |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
316 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
317 | try: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
318 | return arr.dtype.kind in 'biufc' |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
319 | except AttributeError: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
320 | return False |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
321 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
322 | def resolve(self, var, attribute): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
323 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
324 | Public method to get an attribute from a variable. |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
325 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
326 | @param var variable to extract an attribute or value from |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
327 | @type tuple or list |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
328 | @param attribute id of the value to extract |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
329 | @type str |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
330 | @return value of the attribute |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
331 | @rtype any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
332 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
333 | if attribute == '__internals__': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
334 | return defaultResolver.getDictionary(var) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
335 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
336 | if attribute == 'min': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
337 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
338 | return var.min() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
339 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
340 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
341 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
342 | if attribute == 'max': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
343 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
344 | return var.max() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
345 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
346 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
347 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
348 | if attribute == 'mean': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
349 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
350 | return var.mean() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
351 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
352 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
353 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
354 | if attribute == 'shape': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
355 | return var.shape |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
356 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
357 | if attribute == 'dtype': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
358 | return var.dtype |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
359 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
360 | if attribute == 'size': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
361 | return var.size |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
362 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
363 | if attribute.startswith('['): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
364 | container = NdArrayItemsContainer() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
365 | count = 0 |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
366 | for element in var: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
367 | setattr(container, str(count), element) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
368 | count += 1 |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
369 | if count > MaxItemsToHandle: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
370 | setattr(container, TooLargeAttribute, TooLargeMessage) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
371 | break |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
372 | return container |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
373 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
374 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
375 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
376 | def getDictionary(self, var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
377 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
378 | Public method to get the attributes of a variable as a dictionary. |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
379 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
380 | @param var variable to be converted |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
381 | @type any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
382 | @return dictionary containing the variable attributes |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
383 | @rtype dict |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
384 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
385 | d = {} |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
386 | d['__internals__'] = defaultResolver.getDictionary(var) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
387 | if var.size > 1024 * 1024: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
388 | d['min'] = 'ndarray too big, calculating min would slow down' \ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
389 | ' debugging' |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
390 | d['max'] = 'ndarray too big, calculating max would slow down' \ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
391 | ' debugging' |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
392 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
393 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
394 | d['min'] = var.min() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
395 | d['max'] = var.max() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
396 | d['mean'] = var.mean() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
397 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
398 | d['min'] = 'not a numeric object' |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
399 | d['max'] = 'not a numeric object' |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
400 | d['mean'] = 'not a numeric object' |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
401 | d['shape'] = var.shape |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
402 | d['dtype'] = var.dtype |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
403 | d['size'] = var.size |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
404 | d['[0:{0}]'.format(len(var) - 1)] = list(var[0:MaxItemsToHandle]) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
405 | return d |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
406 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
407 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
408 | class NdArrayItemsContainer: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
409 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
410 | Class to store ndarray items. |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
411 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
412 | pass |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
413 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
414 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
415 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
416 | ## Resolver for Django Multi Value Dictionaries |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
417 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
418 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
419 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
420 | class MultiValueDictResolver(DictResolver): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
421 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
422 | Class used to resolve from Django multi value dictionaries. |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
423 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
424 | def resolve(self, var, attribute): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
425 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
426 | Public method to get an attribute from a variable. |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
427 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
428 | @param var variable to extract an attribute or value from |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
429 | @type dict |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
430 | @param attribute name of the attribute to extract |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
431 | @type str |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
432 | @return value of the attribute |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
433 | @rtype any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
434 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
435 | if attribute in ('___len___', TooLargeAttribute): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
436 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
437 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
438 | if "(ID:" not in attribute: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
439 | try: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
440 | return var[attribute] |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
441 | except Exception: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
442 | return getattr(var, attribute, None) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
443 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
444 | expectedID = int(attribute.split("(ID:")[-1][:-1]) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
445 | for key in var.keys(): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
446 | if id(key) == expectedID: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
447 | value = var.getlist(key) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
448 | return value |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
449 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
450 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
451 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
452 | def getDictionary(self, var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
453 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
454 | Public method to get the attributes of a variable as a dictionary. |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
455 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
456 | @param var variable to be converted |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
457 | @type any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
458 | @return dictionary containing the variable attributes |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
459 | @rtype dict |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
460 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
461 | d = {} |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
462 | count = 0 |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
463 | for key in var.keys(): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
464 | count += 1 |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
465 | value = var.getlist(key) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
466 | key = "{0} (ID:{1})".format(self.keyToStr(key), id(key)) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
467 | d[key] = value |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
468 | if count > MaxItemsToHandle: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
469 | d[TooLargeAttribute] = TooLargeMessage |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
470 | break |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
471 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
472 | d["___len___"] = len(var) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
473 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
474 | return d |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
475 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
476 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
477 | ############################################################ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
478 | ## Resolver for array.array |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
479 | ############################################################ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
480 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
481 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
482 | class ArrayResolver(BaseResolver): |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
483 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
484 | Class used to resolve from array.array including some meta data. |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
485 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
486 | TypeCodeMap = { |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
487 | "b": "int (signed char)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
488 | "B": "int (unsigned char)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
489 | "u": "Unicode character (Py_UNICODE)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
490 | "h": "int (signed short)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
491 | "H": "int (unsigned short)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
492 | "i": "int (signed int)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
493 | "I": "int (unsigned int)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
494 | "l": "int (signed long)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
495 | "L": "int (unsigned long)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
496 | "q": "int (signed long long)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
497 | "Q": "int (unsigned long long)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
498 | "f": "float (float)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
499 | "d": "float (double)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
500 | } |
5253
57276f763bf6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5239
diff
changeset
|
501 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
502 | def resolve(self, var, attribute): |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
503 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
504 | Public method to get an attribute from a variable. |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
505 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
506 | @param var variable to extract an attribute or value from |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
507 | @type tuple or list |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
508 | @param attribute id of the value to extract |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
509 | @type str |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
510 | @return value of the attribute |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
511 | @rtype any |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
512 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
513 | if attribute == 'itemsize': |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
514 | return var.itemsize |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
515 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
516 | if attribute == 'typecode': |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
517 | return var.typecode |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
518 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
519 | if attribute == 'type': |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
520 | if var.typecode in ArrayResolver.TypeCodeMap: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
521 | return ArrayResolver.TypeCodeMap[var.typecode] |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
522 | else: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
523 | return 'illegal type' |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
524 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
525 | if attribute.startswith('['): |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
526 | container = ArrayItemsContainer() |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
527 | count = 0 |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
528 | for element in var: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
529 | setattr(container, str(count), element) |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
530 | count += 1 |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
531 | if count > MaxItemsToHandle: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
532 | setattr(container, TooLargeAttribute, TooLargeMessage) |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
533 | break |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
534 | return container |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
535 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
536 | return None |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
537 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
538 | def getDictionary(self, var): |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
539 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
540 | Public method to get the attributes of a variable as a dictionary. |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
541 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
542 | @param var variable to be converted |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
543 | @type any |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
544 | @return dictionary containing the variable attributes |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
545 | @rtype dict |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
546 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
547 | d = {} |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
548 | d['typecode'] = var.typecode |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
549 | if var.typecode in ArrayResolver.TypeCodeMap: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
550 | d['type'] = ArrayResolver.TypeCodeMap[var.typecode] |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
551 | else: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
552 | d['type'] = 'illegal type' |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
553 | d['itemsize'] = var.itemsize |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
554 | d['[0:{0}]'.format(len(var) - 1)] = var.tolist()[0:MaxItemsToHandle] |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
555 | return d |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
556 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
557 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
558 | class ArrayItemsContainer: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
559 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
560 | Class to store array.array items. |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
561 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
562 | pass |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
563 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
564 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | defaultResolver = DefaultResolver() |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | dictResolver = DictResolver() |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | listResolver = ListResolver() |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
568 | setResolver = SetResolver() |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
569 | ndarrayResolver = NdArrayResolver() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
570 | multiValueDictResolver = MultiValueDictResolver() |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
571 | arrayResolver = ArrayResolver() |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | ## Methods to determine the type of a variable and the |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | ## resolver class to use |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | _TypeMap = None |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
579 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
580 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | def _initTypeMap(): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | """ |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
583 | Protected function to initialize the type map. |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | global _TypeMap |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | _TypeMap = [ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
588 | (type(None), None,), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | (int, None), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
590 | (float, None), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | (complex, None), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
592 | (str, None), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | (tuple, listResolver), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | (list, listResolver), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
595 | (dict, dictResolver), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | ] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
598 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
599 | _TypeMap.append((long, None)) # __IGNORE_WARNING__ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | except Exception: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | pass # not available on all python versions |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
602 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | _TypeMap.append((unicode, None)) # __IGNORE_WARNING__ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | except Exception: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | pass # not available on all python versions |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
608 | try: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
609 | _TypeMap.append((set, setResolver)) # __IGNORE_WARNING__ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
610 | except Exception: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
611 | pass # not available on all python versions |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
612 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
613 | try: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
614 | _TypeMap.append((frozenset, setResolver)) # __IGNORE_WARNING__ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
615 | except Exception: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
616 | pass # not available on all python versions |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
617 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
618 | try: |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
619 | import array |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
620 | _TypeMap.append((array.array, arrayResolver)) |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
621 | except ImportError: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
622 | pass # array.array may not be available |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
623 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
624 | try: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
625 | import numpy |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
626 | _TypeMap.append((numpy.ndarray, ndarrayResolver)) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
627 | except ImportError: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
628 | pass # numpy may not be installed |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
629 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
630 | try: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
631 | from django.utils.datastructures import MultiValueDict |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
632 | _TypeMap.insert(0, (MultiValueDict, multiValueDictResolver)) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
633 | # it should go before dict |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
634 | except ImportError: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
635 | pass # django may not be installed |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
636 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
637 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
638 | def getType(obj): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
639 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | Public method to get the type information for an object. |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
641 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | @param obj object to get type information for |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
643 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
644 | @return tuple containing the type, type name, type string and resolver |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | @rtype tuple of type, str, str, BaseResolver |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
646 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
647 | typeObject = type(obj) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
648 | typeName = typeObject.__name__ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
649 | typeStr = str(typeObject)[8:-2] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
650 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
651 | if typeStr.startswith(("PyQt5.", "PyQt4.")): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
652 | resolver = None |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | else: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | if _TypeMap is None: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | _initTypeMap() |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
656 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
657 | for typeData in _TypeMap: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
658 | if isinstance(obj, typeData[0]): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | resolver = typeData[1] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
660 | break |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
661 | else: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | resolver = defaultResolver |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
663 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | return typeObject, typeName, typeStr, resolver |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
665 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
666 | # |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
667 | # eflag: noqa = M702 |