--- a/src/eric7/EricXML/DebuggerPropertiesReader.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/EricXML/DebuggerPropertiesReader.py Wed Jul 13 14:55:47 2022 +0200 @@ -16,26 +16,27 @@ """ Class for reading an XML project debugger properties file. """ + supportedVersions = ["3.9", "6.0"] - + def __init__(self, device, project): """ Constructor - + @param device reference to the I/O device to read from (QIODevice) @param project Reference to the project object to store the information into. """ XMLStreamReaderBase.__init__(self, device) - + self.project = project - + self.version = "" - + def readXML(self, quiet=False): """ Public method to read and parse the XML document. - + @param quiet flag indicating quiet operations. If this flag is true, no errors are reported. """ @@ -44,96 +45,85 @@ if self.isStartElement(): if self.name() == "DebuggerProperties": self.version = self.attribute( - "version", debuggerPropertiesFileFormatVersion) + "version", debuggerPropertiesFileFormatVersion + ) if self.version not in self.supportedVersions: self.raiseUnsupportedFormatVersion(self.version) elif self.name() == "VirtualEnv": - self.project.debugProperties["VIRTUALENV"] = ( - self.readElementText() - ) + self.project.debugProperties["VIRTUALENV"] = self.readElementText() elif self.name() == "Interpreter": # just read this obsolete entry and ignore it self.readElementText() elif self.name() == "DebugClient": - self.project.debugProperties["DEBUGCLIENT"] = ( - self.readElementText() - ) + self.project.debugProperties["DEBUGCLIENT"] = self.readElementText() elif self.name() == "Environment": - self.project.debugProperties["ENVIRONMENTOVERRIDE"] = ( - int(self.attribute("override", "0")) + self.project.debugProperties["ENVIRONMENTOVERRIDE"] = int( + self.attribute("override", "0") ) - self.project.debugProperties["ENVIRONMENTSTRING"] = ( - self.readElementText() - ) + self.project.debugProperties[ + "ENVIRONMENTSTRING" + ] = self.readElementText() elif self.name() == "RemoteDebugger": self.__readRemoteDebugger() elif self.name() == "PathTranslation": self.__readPathTranslation() elif self.name() == "ConsoleDebugger": - self.project.debugProperties["CONSOLEDEBUGGER"] = ( - int(self.attribute("on", "0")) + self.project.debugProperties["CONSOLEDEBUGGER"] = int( + self.attribute("on", "0") ) - self.project.debugProperties["CONSOLECOMMAND"] = ( - self.readElementText() - ) + self.project.debugProperties[ + "CONSOLECOMMAND" + ] = self.readElementText() elif self.name() == "Redirect": - self.project.debugProperties["REDIRECT"] = ( - int(self.attribute("on", "1")) + self.project.debugProperties["REDIRECT"] = int( + self.attribute("on", "1") ) elif self.name() == "Noencoding": - self.project.debugProperties["NOENCODING"] = ( - int(self.attribute("on", "0")) + self.project.debugProperties["NOENCODING"] = int( + self.attribute("on", "0") ) else: self.raiseUnexpectedStartTag(self.name()) - + if not quiet: self.showErrorMessage() - + def __readRemoteDebugger(self): """ Private method to read the remote debugger info. """ - self.project.debugProperties["REMOTEDEBUGGER"] = int(self.attribute( - "on", "0")) - + self.project.debugProperties["REMOTEDEBUGGER"] = int(self.attribute("on", "0")) + while not self.atEnd(): self.readNext() if self.isEndElement() and self.name() == "RemoteDebugger": break - + if self.isStartElement(): if self.name() == "RemoteHost": - self.project.debugProperties["REMOTEHOST"] = ( - self.readElementText() - ) + self.project.debugProperties["REMOTEHOST"] = self.readElementText() elif self.name() == "RemoteCommand": - self.project.debugProperties["REMOTECOMMAND"] = ( - self.readElementText() - ) + self.project.debugProperties[ + "REMOTECOMMAND" + ] = self.readElementText() else: self.raiseUnexpectedStartTag(self.name()) - + def __readPathTranslation(self): """ Private method to read the path translation info. """ - self.project.debugProperties["PATHTRANSLATION"] = int(self.attribute( - "on", "0")) - + self.project.debugProperties["PATHTRANSLATION"] = int(self.attribute("on", "0")) + while not self.atEnd(): self.readNext() if self.isEndElement() and self.name() == "PathTranslation": break - + if self.isStartElement(): if self.name() == "RemotePath": - self.project.debugProperties["REMOTEPATH"] = ( - self.readElementText() - ) + self.project.debugProperties["REMOTEPATH"] = self.readElementText() elif self.name() == "LocalPath": - self.project.debugProperties["LOCALPATH"] = ( - self.readElementText() - ) + self.project.debugProperties["LOCALPATH"] = self.readElementText() else: self.raiseUnexpectedStartTag(self.name())