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