Wed, 17 Aug 2016 12:32:58 +0200
Started to clean up some code related to the Project class and data structures.
--- a/E5XML/ProjectReader.py Mon Aug 15 17:22:13 2016 +0200 +++ b/E5XML/ProjectReader.py Wed Aug 17 12:32:58 2016 +0200 @@ -52,10 +52,10 @@ self.readElementText()] elif self.name() == "ProjectWordList": self.project.pdata["SPELLWORDS"] = \ - [Utilities.toNativeSeparators(self.readElementText())] + Utilities.toNativeSeparators(self.readElementText()) elif self.name() == "ProjectExcludeList": self.project.pdata["SPELLEXCLUDES"] = \ - [Utilities.toNativeSeparators(self.readElementText())] + Utilities.toNativeSeparators(self.readElementText()) elif self.name() == "Hash": self.project.pdata["HASH"] = [self.readElementText()] elif self.name() == "ProgLanguage":
--- a/E5XML/ProjectWriter.py Mon Aug 15 17:22:13 2016 +0200 +++ b/E5XML/ProjectWriter.py Wed Aug 17 12:32:58 2016 +0200 @@ -62,14 +62,14 @@ # do the language (used for spell checking) self.writeTextElement("Language", self.pdata["SPELLLANGUAGE"][0]) - if len(self.pdata["SPELLWORDS"][0]) > 0: + if self.pdata["SPELLWORDS"]: self.writeTextElement( "ProjectWordList", - Utilities.fromNativeSeparators(self.pdata["SPELLWORDS"][0])) - if len(self.pdata["SPELLEXCLUDES"][0]) > 0: + Utilities.fromNativeSeparators(self.pdata["SPELLWORDS"])) + if self.pdata["SPELLEXCLUDES"]: self.writeTextElement( "ProjectExcludeList", - Utilities.fromNativeSeparators(self.pdata["SPELLEXCLUDES"][0])) + Utilities.fromNativeSeparators(self.pdata["SPELLEXCLUDES"])) # do the hash self.writeTextElement("Hash", self.pdata["HASH"][0])
--- a/E5XML/UserProjectReader.py Mon Aug 15 17:22:13 2016 +0200 +++ b/E5XML/UserProjectReader.py Wed Aug 17 12:32:58 2016 +0200 @@ -48,14 +48,12 @@ if self.version not in self.supportedVersions: self.raiseUnsupportedFormatVersion(self.version) elif self.name() == "VcsType": - self.project.pudata["VCSOVERRIDE"] = [ - self.readElementText()] + self.project.pudata["VCSOVERRIDE"] = self.readElementText() elif self.name() == "VcsStatusMonitorInterval": interval = int(self.attribute( "value", Preferences.getVCS("StatusMonitorInterval"))) - self.project.pudata["VCSSTATUSMONITORINTERVAL"] = [ - interval] + self.project.pudata["VCSSTATUSMONITORINTERVAL"] = interval else: self.raiseUnexpectedStartTag(self.name())
--- a/E5XML/UserProjectWriter.py Mon Aug 15 17:22:13 2016 +0200 +++ b/E5XML/UserProjectWriter.py Wed Aug 17 12:32:58 2016 +0200 @@ -64,11 +64,11 @@ # do the vcs override stuff if self.pudata["VCSOVERRIDE"]: - self.writeTextElement("VcsType", self.pudata["VCSOVERRIDE"][0]) + self.writeTextElement("VcsType", self.pudata["VCSOVERRIDE"]) if self.pudata["VCSSTATUSMONITORINTERVAL"]: self.writeEmptyElement("VcsStatusMonitorInterval") self.writeAttribute( - "value", str(self.pudata["VCSSTATUSMONITORINTERVAL"][0])) + "value", str(self.pudata["VCSSTATUSMONITORINTERVAL"])) self.writeEndElement() self.writeEndDocument()
--- a/Project/Project.py Mon Aug 15 17:22:13 2016 +0200 +++ b/Project/Project.py Wed Aug 17 12:32:58 2016 +0200 @@ -134,38 +134,6 @@ lexerAssociationsChanged = pyqtSignal() projectChanged = pyqtSignal() - keynames = [ - "PROGLANGUAGE", "MIXEDLANGUAGE", "PROJECTTYPE", - "SPELLLANGUAGE", "SPELLWORDS", "SPELLEXCLUDES", - "DESCRIPTION", "VERSION", "HASH", - "AUTHOR", "EMAIL", - "SOURCES", "FORMS", "RESOURCES", - "TRANSLATIONS", "TRANSLATIONPATTERN", "TRANSLATIONSBINPATH", - "TRANSLATIONEXCEPTIONS", - "MAINSCRIPT", "EOL", - "VCS", "VCSOPTIONS", "VCSOTHERDATA", - "OTHERS", "INTERFACES", - "FILETYPES", "LEXERASSOCS", - "PROJECTTYPESPECIFICDATA", - "DOCUMENTATIONPARMS", - "PACKAGERSPARMS", - "CHECKERSPARMS", - "OTHERTOOLSPARMS", - ] - - dbgKeynames = [ - "INTERPRETER", "DEBUGCLIENT", - "ENVIRONMENTOVERRIDE", "ENVIRONMENTSTRING", - "REMOTEDEBUGGER", "REMOTEHOST", "REMOTECOMMAND", - "PATHTRANSLATION", "REMOTEPATH", "LOCALPATH", - "CONSOLEDEBUGGER", "CONSOLECOMMAND", - "REDIRECT", "NOENCODING", - ] - - userKeynames = [ - "VCSOVERRIDE", "VCSSTATUSMONITORINTERVAL", - ] - eols = [os.linesep, "\n", "\r", "\r\n"] def __init__(self, parent=None, filename=None): @@ -264,18 +232,19 @@ """ Private method to initialize the list of supported project types. """ - self.__projectTypes = {} self.__fileTypeCallbacks = {} self.__lexerAssociationCallbacks = {} self.__binaryTranslationsCallbacks = {} - self.__projectTypes["Qt4"] = self.tr("PyQt4 GUI") - self.__projectTypes["Qt4C"] = self.tr("PyQt4 Console") - self.__projectTypes["PyQt5"] = self.tr("PyQt5 GUI") - self.__projectTypes["PyQt5C"] = self.tr("PyQt5 Console") - self.__projectTypes["E6Plugin"] = self.tr("Eric6 Plugin") - self.__projectTypes["Console"] = self.tr("Console") - self.__projectTypes["Other"] = self.tr("Other") + self.__projectTypes = { + "Qt4": self.tr("PyQt4 GUI"), + "Qt4C": self.tr("PyQt4 Console"), + "PyQt5": self.tr("PyQt5 GUI"), + "PyQt5C": self.tr("PyQt5 Console"), + "E6Plugin": self.tr("Eric6 Plugin"), + "Console": self.tr("Console"), + "Other": self.tr("Other"), + } self.__projectProgLanguages = { "Python2": ["Qt4", "Qt4C", "PyQt5", "PyQt5C", @@ -436,33 +405,49 @@ self.dbgTracePython = False self.dbgAutoContinue = True - self.pdata = {} - for key in self.__class__.keynames: - self.pdata[key] = [] - self.pdata["AUTHOR"] = [''] - self.pdata["EMAIL"] = [''] - self.pdata["HASH"] = [''] - self.pdata["PROGLANGUAGE"] = ["Python3"] - self.pdata["MIXEDLANGUAGE"] = [False] - self.pdata["PROJECTTYPE"] = ["Qt4"] - self.pdata["SPELLLANGUAGE"] = \ - [Preferences.getEditor("SpellCheckingDefaultLanguage")] - self.pdata["SPELLWORDS"] = [''] - self.pdata["SPELLEXCLUDES"] = [''] - self.pdata["FILETYPES"] = {} - self.pdata["LEXERASSOCS"] = {} - self.pdata["PROJECTTYPESPECIFICDATA"] = {} - self.pdata["CHECKERSPARMS"] = {} - self.pdata["PACKAGERSPARMS"] = {} - self.pdata["DOCUMENTATIONPARMS"] = {} - self.pdata["OTHERTOOLSPARMS"] = {} - self.pdata["EOL"] = [-1] + self.pdata = { + # TODO: change these to use lists only where neccessary + "DESCRIPTION": [], + "VERSION": [], + "SOURCES": [], + "FORMS": [], + "RESOURCES": [], + "INTERFACES": [], + "OTHERS": [], + "TRANSLATIONS": [], + "TRANSLATIONPATTERN": [], + "TRANSLATIONSBINPATH": [], + "TRANSLATIONEXCEPTIONS": [], + "MAINSCRIPT": [], + "VCS": [], + "VCSOPTIONS": [], + "VCSOTHERDATA": [], + "AUTHOR": [''], + "EMAIL": [''], + "HASH": [''], + "PROGLANGUAGE": ["Python3"], + "MIXEDLANGUAGE": [False], + "PROJECTTYPE": ["PyQt5"], + "SPELLLANGUAGE": + [Preferences.getEditor("SpellCheckingDefaultLanguage")], + "SPELLWORDS": '', + "SPELLEXCLUDES": '', + "FILETYPES": {}, + "LEXERASSOCS": {}, + "PROJECTTYPESPECIFICDATA": {}, + "CHECKERSPARMS": {}, + "PACKAGERSPARMS": {}, + "DOCUMENTATIONPARMS": {}, + "OTHERTOOLSPARMS": {}, + "EOL": [-1], + } self.__initDebugProperties() - self.pudata = {} - for key in self.__class__.userKeynames: - self.pudata[key] = [] + self.pudata = { + "VCSOVERRIDE": "", + "VCSSTATUSMONITORINTERVAL": 0, + } self.vcs = self.initVCS() @@ -633,7 +618,7 @@ """ if self.pudata["VCSSTATUSMONITORINTERVAL"]: self.setStatusMonitorInterval( - self.pudata["VCSSTATUSMONITORINTERVAL"][0]) + self.pudata["VCSSTATUSMONITORINTERVAL"]) else: self.setStatusMonitorInterval( Preferences.getVCS("StatusMonitorInterval")) @@ -1175,15 +1160,22 @@ Private method to initialize the debug properties. """ self.debugPropertiesLoaded = False - self.debugProperties = {} - for key in self.__class__.dbgKeynames: - self.debugProperties[key] = "" - self.debugProperties["ENVIRONMENTOVERRIDE"] = False - self.debugProperties["REMOTEDEBUGGER"] = False - self.debugProperties["PATHTRANSLATION"] = False - self.debugProperties["CONSOLEDEBUGGER"] = False - self.debugProperties["REDIRECT"] = True - self.debugProperties["NOENCODING"] = False + self.debugProperties = { + "INTERPRETER": "", + "DEBUGCLIENT": "", + "ENVIRONMENTOVERRIDE": False, + "ENVIRONMENTSTRING": "", + "REMOTEDEBUGGER": False, + "REMOTEHOST": "", + "REMOTECOMMAND": "", + "PATHTRANSLATION": False, + "REMOTEPATH": "", + "LOCALPATH": "", + "CONSOLEDEBUGGER": False, + "CONSOLECOMMAND": "", + "REDIRECT": False, + "NOENCODING": False, + } def isDebugPropertiesLoaded(self): """ @@ -2535,8 +2527,7 @@ Private slot to display the user specific properties dialog. """ vcsSystem = self.pdata["VCS"] and self.pdata["VCS"][0] or None - vcsSystemOverride = self.pudata["VCSOVERRIDE"] and \ - self.pudata["VCSOVERRIDE"][0] or None + vcsSystemOverride = self.pudata["VCSOVERRIDE"] or None from .UserPropertiesDialog import UserPropertiesDialog dlg = UserPropertiesDialog(self) @@ -2546,9 +2537,9 @@ if (self.pdata["VCS"] and self.pdata["VCS"][0] != vcsSystem) or \ (self.pudata["VCSOVERRIDE"] and - self.pudata["VCSOVERRIDE"][0] != vcsSystemOverride) or \ + self.pudata["VCSOVERRIDE"] != vcsSystemOverride) or \ (vcsSystemOverride is not None and - len(self.pudata["VCSOVERRIDE"]) == 0): + not self.pudata["VCSOVERRIDE"]): # stop the VCS monitor thread and shutdown VCS if self.vcs is not None: self.vcs.stopStatusMonitor() @@ -2570,7 +2561,7 @@ if self.pudata["VCSSTATUSMONITORINTERVAL"]: self.setStatusMonitorInterval( - self.pudata["VCSSTATUSMONITORINTERVAL"][0]) + self.pudata["VCSSTATUSMONITORINTERVAL"]) else: self.setStatusMonitorInterval( Preferences.getVCS("StatusMonitorInterval")) @@ -3156,12 +3147,12 @@ project specific word and exclude list """ pwl = "" - if len(self.pdata["SPELLWORDS"][0]) > 0: - pwl = os.path.join(self.ppath, self.pdata["SPELLWORDS"][0]) + if self.pdata["SPELLWORDS"]: + pwl = os.path.join(self.ppath, self.pdata["SPELLWORDS"]) pel = "" - if len(self.pdata["SPELLEXCLUDES"][0]) > 0: - pel = os.path.join(self.ppath, self.pdata["SPELLEXCLUDES"][0]) + if self.pdata["SPELLEXCLUDES"]: + pel = os.path.join(self.ppath, self.pdata["SPELLEXCLUDES"]) return (pwl, pel) @@ -4337,9 +4328,8 @@ if self.pdata["VCS"] and self.pdata["VCS"][0] != 'None': if self.pudata["VCSOVERRIDE"] and \ - self.pudata["VCSOVERRIDE"][0] is not None and \ not nooverride: - vcsSystem = self.pudata["VCSOVERRIDE"][0] + vcsSystem = self.pudata["VCSOVERRIDE"] override = True if vcsSystem is not None: @@ -4349,7 +4339,7 @@ except ImportError: if override: # override failed, revert to original - self.pudata["VCSOVERRIDE"] = [] + self.pudata["VCSOVERRIDE"] = "" return self.initVCS(nooverride=True) if vcs: @@ -4365,7 +4355,7 @@ "<p>The selected VCS <b>{0}</b> could not be" " found. <br/>Reverting override.</p><p>{1}</p>") .format(vcsSystem, msg)) - self.pudata["VCSOVERRIDE"] = [] + self.pudata["VCSOVERRIDE"] = "" return self.initVCS(nooverride=True) QApplication.restoreOverrideCursor()
--- a/Project/SpellingPropertiesDialog.py Mon Aug 15 17:22:13 2016 +0200 +++ b/Project/SpellingPropertiesDialog.py Wed Aug 17 12:32:58 2016 +0200 @@ -66,10 +66,10 @@ if index == -1: index = 0 self.spellingComboBox.setCurrentIndex(index) - if self.project.pdata["SPELLWORDS"][0]: - self.pwlPicker.setText(self.project.pdata["SPELLWORDS"][0]) - if self.project.pdata["SPELLEXCLUDES"][0]: - self.pelPicker.setText(self.project.pdata["SPELLEXCLUDES"][0]) + if self.project.pdata["SPELLWORDS"]: + self.pwlPicker.setText(self.project.pdata["SPELLWORDS"]) + if self.project.pdata["SPELLEXCLUDES"]: + self.pelPicker.setText(self.project.pdata["SPELLEXCLUDES"]) def storeData(self): """ @@ -82,6 +82,6 @@ self.project.pdata["SPELLLANGUAGE"] = \ [self.spellingComboBox.currentText()] self.project.pdata["SPELLWORDS"] = \ - [self.project.getRelativePath(self.pwlPicker.text())] + self.project.getRelativePath(self.pwlPicker.text()) self.project.pdata["SPELLEXCLUDES"] = \ - [self.project.getRelativePath(self.pelPicker.text())] + self.project.getRelativePath(self.pelPicker.text())
--- a/Project/UserPropertiesDialog.py Mon Aug 15 17:22:13 2016 +0200 +++ b/Project/UserPropertiesDialog.py Wed Aug 17 12:32:58 2016 +0200 @@ -39,7 +39,7 @@ if self.project.pudata["VCSSTATUSMONITORINTERVAL"]: self.vcsStatusMonitorIntervalSpinBox.setValue( - self.project.pudata["VCSSTATUSMONITORINTERVAL"][0]) + self.project.pudata["VCSSTATUSMONITORINTERVAL"]) else: self.vcsStatusMonitorIntervalSpinBox.setValue( Preferences.getVCS("StatusMonitorInterval")) @@ -65,7 +65,7 @@ if self.vcsGroup.isEnabled(): if self.project.pudata["VCSOVERRIDE"]: - vcsSystem = self.project.pudata["VCSOVERRIDE"][0] + vcsSystem = self.project.pudata["VCSOVERRIDE"] else: vcsSystem = self.project.pdata["VCS"][0] index = self.vcsInterfaceCombo.findData(vcsSystem) @@ -84,9 +84,9 @@ if vcsStatusMonitorInterval != \ Preferences.getVCS("StatusMonitorInterval"): self.project.pudata["VCSSTATUSMONITORINTERVAL"] = \ - [vcsStatusMonitorInterval] + vcsStatusMonitorInterval else: - self.project.pudata["VCSSTATUSMONITORINTERVAL"] = [] + self.project.pudata["VCSSTATUSMONITORINTERVAL"] = 0 if self.vcsGroup.isEnabled(): vcsSystem = self.vcsInterfaceCombo\ @@ -94,10 +94,10 @@ if self.vcsInterfaceDefaultCheckBox.isChecked(): if vcsSystem != self.project.pdata["VCS"][0]: self.project.pdata["VCS"] = [vcsSystem] - self.project.pudata["VCSOVERRIDE"] = [] + self.project.pudata["VCSOVERRIDE"] = "" self.project.setDirty(True) else: if vcsSystem != self.project.pdata["VCS"][0]: - self.project.pudata["VCSOVERRIDE"] = [vcsSystem] + self.project.pudata["VCSOVERRIDE"] = vcsSystem else: - self.project.pudata["VCSOVERRIDE"] = [] + self.project.pudata["VCSOVERRIDE"] = ""
--- a/VCS/StatusMonitorLed.py Mon Aug 15 17:22:13 2016 +0200 +++ b/VCS/StatusMonitorLed.py Wed Aug 17 12:32:58 2016 +0200 @@ -87,7 +87,7 @@ """ if self.project.pudata["VCSSTATUSMONITORINTERVAL"]: vcsStatusMonitorInterval = \ - self.project.pudata["VCSSTATUSMONITORINTERVAL"][0] + self.project.pudata["VCSSTATUSMONITORINTERVAL"] else: vcsStatusMonitorInterval = \ Preferences.getVCS("StatusMonitorInterval")
--- a/VCS/VersionControl.py Mon Aug 15 17:22:13 2016 +0200 +++ b/VCS/VersionControl.py Wed Aug 17 12:32:58 2016 +0200 @@ -666,7 +666,7 @@ """ if project.pudata["VCSSTATUSMONITORINTERVAL"]: vcsStatusMonitorInterval = project.pudata[ - "VCSSTATUSMONITORINTERVAL"][0] + "VCSSTATUSMONITORINTERVAL"] else: vcsStatusMonitorInterval = Preferences.getVCS( "StatusMonitorInterval")