Sat, 27 Apr 2019 22:06:38 +0200
Improved determination of expandable items including removing 'other' as selectable type.
Variables of unknown type are now count as instances.
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 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
10 | import sys |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
11 | |
6978
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
12 | from DebugConfig import ConfigQtNames, ConfigKnownQtTypes, BatchSize |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
13 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | # |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | # 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
|
16 | # |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
18 | if sys.version_info[0] > 2: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
19 | basestring = str |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
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 | ## 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
|
23 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
25 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | class BaseResolver(object): |
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 | 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
|
29 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | 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
|
31 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | 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
|
33 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @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
|
35 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @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
|
37 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | @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
|
39 | @rtype any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | """ |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
41 | 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
|
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 |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | names = dir(var) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | 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
|
54 | names = var.__members__ |
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 | d = {} |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | for name in names: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | attribute = getattr(var, name) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | d[name] = attribute |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | except Exception: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | 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
|
63 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | return d |
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 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
67 | ############################################################ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
68 | ## Default Resolver |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
69 | ############################################################ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
70 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
71 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
72 | class DefaultResolver(BaseResolver): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
73 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
74 | Class used to resolve the default way. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
75 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
76 | def getDictionary(self, var): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
77 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
78 | Public method to get the attributes of a variable as a dictionary. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
79 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
80 | @param var variable to be converted |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
81 | @type any |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
82 | @return dictionary containing the variable attributes |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
83 | @rtype dict |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
84 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
85 | names = dir(var) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
86 | if not names and hasattr(var, "__members__"): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
87 | names = var.__members__ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
88 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
89 | d = {} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
90 | for name in names: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
91 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
92 | attribute = getattr(var, name) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
93 | d[name] = attribute |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
94 | except Exception: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
95 | pass # if we can't get it, simply ignore it |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
96 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
97 | yield -1, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
98 | while True: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
99 | yield -2, {} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
100 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
101 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
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 | ## Resolver for Dictionaries |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
104 | ############################################################ |
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 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | class DictResolver(BaseResolver): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | 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
|
110 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | 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
|
112 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | 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
|
114 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | @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
|
116 | @type dict |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | @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
|
118 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | @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
|
120 | @rtype any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
122 | 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
|
123 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | return var[attribute] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | except Exception: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
126 | 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
|
127 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
128 | 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
|
129 | 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
|
130 | if id(key) == expectedID: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | return value |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | return None |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
135 | 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
|
136 | """ |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
137 | 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
|
138 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
139 | @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
|
140 | @type any |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
141 | @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
|
142 | @rtype str |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
143 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
144 | if isinstance(key, basestring): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
145 | key = repr(key) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
146 | # Special handling for Python2 unicode strings and bytes object |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
147 | # Raw and f-Strings are always converted to (unicode) str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
148 | if key[0] in 'ub': |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
149 | key = key[1:] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
150 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
151 | return key # __IGNORE_WARNING_M834__ |
5169
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 = {} |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
163 | start = count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
164 | allItems = list(var.items()) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
165 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
166 | # Fast path: all items from same type |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
167 | allItems.sort(key=lambda x: x[0]) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
168 | except TypeError: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
169 | # Slow path: only sort items with same type (Py3 only) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
170 | allItems.sort(key=lambda x: (str(x[0]), x[0])) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
171 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
172 | for key, value in allItems: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
173 | 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
|
174 | d[key] = value |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
175 | count += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
176 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
177 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
178 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
179 | count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
180 | d = {} |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
182 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
183 | yield start, d |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | # in case it has additional fields |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
186 | d = super(DictResolver, self).getDictionary(var) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
187 | yield -1, d |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
189 | while True: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
190 | yield -2, {} |
5169
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 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
193 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
194 | ## 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
|
195 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
196 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
197 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | class ListResolver(BaseResolver): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | 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
|
201 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | 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
|
203 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | 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
|
205 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | @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
|
207 | @type tuple or list |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | @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
|
209 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | @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
|
211 | @rtype any |
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 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | return var[int(attribute)] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | except Exception: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
216 | 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
|
217 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | def getDictionary(self, var): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | 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
|
221 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | @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
|
223 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | @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
|
225 | @rtype dict |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | d = {} |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
228 | start = count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
229 | for idx, value in enumerate(var): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
230 | d[str(idx)] = value |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | count += 1 |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
232 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
233 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
234 | start = idx + 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
235 | count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
236 | d = {} |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
238 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
239 | yield start, d |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
240 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
241 | # in case it has additional fields |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
242 | d = super(ListResolver, self).getDictionary(var) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
243 | yield -1, d |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
244 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
245 | while True: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
246 | yield -2, {} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
247 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
248 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
249 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
250 | ## 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
|
251 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
252 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
253 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
254 | class SetResolver(BaseResolver): |
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 | 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
|
257 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
258 | 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
|
259 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
260 | 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
|
261 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
262 | @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
|
263 | @type tuple or list |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
264 | @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
|
265 | @type str |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
266 | @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
|
267 | @rtype any |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
268 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
269 | if attribute.startswith("'ID: "): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
270 | attribute = attribute.split(None, 1)[1][:-1] |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
271 | try: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
272 | attribute = int(attribute) |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
273 | except Exception: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
274 | 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
|
275 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
276 | for v in var: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
277 | if id(v) == attribute: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
278 | return v |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
279 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
280 | return None |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
281 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
282 | def getDictionary(self, var): |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
283 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
284 | 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
|
285 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
286 | @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
|
287 | @type any |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
288 | @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
|
289 | @rtype dict |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
290 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
291 | d = {} |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
292 | start = count = 0 |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
293 | for value in var: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
294 | count += 1 |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
295 | d["'ID: {0}'".format(id(value))] = value |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
296 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
297 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
298 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
299 | count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
300 | d = {} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
301 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
302 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
303 | yield start, d |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | # in case it has additional fields |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
306 | additionals = super(SetResolver, self).getDictionary(var) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
307 | yield -1, additionals |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
309 | while True: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
310 | yield -2, {} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
311 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
313 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
314 | ## Resolver for Numpy Arrays |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
315 | ############################################################ |
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 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
318 | class NdArrayResolver(BaseResolver): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
319 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
320 | 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
|
321 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
322 | def __isNumeric(self, arr): |
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 | 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
|
325 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
326 | @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
|
327 | @type ndarray |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
328 | @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
|
329 | @rtype bool |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
330 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
331 | try: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
332 | 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
|
333 | except AttributeError: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
334 | return False |
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 | 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
|
337 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
338 | 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
|
339 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
340 | @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
|
341 | @type tuple or list |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
342 | @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
|
343 | @type str |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
344 | @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
|
345 | @rtype any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
346 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
347 | if attribute == 'min': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
348 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
349 | return var.min() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
350 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
351 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
352 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
353 | if attribute == 'max': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
354 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
355 | return var.max() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
356 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
357 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
358 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
359 | if attribute == 'mean': |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
360 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
361 | return var.mean() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
362 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
363 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
364 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
365 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
366 | return var[int(attribute)] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
367 | except Exception: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
368 | return getattr(var, attribute, None) |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
369 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
370 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
371 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
372 | def getDictionary(self, var): |
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 | 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
|
375 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
376 | @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
|
377 | @type any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
378 | @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
|
379 | @rtype dict |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
380 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
381 | d = {} |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
382 | start = count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
383 | allItems = var.tolist() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
384 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
385 | for idx, value in enumerate(allItems): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
386 | d[str(idx)] = value |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
387 | count += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
388 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
389 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
390 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
391 | count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
392 | d = {} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
393 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
394 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
395 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
396 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
397 | # in case it has additional fields |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
398 | d = super(NdArrayResolver, self).getDictionary(var) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
399 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
400 | 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
|
401 | 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
|
402 | ' debugging' |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
403 | 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
|
404 | ' debugging' |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
405 | d['mean'] = 'ndarray too big, calculating mean would slow down' \ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
406 | ' debugging' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
407 | elif self.__isNumeric(var): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
408 | if var.size == 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
409 | d['min'] = 'empty array' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
410 | d['max'] = 'empty array' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
411 | d['mean'] = 'empty array' |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
412 | else: |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
413 | d['min'] = var.min() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
414 | d['max'] = var.max() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
415 | d['mean'] = var.mean() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
416 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
417 | d['min'] = 'not a numeric object' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
418 | d['max'] = 'not a numeric object' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
419 | d['mean'] = 'not a numeric object' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
420 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
421 | yield -1, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
422 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
423 | while True: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
424 | yield -2, {} |
5175
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 | |
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 | ## 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
|
429 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
430 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
431 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
432 | class MultiValueDictResolver(DictResolver): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
433 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
434 | 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
|
435 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
436 | 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
|
437 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
438 | 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
|
439 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
440 | @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
|
441 | @type dict |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
442 | @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
|
443 | @type str |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
444 | @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
|
445 | @rtype any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
446 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
447 | if " (ID:" not in attribute: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
448 | try: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
449 | return var[attribute] |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
450 | except Exception: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
451 | 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
|
452 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
453 | expectedID = int(attribute.split(" (ID:")[-1][:-1]) |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
454 | 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
|
455 | if id(key) == expectedID: |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
456 | return var.getlist(key) |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
457 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
458 | return None |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
459 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
460 | def getDictionary(self, var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
461 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
462 | 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
|
463 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
464 | @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
|
465 | @type any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
466 | @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
|
467 | @rtype dict |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
468 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
469 | d = {} |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
470 | start = count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
471 | allKeys = list(var.keys()) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
472 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
473 | # Fast path: all items from same type |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
474 | allKeys.sort() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
475 | except TypeError: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
476 | # Slow path: only sort items with same type (Py3 only) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
477 | allKeys.sort(key=lambda x: (str(x), x)) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
478 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
479 | for key in allKeys: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
480 | dkey = "{0} (ID:{1})".format(self.keyToStr(key), id(key)) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
481 | d[dkey] = var.getlist(key) |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
482 | count += 1 |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
483 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
484 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
485 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
486 | count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
487 | d = {} |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
488 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
489 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
490 | yield start, d |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
491 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
492 | # in case it has additional fields |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
493 | d = super(DictResolver, self).getDictionary(var) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
494 | yield -1, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
495 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
496 | while True: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
497 | yield -2, {} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
498 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
499 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
500 | ############################################################ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
501 | ## 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
|
502 | ############################################################ |
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 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
505 | class ArrayResolver(BaseResolver): |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
506 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
507 | 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
|
508 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
509 | TypeCodeMap = { |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
510 | "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
|
511 | "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
|
512 | "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
|
513 | "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
|
514 | "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
|
515 | "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
|
516 | "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
|
517 | "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
|
518 | "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
|
519 | "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
|
520 | "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
|
521 | "f": "float (float)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
522 | "d": "float (double)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
523 | } |
5253
57276f763bf6
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5239
diff
changeset
|
524 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
525 | 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
|
526 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
527 | 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
|
528 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
529 | @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
|
530 | @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
|
531 | @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
|
532 | @type str |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
533 | @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
|
534 | @rtype any |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
535 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
536 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
537 | return var[int(attribute)] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
538 | except Exception: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
539 | return getattr(var, attribute, None) |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
540 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
541 | return None |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
542 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
543 | 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
|
544 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
545 | 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
|
546 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
547 | @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
|
548 | @type any |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
549 | @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
|
550 | @rtype dict |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
551 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
552 | d = {} |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
553 | start = count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
554 | allItems = var.tolist() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
555 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
556 | for idx, value in enumerate(allItems): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
557 | d[str(idx)] = value |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
558 | count += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
559 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
560 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
561 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
562 | count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
563 | d = {} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
564 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
565 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
566 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
567 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
568 | # in case it has additional fields |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
569 | d = super(ArrayResolver, self).getDictionary(var) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
570 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
571 | # Special data for array type: convert typecode to readable text |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
572 | d['type'] = self.TypeCodeMap.get(var.typecode, 'illegal type') |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
573 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
574 | yield -1, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
575 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
576 | while True: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
577 | yield -2, {} |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
578 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
579 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | defaultResolver = DefaultResolver() |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | dictResolver = DictResolver() |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | listResolver = ListResolver() |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
583 | setResolver = SetResolver() |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
584 | ndarrayResolver = NdArrayResolver() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
585 | multiValueDictResolver = MultiValueDictResolver() |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
586 | arrayResolver = ArrayResolver() |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
588 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | ## 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
|
590 | ## resolver class to use |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
592 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | _TypeMap = None |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
595 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | def _initTypeMap(): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | """ |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
598 | 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
|
599 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | global _TypeMap |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
602 | _TypeMap = [ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | (type(None), None,), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | (int, None), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | (float, None), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | (complex, None), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | (str, None), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | (tuple, listResolver), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
609 | (list, listResolver), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
610 | (dict, dictResolver), |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
611 | (set, setResolver), |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
612 | (frozenset, setResolver), |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | ] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
615 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
616 | _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
|
617 | except Exception: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
618 | 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
|
619 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
620 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
621 | _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
|
622 | except Exception: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
623 | 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
|
624 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
625 | try: |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
626 | import array |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
627 | _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
|
628 | except ImportError: |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
629 | 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
|
630 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
631 | try: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
632 | import numpy |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
633 | _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
|
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 # 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
|
636 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
637 | try: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
638 | from django.utils.datastructures import MultiValueDict |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
639 | # it should go before dict |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
640 | _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
|
641 | except ImportError: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
642 | 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
|
643 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
644 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | def getType(obj): |
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 | 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
|
648 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
649 | @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
|
650 | @type any |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
651 | @return tuple containing the type name, type string and resolver |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
652 | @rtype tuple of str, str, BaseResolver |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | typeObject = type(obj) |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | typeName = typeObject.__name__ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
656 | # Between PyQt and PySide the returned type is different (class vs. type) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
657 | typeStr = str(typeObject).split(' ', 1)[-1] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
658 | typeStr = typeStr[1:-2] |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | |
6978
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
660 | if (typeStr.startswith(ConfigQtNames) and |
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
661 | typeStr.endswith(ConfigKnownQtTypes)): |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | resolver = None |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
663 | else: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | if _TypeMap is None: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
665 | _initTypeMap() |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
667 | for typeData, resolver in _TypeMap: # __IGNORE_WARNING_M507__ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
668 | if isinstance(obj, typeData): |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
669 | break |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
670 | else: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
671 | resolver = defaultResolver |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
672 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
673 | return typeName, typeStr, resolver |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
674 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
675 | # |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
676 | # eflag: noqa = M702 |