Sun, 17 Dec 2023 17:15:19 +0100
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
41 | @type Any |
5169
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
45 | @rtype Any |
5169
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
119 | @rtype Any |
5169
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
139 | @type Any |
5171
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
212 | @rtype Any |
5169
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
270 | @rtype Any |
6988
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
306 | @rtype Any |
5171
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
386 | @rtype Any |
5175
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
495 | @rtype Any |
5175
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
586 | @rtype Any |
5190
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
652 | @rtype Any |
8568
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
664 | @type Any |
8568
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 |
10417
c6011e501282
Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
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 |