diff -r e9e7eca7efee -r bf71ee032bb4 src/eric7/EricXML/ProjectReader.py --- a/src/eric7/EricXML/ProjectReader.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/EricXML/ProjectReader.py Wed Jul 13 14:55:47 2022 +0200 @@ -17,24 +17,23 @@ """ Class for reading an XML project file. """ - supportedVersions = ["4.6", - "5.0", "5.1", - "6.0", "6.1", "6.2", "6.3", "6.4", "6.5"] - + + supportedVersions = ["4.6", "5.0", "5.1", "6.0", "6.1", "6.2", "6.3", "6.4", "6.5"] + 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): """ Public method to read and parse the XML document. @@ -43,21 +42,18 @@ self.readNext() if self.isStartElement(): if self.name() == "Project": - self.version = self.attribute( - "version", projectFileFormatVersion) + self.version = self.attribute("version", projectFileFormatVersion) if self.version not in self.supportedVersions: self.raiseUnsupportedFormatVersion(self.version) elif self.name() == "Language": - self.project.pdata["SPELLLANGUAGE"] = ( + self.project.pdata["SPELLLANGUAGE"] = self.readElementText() + elif self.name() == "ProjectWordList": + self.project.pdata["SPELLWORDS"] = Utilities.toNativeSeparators( self.readElementText() ) - elif self.name() == "ProjectWordList": - self.project.pdata["SPELLWORDS"] = ( - Utilities.toNativeSeparators(self.readElementText()) - ) elif self.name() == "ProjectExcludeList": - self.project.pdata["SPELLEXCLUDES"] = ( - Utilities.toNativeSeparators(self.readElementText()) + self.project.pdata["SPELLEXCLUDES"] = Utilities.toNativeSeparators( + self.readElementText() ) elif self.name() == "Hash": self.project.pdata["HASH"] = self.readElementText() @@ -80,28 +76,27 @@ elif self.name() == "Email": self.project.pdata["EMAIL"] = self.readElementText() elif self.name() == "TranslationPattern": - self.project.pdata["TRANSLATIONPATTERN"] = ( - Utilities.toNativeSeparators(self.readElementText()) - ) + self.project.pdata[ + "TRANSLATIONPATTERN" + ] = Utilities.toNativeSeparators(self.readElementText()) elif self.name() == "TranslationsBinPath": - self.project.pdata["TRANSLATIONSBINPATH"] = ( - Utilities.toNativeSeparators(self.readElementText()) - ) + self.project.pdata[ + "TRANSLATIONSBINPATH" + ] = Utilities.toNativeSeparators(self.readElementText()) elif self.name() == "Eol": - self.project.pdata["EOL"] = int( - self.attribute("index", "0") - ) + self.project.pdata["EOL"] = int(self.attribute("index", "0")) elif self.name() == "Sources": self.__readFiles("Sources", "Source", "SOURCES") elif self.name() == "Forms": self.__readFiles("Forms", "Form", "FORMS") elif self.name() == "Translations": - self.__readFiles( - "Translations", "Translation", "TRANSLATIONS") + self.__readFiles("Translations", "Translation", "TRANSLATIONS") elif self.name() == "TranslationExceptions": self.__readFiles( - "TranslationExceptions", "TranslationException", - "TRANSLATIONEXCEPTIONS") + "TranslationExceptions", + "TranslationException", + "TRANSLATIONEXCEPTIONS", + ) elif self.name() == "Resources": self.__readFiles("Resources", "Resource", "RESOURCES") elif self.name() == "Interfaces": @@ -111,8 +106,8 @@ elif self.name() == "Others": self.__readFiles("Others", "Other", "OTHERS") elif self.name() == "MainScript": - self.project.pdata["MAINSCRIPT"] = ( - Utilities.toNativeSeparators(self.readElementText()) + self.project.pdata["MAINSCRIPT"] = Utilities.toNativeSeparators( + self.readElementText() ) elif self.name() == "Vcs": self.__readVcs() @@ -121,45 +116,52 @@ elif self.name() == "LexerAssociations": self.__readLexerAssociations() elif self.name() == "Make": - self.__readBasicDataField( - "Make", "MakeParameters", "MAKEPARAMS") + self.__readBasicDataField("Make", "MakeParameters", "MAKEPARAMS") elif self.name() == "IdlCompiler": self.__readBasicDataField( - "IdlCompiler", "IdlCompilerParameters", "IDLPARAMS") + "IdlCompiler", "IdlCompilerParameters", "IDLPARAMS" + ) elif self.name() == "UicCompiler": self.__readBasicDataField( - "UicCompiler", "UicCompilerParameters", "UICPARAMS") + "UicCompiler", "UicCompilerParameters", "UICPARAMS" + ) elif self.name() == "RccCompiler": self.__readBasicDataField( - "RccCompiler", "RccCompilerParameters", "RCCPARAMS") + "RccCompiler", "RccCompilerParameters", "RCCPARAMS" + ) elif self.name() == "DocstringStyle": self.project.pdata["DOCSTRING"] = self.readElementText() elif self.name() == "ProjectTypeSpecific": self.__readBasicDataField( - "ProjectTypeSpecific", "ProjectTypeSpecificData", - "PROJECTTYPESPECIFICDATA") + "ProjectTypeSpecific", + "ProjectTypeSpecificData", + "PROJECTTYPESPECIFICDATA", + ) elif self.name() == "Documentation": self.__readBasicDataField( - "Documentation", "DocumentationParams", - "DOCUMENTATIONPARMS") + "Documentation", "DocumentationParams", "DOCUMENTATIONPARMS" + ) elif self.name() == "Packagers": self.__readBasicDataField( - "Packagers", "PackagersParams", "PACKAGERSPARMS") + "Packagers", "PackagersParams", "PACKAGERSPARMS" + ) elif self.name() == "Checkers": self.__readBasicDataField( - "Checkers", "CheckersParams", "CHECKERSPARMS") + "Checkers", "CheckersParams", "CHECKERSPARMS" + ) elif self.name() == "OtherTools": self.__readBasicDataField( - "OtherTools", "OtherToolsParams", "OTHERTOOLSPARMS") + "OtherTools", "OtherToolsParams", "OTHERTOOLSPARMS" + ) else: self.raiseUnexpectedStartTag(self.name()) - + self.showErrorMessage() - + def __readFiles(self, tag, listTag, dataKey): """ Private method to read a list of files. - + @param tag name of the list tag (string) @param listTag name of the list element tag (string) @param dataKey key of the project data element (string) @@ -168,18 +170,19 @@ self.readNext() if self.isEndElement() and self.name() == tag: break - + if self.isStartElement(): if self.name() == listTag: self.project.pdata[dataKey].append( - Utilities.toNativeSeparators(self.readElementText())) + Utilities.toNativeSeparators(self.readElementText()) + ) else: self.raiseUnexpectedStartTag(self.name()) - + def __readBasicDataField(self, tag, dataTag, dataKey): """ Private method to read a list of files. - + @param tag name of the list tag (string) @param dataTag name of the data tag (string) @param dataKey key of the project data element (string) @@ -188,13 +191,13 @@ self.readNext() if self.isEndElement() and self.name() == tag: break - + if self.isStartElement(): if self.name() == dataTag: self.project.pdata[dataKey] = self._readBasics() else: self.raiseUnexpectedStartTag(self.name()) - + def __readVcs(self): """ Private method to read the VCS info. @@ -203,7 +206,7 @@ self.readNext() if self.isEndElement() and self.name() == "Vcs": break - + if self.isStartElement(): if self.name() == "VcsType": self.project.pdata["VCS"] = self.readElementText() @@ -213,7 +216,7 @@ self.project.pdata["VCSOTHERDATA"] = self._readBasics() else: self.raiseUnexpectedStartTag(self.name()) - + def __readFiletypeAssociations(self): """ Private method to read the file type associations. @@ -222,7 +225,7 @@ self.readNext() if self.isEndElement() and self.name() == "FiletypeAssociations": break - + if self.isStartElement(): if self.name() == "FiletypeAssociation": pattern = self.attribute("pattern", "") @@ -231,7 +234,7 @@ self.project.pdata["FILETYPES"][pattern] = filetype else: self.raiseUnexpectedStartTag(self.name()) - + def __readLexerAssociations(self): """ Private method to read the lexer associations. @@ -240,7 +243,7 @@ self.readNext() if self.isEndElement() and self.name() == "LexerAssociations": break - + if self.isStartElement(): if self.name() == "LexerAssociation": pattern = self.attribute("pattern", "")