src/eric7/EricXML/DebuggerPropertiesReader.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9653
e67609152c5e
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
14 14
15 class DebuggerPropertiesReader(XMLStreamReaderBase): 15 class DebuggerPropertiesReader(XMLStreamReaderBase):
16 """ 16 """
17 Class for reading an XML project debugger properties file. 17 Class for reading an XML project debugger properties file.
18 """ 18 """
19
19 supportedVersions = ["3.9", "6.0"] 20 supportedVersions = ["3.9", "6.0"]
20 21
21 def __init__(self, device, project): 22 def __init__(self, device, project):
22 """ 23 """
23 Constructor 24 Constructor
24 25
25 @param device reference to the I/O device to read from (QIODevice) 26 @param device reference to the I/O device to read from (QIODevice)
26 @param project Reference to the project object to store the 27 @param project Reference to the project object to store the
27 information into. 28 information into.
28 """ 29 """
29 XMLStreamReaderBase.__init__(self, device) 30 XMLStreamReaderBase.__init__(self, device)
30 31
31 self.project = project 32 self.project = project
32 33
33 self.version = "" 34 self.version = ""
34 35
35 def readXML(self, quiet=False): 36 def readXML(self, quiet=False):
36 """ 37 """
37 Public method to read and parse the XML document. 38 Public method to read and parse the XML document.
38 39
39 @param quiet flag indicating quiet operations. 40 @param quiet flag indicating quiet operations.
40 If this flag is true, no errors are reported. 41 If this flag is true, no errors are reported.
41 """ 42 """
42 while not self.atEnd(): 43 while not self.atEnd():
43 self.readNext() 44 self.readNext()
44 if self.isStartElement(): 45 if self.isStartElement():
45 if self.name() == "DebuggerProperties": 46 if self.name() == "DebuggerProperties":
46 self.version = self.attribute( 47 self.version = self.attribute(
47 "version", debuggerPropertiesFileFormatVersion) 48 "version", debuggerPropertiesFileFormatVersion
49 )
48 if self.version not in self.supportedVersions: 50 if self.version not in self.supportedVersions:
49 self.raiseUnsupportedFormatVersion(self.version) 51 self.raiseUnsupportedFormatVersion(self.version)
50 elif self.name() == "VirtualEnv": 52 elif self.name() == "VirtualEnv":
51 self.project.debugProperties["VIRTUALENV"] = ( 53 self.project.debugProperties["VIRTUALENV"] = self.readElementText()
52 self.readElementText()
53 )
54 elif self.name() == "Interpreter": 54 elif self.name() == "Interpreter":
55 # just read this obsolete entry and ignore it 55 # just read this obsolete entry and ignore it
56 self.readElementText() 56 self.readElementText()
57 elif self.name() == "DebugClient": 57 elif self.name() == "DebugClient":
58 self.project.debugProperties["DEBUGCLIENT"] = ( 58 self.project.debugProperties["DEBUGCLIENT"] = self.readElementText()
59 self.readElementText() 59 elif self.name() == "Environment":
60 self.project.debugProperties["ENVIRONMENTOVERRIDE"] = int(
61 self.attribute("override", "0")
60 ) 62 )
61 elif self.name() == "Environment": 63 self.project.debugProperties[
62 self.project.debugProperties["ENVIRONMENTOVERRIDE"] = ( 64 "ENVIRONMENTSTRING"
63 int(self.attribute("override", "0")) 65 ] = self.readElementText()
64 )
65 self.project.debugProperties["ENVIRONMENTSTRING"] = (
66 self.readElementText()
67 )
68 elif self.name() == "RemoteDebugger": 66 elif self.name() == "RemoteDebugger":
69 self.__readRemoteDebugger() 67 self.__readRemoteDebugger()
70 elif self.name() == "PathTranslation": 68 elif self.name() == "PathTranslation":
71 self.__readPathTranslation() 69 self.__readPathTranslation()
72 elif self.name() == "ConsoleDebugger": 70 elif self.name() == "ConsoleDebugger":
73 self.project.debugProperties["CONSOLEDEBUGGER"] = ( 71 self.project.debugProperties["CONSOLEDEBUGGER"] = int(
74 int(self.attribute("on", "0")) 72 self.attribute("on", "0")
75 ) 73 )
76 self.project.debugProperties["CONSOLECOMMAND"] = ( 74 self.project.debugProperties[
77 self.readElementText() 75 "CONSOLECOMMAND"
78 ) 76 ] = self.readElementText()
79 elif self.name() == "Redirect": 77 elif self.name() == "Redirect":
80 self.project.debugProperties["REDIRECT"] = ( 78 self.project.debugProperties["REDIRECT"] = int(
81 int(self.attribute("on", "1")) 79 self.attribute("on", "1")
82 ) 80 )
83 elif self.name() == "Noencoding": 81 elif self.name() == "Noencoding":
84 self.project.debugProperties["NOENCODING"] = ( 82 self.project.debugProperties["NOENCODING"] = int(
85 int(self.attribute("on", "0")) 83 self.attribute("on", "0")
86 ) 84 )
87 else: 85 else:
88 self.raiseUnexpectedStartTag(self.name()) 86 self.raiseUnexpectedStartTag(self.name())
89 87
90 if not quiet: 88 if not quiet:
91 self.showErrorMessage() 89 self.showErrorMessage()
92 90
93 def __readRemoteDebugger(self): 91 def __readRemoteDebugger(self):
94 """ 92 """
95 Private method to read the remote debugger info. 93 Private method to read the remote debugger info.
96 """ 94 """
97 self.project.debugProperties["REMOTEDEBUGGER"] = int(self.attribute( 95 self.project.debugProperties["REMOTEDEBUGGER"] = int(self.attribute("on", "0"))
98 "on", "0")) 96
99
100 while not self.atEnd(): 97 while not self.atEnd():
101 self.readNext() 98 self.readNext()
102 if self.isEndElement() and self.name() == "RemoteDebugger": 99 if self.isEndElement() and self.name() == "RemoteDebugger":
103 break 100 break
104 101
105 if self.isStartElement(): 102 if self.isStartElement():
106 if self.name() == "RemoteHost": 103 if self.name() == "RemoteHost":
107 self.project.debugProperties["REMOTEHOST"] = ( 104 self.project.debugProperties["REMOTEHOST"] = self.readElementText()
108 self.readElementText()
109 )
110 elif self.name() == "RemoteCommand": 105 elif self.name() == "RemoteCommand":
111 self.project.debugProperties["REMOTECOMMAND"] = ( 106 self.project.debugProperties[
112 self.readElementText() 107 "REMOTECOMMAND"
113 ) 108 ] = self.readElementText()
114 else: 109 else:
115 self.raiseUnexpectedStartTag(self.name()) 110 self.raiseUnexpectedStartTag(self.name())
116 111
117 def __readPathTranslation(self): 112 def __readPathTranslation(self):
118 """ 113 """
119 Private method to read the path translation info. 114 Private method to read the path translation info.
120 """ 115 """
121 self.project.debugProperties["PATHTRANSLATION"] = int(self.attribute( 116 self.project.debugProperties["PATHTRANSLATION"] = int(self.attribute("on", "0"))
122 "on", "0")) 117
123
124 while not self.atEnd(): 118 while not self.atEnd():
125 self.readNext() 119 self.readNext()
126 if self.isEndElement() and self.name() == "PathTranslation": 120 if self.isEndElement() and self.name() == "PathTranslation":
127 break 121 break
128 122
129 if self.isStartElement(): 123 if self.isStartElement():
130 if self.name() == "RemotePath": 124 if self.name() == "RemotePath":
131 self.project.debugProperties["REMOTEPATH"] = ( 125 self.project.debugProperties["REMOTEPATH"] = self.readElementText()
132 self.readElementText()
133 )
134 elif self.name() == "LocalPath": 126 elif self.name() == "LocalPath":
135 self.project.debugProperties["LOCALPATH"] = ( 127 self.project.debugProperties["LOCALPATH"] = self.readElementText()
136 self.readElementText()
137 )
138 else: 128 else:
139 self.raiseUnexpectedStartTag(self.name()) 129 self.raiseUnexpectedStartTag(self.name())

eric ide

mercurial