Sun, 03 Dec 2023 19:46:34 +0100
Corrected some uses of dict.keys(), dict.values() and dict.items().
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 | |
9653
e67609152c5e
Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
3 | # Copyright (c) 2016 - 2023 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 | |
8240
93b8a353c4bf
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8220
diff
changeset
|
10 | import contextlib |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
11 | import sys |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
12 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
13 | from collections.abc import ItemsView, KeysView, ValuesView |
8240
93b8a353c4bf
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8220
diff
changeset
|
14 | |
10332 | 15 | from DebugConfig import ( |
16 | BatchSize, | |
17 | ConfigKnownQtTypes, | |
18 | ConfigQtNames, | |
19 | UnknownAttributeValueMarker, | |
20 | ) | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
21 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | # |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | # 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
|
24 | # |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | ############################################################ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
27 | ## Classes implementing resolvers for various compound types |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
30 | |
8207
d359172d11be
Applied some more code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8205
diff
changeset
|
31 | class BaseResolver: |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | 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
|
34 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
35 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | 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
|
37 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
39 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @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
|
41 | @type any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | @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
|
43 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | @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
|
45 | @rtype any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | """ |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
47 | return getattr(var, attribute, None) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
48 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
49 | def getVariableList(self, var): |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
51 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
52 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | @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
|
54 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
55 | @return list containing the variable attributes |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
56 | @rtype list |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
58 | d = [] |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
59 | for name in dir(var): |
10332 | 60 | try: |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | attribute = getattr(var, name) |
10170
6cf1ee737d8f
Corrected some more code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10060
diff
changeset
|
62 | d.append((name, attribute)) |
10332 | 63 | except AttributeError: |
64 | # ignore non-existent attributes | |
65 | pass | |
66 | except Exception as exc: | |
67 | # The attribute value cannot be determined/is not available yet. | |
68 | d.append((name, "{0}{1}".format(UnknownAttributeValueMarker, str(exc)))) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
69 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | return d |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
73 | ############################################################ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
74 | ## Default Resolver |
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 | |
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 | class DefaultResolver(BaseResolver): |
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 | Class used to resolve the default way. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
81 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
82 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
83 | def getVariableList(self, var): |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
84 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
85 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
86 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
87 | @param var variable to be converted |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
88 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
89 | @yield tuple containing the batch start index and a list |
7988
c4c17121eff8
Updated source code documentation with the new tags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
90 | containing the variable attributes |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
91 | @ytype tuple of (int, list) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
92 | """ |
10332 | 93 | d = super().getVariableList(var) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
94 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
95 | yield -1, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
96 | while True: |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
97 | yield -2, [] |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
98 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
99 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
100 | ############################################################ |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
101 | ## Resolver for Dictionaries |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
102 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
103 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
104 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | class DictResolver(BaseResolver): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | 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
|
108 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
109 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | 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
|
111 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
113 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | @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
|
115 | @type dict |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | @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
|
117 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | @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
|
119 | @rtype any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
121 | 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
|
122 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | return var[attribute] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | except Exception: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
125 | return getattr(var, attribute, None) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
127 | 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
|
128 | 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
|
129 | if id(key) == expectedID: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | return value |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
131 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | return None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
133 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
134 | 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
|
135 | """ |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
136 | Public method to get a string representation for a key. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
137 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
138 | @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
|
139 | @type any |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
140 | @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
|
141 | @rtype str |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
142 | """ |
7637
c878e8255972
Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
143 | if isinstance(key, str): |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
144 | key = repr(key) |
7862
817ef8e0fa66
Debugger: changed the handling of variable type filters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7639
diff
changeset
|
145 | # Special handling for bytes object |
817ef8e0fa66
Debugger: changed the handling of variable type filters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7639
diff
changeset
|
146 | # Raw and f-Strings are always converted to str |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
147 | if key[0] == "b": |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
148 | key = key[1:] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
149 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
150 | return key # __IGNORE_WARNING_M834__ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
151 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
152 | def getVariableList(self, var): |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
154 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
155 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | @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
|
157 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
158 | @yield tuple containing the batch start index and a list |
7988
c4c17121eff8
Updated source code documentation with the new tags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
159 | containing the variable attributes |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
160 | @ytype tuple of (int, list) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
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])) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
171 | |
6969
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)) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
174 | d.append((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 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
180 | d = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
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 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
184 | |
5169
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 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
186 | d = super().getVariableList(var) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
187 | yield -1, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
188 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
189 | while True: |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
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 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
202 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | 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
|
204 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
206 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | @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
|
208 | @type tuple or list |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | @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
|
210 | @type str |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | @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
|
212 | @rtype any |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | try: |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | return var[int(attribute)] |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | except Exception: |
8479
903b7d3b58af
Fixed some little issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
217 | return getattr(var, str(attribute), None) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
218 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
219 | def getVariableList(self, var): |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
221 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
222 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | @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
|
224 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
225 | @yield tuple containing the batch start index and a list |
7988
c4c17121eff8
Updated source code documentation with the new tags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
226 | containing the variable attributes |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
227 | @ytype tuple of (int, list) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
229 | d = [] |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
230 | start = count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
231 | for idx, value in enumerate(var): |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
232 | d.append((idx, value)) |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | count += 1 |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
234 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
235 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
236 | start = idx + 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
237 | count = 0 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
238 | d = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
239 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
240 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
241 | yield start, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
242 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
243 | # in case it has additional fields |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
244 | d = super().getVariableList(var) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
245 | yield -1, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
246 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
247 | while True: |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
248 | yield -2, [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
249 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
250 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
251 | ############################################################ |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
252 | ## Resolver for dict_items, dict_keys and dict_values |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
253 | ############################################################ |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
254 | |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
255 | |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
256 | class DictViewResolver(ListResolver): |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
257 | """ |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
258 | Class used to resolve from dict views. |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
259 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
260 | |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
261 | def resolve(self, var, attribute): |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
262 | """ |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
263 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
264 | |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
265 | @param var variable to extract an attribute or value from |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
266 | @type dict_items, dict_keys or dict_values |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
267 | @param attribute id of the value to extract |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
268 | @type str |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
269 | @return value of the attribute |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
270 | @rtype any |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
271 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8207
diff
changeset
|
272 | return super().resolve(list(var), attribute) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
273 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
274 | def getVariableList(self, var): |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
275 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
276 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
277 | |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
278 | @param var variable to be converted |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
279 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
280 | @yield tuple containing the batch start index and a list |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
281 | containing the variable attributes |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
282 | @ytype tuple of (int, list) |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
283 | """ |
8573
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
284 | yield from super().getVariableList(list(var)) |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
285 | |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
286 | |
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
287 | ############################################################ |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
288 | ## 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
|
289 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
290 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
291 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
292 | class SetResolver(BaseResolver): |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
293 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
294 | 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
|
295 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
296 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
297 | 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
|
298 | """ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
299 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
300 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
301 | @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
|
302 | @type tuple or list |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
303 | @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
|
304 | @type str |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
305 | @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
|
306 | @rtype any |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
307 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
308 | if attribute.startswith("'ID: "): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
309 | 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
|
310 | try: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
311 | attribute = int(attribute) |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
312 | except Exception: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
313 | 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
|
314 | |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
315 | for v in var: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
316 | if id(v) == attribute: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
317 | return v |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
318 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
319 | return None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
320 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
321 | def getVariableList(self, var): |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
322 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
323 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
324 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
325 | @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
|
326 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
327 | @yield tuple containing the batch start index and a list |
7988
c4c17121eff8
Updated source code documentation with the new tags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
328 | containing the variable attributes |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
329 | @ytype tuple of (int, list) |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
330 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
331 | d = [] |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
332 | start = count = 0 |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
333 | for value in var: |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
334 | count += 1 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
335 | d.append(("'ID: {0}'".format(id(value)), value)) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
336 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
337 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
338 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
339 | count = 0 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
340 | d = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
341 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
342 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
343 | yield start, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
344 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | # in case it has additional fields |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
346 | d = super().getVariableList(var) |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
347 | yield -1, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
348 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
349 | while True: |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
350 | yield -2, [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
351 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
353 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
354 | ## Resolver for Numpy Arrays |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
355 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
356 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
357 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
358 | class NdArrayResolver(BaseResolver): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
359 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
360 | 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
|
361 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
362 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
363 | def __isNumeric(self, arr): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
364 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
365 | Private method to check, if an array is of a numeric type. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
366 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
367 | @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
|
368 | @type ndarray |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
369 | @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
|
370 | @rtype bool |
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 | try: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
373 | return arr.dtype.kind in "biufc" |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
374 | except AttributeError: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
375 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
376 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
377 | 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
|
378 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
379 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
380 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
381 | @param var variable to extract an attribute or value from |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
382 | @type ndarray |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
383 | @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
|
384 | @type str |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
385 | @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
|
386 | @rtype any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
387 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
388 | if attribute == "min": |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
389 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
390 | return var.min() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
391 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
392 | return None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
393 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
394 | if attribute == "max": |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
395 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
396 | return var.max() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
397 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
398 | return None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
399 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
400 | if attribute == "mean": |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
401 | if self.__isNumeric(var): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
402 | return var.mean() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
403 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
404 | return None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
405 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
406 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
407 | return var[int(attribute)] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
408 | except Exception: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
409 | return getattr(var, attribute, None) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
410 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
411 | return None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
412 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
413 | def getVariableList(self, var): |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
414 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
415 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
416 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
417 | @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
|
418 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
419 | @yield tuple containing the batch start index and a list |
7988
c4c17121eff8
Updated source code documentation with the new tags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
420 | containing the variable attributes |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
421 | @ytype tuple of (int, list) |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
422 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
423 | d = [] |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
424 | start = count = 0 |
7332
49076c600903
Bugfixes for displaying numpy arrays.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7250
diff
changeset
|
425 | try: |
49076c600903
Bugfixes for displaying numpy arrays.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7250
diff
changeset
|
426 | len(var) # Check if it's an unsized object, e.g. np.ndarray(()) |
49076c600903
Bugfixes for displaying numpy arrays.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7250
diff
changeset
|
427 | allItems = var.tolist() |
49076c600903
Bugfixes for displaying numpy arrays.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7250
diff
changeset
|
428 | except TypeError: # TypeError: len() of unsized object |
49076c600903
Bugfixes for displaying numpy arrays.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7250
diff
changeset
|
429 | allItems = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
430 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
431 | for idx, value in enumerate(allItems): |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
432 | d.append((str(idx), value)) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
433 | count += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
434 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
435 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
436 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
437 | count = 0 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
438 | d = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
439 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
440 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
441 | yield start, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
442 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
443 | # in case it has additional fields |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
444 | d = super().getVariableList(var) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
445 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
446 | if var.size > 1024 * 1024: |
8573
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
447 | d.append( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
448 | ("min", "ndarray too big, calculating min would slow down debugging") |
8573
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
449 | ) |
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
450 | d.append( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
451 | ("max", "ndarray too big, calculating max would slow down debugging") |
8573
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
452 | ) |
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
453 | d.append( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
454 | ("mean", "ndarray too big, calculating mean would slow down debugging") |
8573
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
455 | ) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
456 | elif self.__isNumeric(var): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
457 | if var.size == 0: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
458 | d.append(("min", "empty array")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
459 | d.append(("max", "empty array")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
460 | d.append(("mean", "empty array")) |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
461 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
462 | d.append(("min", var.min())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
463 | d.append(("max", var.max())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
464 | d.append(("mean", var.mean())) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
465 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
466 | d.append(("min", "not a numeric object")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
467 | d.append(("max", "not a numeric object")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
468 | d.append(("mean", "not a numeric object")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
469 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
470 | yield -1, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
471 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
472 | while True: |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
473 | yield -2, [] |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
474 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
475 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
476 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
477 | ## 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
|
478 | ############################################################ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
479 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
480 | |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
481 | class MultiValueDictResolver(DictResolver): |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
482 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
483 | 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
|
484 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
485 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
486 | 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
|
487 | """ |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
488 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
489 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
490 | @param var variable to extract an attribute or value from |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
491 | @type MultiValueDict |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
492 | @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
|
493 | @type str |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
494 | @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
|
495 | @rtype any |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
496 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
497 | 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
|
498 | try: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
499 | return var[attribute] |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
500 | except Exception: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
501 | return getattr(var, attribute, None) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
502 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
503 | expectedID = int(attribute.split(" (ID:")[-1][:-1]) |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7988
diff
changeset
|
504 | for key in var: |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
505 | if id(key) == expectedID: |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
506 | return var.getlist(key) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
507 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
508 | return None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
509 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
510 | def getVariableList(self, var): |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
511 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
512 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
513 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
514 | @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
|
515 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
516 | @yield tuple containing the batch start index and a list |
7988
c4c17121eff8
Updated source code documentation with the new tags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
517 | containing the variable attributes |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
518 | @ytype tuple of (int, list) |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
519 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
520 | d = [] |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
521 | start = count = 0 |
10373
093dcebe5ecb
Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10332
diff
changeset
|
522 | allKeys = list(var) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
523 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
524 | # Fast path: all items from same type |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
525 | allKeys.sort() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
526 | except TypeError: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
527 | # 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
|
528 | allKeys.sort(key=lambda x: (str(x), x)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
529 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
530 | for key in allKeys: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
531 | dkey = "{0} (ID:{1})".format(self.keyToStr(key), id(key)) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
532 | d.append((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
|
533 | count += 1 |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
534 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
535 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
536 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
537 | count = 0 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
538 | d = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
539 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
540 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
541 | yield start, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
542 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
543 | # in case it has additional fields |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
544 | d = super(DictResolver, self).getVariableList(var) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
545 | yield -1, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
546 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
547 | while True: |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
548 | yield -2, [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
549 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
550 | |
5190
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 | ## 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
|
553 | ############################################################ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
554 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
555 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
556 | class ArrayResolver(BaseResolver): |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
557 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
558 | Class 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
|
559 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
560 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
561 | TypeCodeMap = { |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
562 | "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
|
563 | "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
|
564 | "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
|
565 | "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
|
566 | "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
|
567 | "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
|
568 | "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
|
569 | "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
|
570 | "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
|
571 | "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
|
572 | "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
|
573 | "f": "float (float)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
574 | "d": "float (double)", |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
575 | } |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
576 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
577 | 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
|
578 | """ |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
579 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
580 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
581 | @param var variable to extract an attribute or value from |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
582 | @type array.array |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
583 | @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
|
584 | @type str |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
585 | @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
|
586 | @rtype any |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
587 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
588 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
589 | return var[int(attribute)] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
590 | except Exception: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
591 | return getattr(var, attribute, None) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
592 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
593 | return None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
594 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
595 | def getVariableList(self, var): |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
596 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
597 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
598 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
599 | @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
|
600 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
601 | @yield tuple containing the batch start index and a list |
7988
c4c17121eff8
Updated source code documentation with the new tags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
602 | containing the variable attributes |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
603 | @ytype tuple of (int, list) |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
604 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
605 | d = [] |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
606 | start = count = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
607 | allItems = var.tolist() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
608 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
609 | for idx, value in enumerate(allItems): |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
610 | d.append((str(idx), value)) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
611 | count += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
612 | if count >= BatchSize: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
613 | yield start, d |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
614 | start += count |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
615 | count = 0 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
616 | d = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
617 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
618 | if d: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
619 | yield start, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
620 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
621 | # in case it has additional fields |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
622 | d = super().getVariableList(var) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
623 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
624 | # Special data for array type: convert typecode to readable text |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
625 | d.append(("type", self.TypeCodeMap.get(var.typecode, "illegal type"))) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
626 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
627 | yield -1, d |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
628 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
629 | while True: |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
630 | yield -2, [] |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
631 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
632 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
633 | ############################################################ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
634 | ## PySide / PyQt Resolver |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
635 | ############################################################ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
636 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
637 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
638 | class QtResolver(BaseResolver): |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
639 | """ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
640 | Class used to resolve the Qt implementations. |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
641 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
642 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
643 | def resolve(self, var, attribute): |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
644 | """ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
645 | Public method to get an attribute from a variable. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
646 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
647 | @param var variable to extract an attribute or value from |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
648 | @type Qt objects |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
649 | @param attribute name of the attribute to extract |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
650 | @type str |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
651 | @return value of the attribute |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
652 | @rtype any |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
653 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
654 | if attribute == "internalPointer": |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
655 | return var.internalPointer() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
656 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
657 | return getattr(var, attribute, None) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
658 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
659 | def getVariableList(self, var): |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
660 | """ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
661 | Public method to get the attributes of a variable as a list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
662 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
663 | @param var variable to be converted |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
664 | @type any |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
665 | @yield tuple containing the batch start index and a list |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
666 | containing the variable attributes |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
667 | @ytype tuple of (int, list) |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
668 | """ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
669 | d = [] |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
670 | attributes = () |
9462
e65379fdbd97
Changed code to resolve or acknowledge some potential security issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
671 | # Gently handle exception which could occur as special |
e65379fdbd97
Changed code to resolve or acknowledge some potential security issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
672 | # cases, e.g. already deleted C++ objects, str conversion... |
e65379fdbd97
Changed code to resolve or acknowledge some potential security issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
673 | with contextlib.suppress(Exception): # secok |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
674 | qttype = type(var).__name__ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
675 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
676 | if qttype in ("QLabel", "QPushButton"): |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
677 | attributes = ("text",) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
678 | elif qttype == "QByteArray": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
679 | d.append(("bytes", bytes(var))) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
680 | d.append(("hex", "QByteArray", "{0}".format(var.toHex()))) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
681 | d.append(("base64", "QByteArray", "{0}".format(var.toBase64()))) |
8573
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
682 | d.append( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
683 | ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
684 | "percent encoding", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
685 | "QByteArray", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
686 | "{0}".format(var.toPercentEncoding()), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
687 | ) |
8573
77845f40ebfe
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8568
diff
changeset
|
688 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
689 | elif qttype in ("QPoint", "QPointF"): |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
690 | attributes = ("x", "y") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
691 | elif qttype in ("QRect", "QRectF"): |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
692 | attributes = ("x", "y", "width", "height") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
693 | elif qttype in ("QSize", "QSizeF"): |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
694 | attributes = ("width", "height") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
695 | elif qttype == "QColor": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
696 | attributes = ("name",) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
697 | r, g, b, a = var.getRgb() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
698 | d.append(("rgba", "{0:d}, {1:d}, {2:d}, {3:d}".format(r, g, b, a))) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
699 | h, s, v, a = var.getHsv() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
700 | d.append(("hsva", "{0:d}, {1:d}, {2:d}, {3:d}".format(h, s, v, a))) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
701 | c, m, y, k, a = var.getCmyk() |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
702 | d.append( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
703 | ("cmyka", "{0:d}, {1:d}, {2:d}, {3:d}, {4:d}".format(c, m, y, k, a)) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
704 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
705 | elif qttype in ("QDate", "QTime", "QDateTime"): |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
706 | d.append((qttype[1:].lower(), var.toString())) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
707 | elif qttype == "QDir": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
708 | attributes = ("path", "absolutePath", "canonicalPath") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
709 | elif qttype == "QFile": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
710 | attributes = ("fileName",) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
711 | elif qttype == "QFont": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
712 | attributes = ("family", "pointSize", "weight", "bold", "italic") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
713 | elif qttype == "QUrl": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
714 | d.append(("url", var.toString())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
715 | attributes = ("scheme", "userName", "password", "host", "port", "path") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
716 | elif qttype == "QModelIndex": |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
717 | valid = var.isValid() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
718 | d.append(("valid", valid)) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
719 | if valid: |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
720 | d.append(("internalPointer", var.internalPointer())) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
721 | attributes = ("row", "column", "internalId") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
722 | elif qttype in ("QRegExp", "QRegularExpression"): |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
723 | attributes = ("pattern",) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
724 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
725 | # GUI stuff |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
726 | elif qttype == "QAction": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
727 | d.append(("shortcut", var.shortcut().toString())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
728 | attributes = ("objectName", "text", "iconText", "toolTip", "whatsThis") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
729 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
730 | elif qttype == "QKeySequence": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
731 | d.append(("keySequence", var.toString())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
732 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
733 | # XML stuff |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
734 | elif qttype == "QDomAttr": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
735 | attributes = ("name", "var") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
736 | elif qttype in ("QDomCharacterData", "QDomComment", "QDomText"): |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
737 | attributes = ("data",) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
738 | elif qttype == "QDomDocument": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
739 | d.append(("text", var.toString())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
740 | elif qttype == "QDomElement": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
741 | attributes = ("tagName", "text") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
742 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
743 | # Networking stuff |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
744 | elif qttype == "QHostAddress": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
745 | d.append(("address", var.toString())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
746 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
747 | # PySide specific |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
748 | elif qttype == "EnumType": # Not in PyQt possible |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
749 | for key, value in var.values.items(): |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
750 | d.append((key, int(value))) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
751 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
752 | for attribute in attributes: |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
753 | d.append((attribute, getattr(var, attribute)())) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
754 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
755 | # add additional fields |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
756 | if qttype != "EnumType": |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
757 | d.extend(super().getVariableList(var)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
758 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
759 | yield -1, d |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
760 | while True: |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
761 | yield -2, [] |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
762 | |
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
763 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
764 | defaultResolver = DefaultResolver() |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
765 | dictResolver = DictResolver() |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
766 | listResolver = ListResolver() |
6988
87ad87ef1910
Make dictionary views expandable.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
767 | dictViewResolver = DictViewResolver() |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
768 | setResolver = SetResolver() |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
769 | ndarrayResolver = NdArrayResolver() |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
770 | multiValueDictResolver = MultiValueDictResolver() |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
771 | arrayResolver = ArrayResolver() |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
772 | qtResolver = QtResolver() |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
773 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
774 | |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
775 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
776 | ## 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
|
777 | ## resolver class to use |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
778 | ############################################################ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
779 | |
10060
b946699e9e79
Corrected some issues related to unused global variables.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10045
diff
changeset
|
780 | _TypeMap = _ArrayTypes = None # noqa: U200 |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
781 | _TryArray = _TryNumpy = _TryDjango = True |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
782 | _MapCount = 0 |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
783 | |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
784 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
785 | def _initTypeMap(): |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
786 | """ |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
787 | 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
|
788 | """ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
789 | global _TypeMap |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
790 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
791 | # Type map for special handling of array types. |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
792 | # All other types not listed here use the default resolver. |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
793 | _TypeMap = [ |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
794 | (tuple, listResolver), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
795 | (list, listResolver), |
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
796 | (dict, dictResolver), |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
797 | (set, setResolver), |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
798 | (frozenset, setResolver), |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
799 | (ItemsView, dictViewResolver), # Since Python 3.0 |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
800 | (KeysView, dictViewResolver), |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
801 | (ValuesView, dictViewResolver), |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
802 | ] |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
803 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
804 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
805 | # Initialize the static type map |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
806 | _initTypeMap() |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
807 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
808 | |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
809 | def updateTypeMap(): |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
810 | """ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
811 | Public function to update the type map based on module imports. |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
812 | """ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
813 | global _TypeMap, _ArrayTypes, _TryArray, _TryNumpy, _TryDjango, _MapCount |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
814 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
815 | # array.array may not be imported (yet) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
816 | if _TryArray and "array" in sys.modules: |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
817 | import array # __IGNORE_WARNING_I10__ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
818 | |
5190
65a2234c6789
Added a resolver for array.array types to the debuggers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5175
diff
changeset
|
819 | _TypeMap.append((array.array, arrayResolver)) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
820 | _TryArray = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
821 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
822 | # numpy may not be imported (yet) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
823 | if _TryNumpy and "numpy" in sys.modules: |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
824 | import numpy # __IGNORE_WARNING_I10__ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
825 | |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5171
diff
changeset
|
826 | _TypeMap.append((numpy.ndarray, ndarrayResolver)) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
827 | _TryNumpy = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
828 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
829 | # django may not be imported (yet) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
830 | if _TryDjango and "django" in sys.modules: |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
831 | from django.utils.datastructures import MultiValueDict # __IGNORE_WARNING_I10__ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
832 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
833 | # 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
|
834 | _TypeMap.insert(0, (MultiValueDict, multiValueDictResolver)) |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
835 | _TryDjango = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
836 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
837 | # If _TypeMap changed, rebuild the _ArrayTypes tuple |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
838 | if _MapCount != len(_TypeMap): |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
839 | _ArrayTypes = tuple(typ for typ, _resolver in _TypeMap) |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
840 | _MapCount = len(_TypeMap) |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
841 | |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
842 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
843 | def getResolver(obj): |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
844 | """ |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
845 | Public method to get the resolver based on the type info of an object. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
846 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
847 | @param obj object to get resolver for |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
848 | @type any |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
849 | @return resolver |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
850 | @rtype BaseResolver |
5169
74e000797a93
Started to improve the variable dumping of the debugger backend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
851 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
852 | # Between PyQt and PySide the returned type is different (class vs. type) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
853 | typeStr = str(type(obj)).split(" ", 1)[-1] |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6952
diff
changeset
|
854 | typeStr = typeStr[1:-2] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
855 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
856 | if typeStr.startswith(ConfigQtNames) and typeStr.endswith(ConfigKnownQtTypes): |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
857 | return qtResolver |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
858 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
859 | for typeData, resolver in _TypeMap: # __IGNORE_WARNING_M507__ |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
860 | if isinstance(obj, typeData): |
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
861 | return resolver |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
862 | |
8568
890dfe038613
Redesign of the internal evaluation of the variable types.
T.Rzepka@gmail.com
parents:
8479
diff
changeset
|
863 | return defaultResolver |