Started to clean up some code related to the Project class and data structures.

Wed, 17 Aug 2016 12:32:58 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 17 Aug 2016 12:32:58 +0200
changeset 5098
bc74f74a95f5
parent 5096
47935c6e4744
child 5099
175b36822cc9

Started to clean up some code related to the Project class and data structures.

E5XML/ProjectReader.py file | annotate | diff | comparison | revisions
E5XML/ProjectWriter.py file | annotate | diff | comparison | revisions
E5XML/UserProjectReader.py file | annotate | diff | comparison | revisions
E5XML/UserProjectWriter.py file | annotate | diff | comparison | revisions
Project/Project.py file | annotate | diff | comparison | revisions
Project/SpellingPropertiesDialog.py file | annotate | diff | comparison | revisions
Project/UserPropertiesDialog.py file | annotate | diff | comparison | revisions
VCS/StatusMonitorLed.py file | annotate | diff | comparison | revisions
VCS/VersionControl.py file | annotate | diff | comparison | revisions
--- 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")

eric ide

mercurial