src/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9212
1c5cf2022c7e
child 9413
80c06d472826
diff -r e9e7eca7efee -r bf71ee032bb4 src/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py
--- a/src/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Wed Jul 13 11:16:20 2022 +0200
+++ b/src/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Wed Jul 13 14:55:47 2022 +0200
@@ -28,192 +28,170 @@
     """
     Class implementing a dialog to enter the parameters for eric7_api.
     """
+
     def __init__(self, project, parms=None, parent=None):
         """
         Constructor
-        
+
         @param project reference to the project object (Project.Project)
         @param parms parameters to set in the dialog
         @param parent parent widget of this dialog
         """
         super().__init__(parent)
         self.setupUi(self)
-        
+
         self.startDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.startDirPicker.setDefaultDirectory(project.getProjectPath())
-        
+
         self.outputFilePicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         self.outputFilePicker.setDefaultDirectory(project.getProjectPath())
-        self.outputFilePicker.setFilters(self.tr(
-            "API files (*.api);;All files (*)"))
-        
+        self.outputFilePicker.setFilters(self.tr("API files (*.api);;All files (*)"))
+
         self.ignoreDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.ignoreDirPicker.setDefaultDirectory(project.getProjectPath())
-        
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Ok).setEnabled(False)
+
+        self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False)
         for language in sorted(
-                DocumentationTools.supportedExtensionsDictForApis.keys()):
+            DocumentationTools.supportedExtensionsDictForApis.keys()
+        ):
             self.languagesList.addItem(language)
-        
+
         self.ppath = project.getProjectPath()
         self.project = project
-        
+
         self.__initializeDefaults()
-        
+
         # get a copy of the defaults to store the user settings
         self.parameters = copy.deepcopy(self.defaults)
-        
+
         # combine it with the values of parms
         if parms is not None:
             self.parameters.update(parms)
         self.parameters["startDirectory"] = Utilities.toNativeSeparators(
-            self.parameters['startDirectory']
+            self.parameters["startDirectory"]
+        )
+        self.parameters["outputFile"] = Utilities.toNativeSeparators(
+            self.parameters["outputFile"]
         )
-        self.parameters['outputFile'] = Utilities.toNativeSeparators(
-            self.parameters['outputFile'])
-        
-        self.recursionCheckBox.setChecked(self.parameters['useRecursion'])
-        self.includePrivateCheckBox.setChecked(
-            self.parameters['includePrivate'])
-        self.startDirPicker.setText(self.parameters['startDirectory'])
-        self.outputFilePicker.setText(self.parameters['outputFile'])
-        self.baseEdit.setText(self.parameters['basePackage'])
+
+        self.recursionCheckBox.setChecked(self.parameters["useRecursion"])
+        self.includePrivateCheckBox.setChecked(self.parameters["includePrivate"])
+        self.startDirPicker.setText(self.parameters["startDirectory"])
+        self.outputFilePicker.setText(self.parameters["outputFile"])
+        self.baseEdit.setText(self.parameters["basePackage"])
         self.ignoreDirsList.clear()
-        for d in self.parameters['ignoreDirectories']:
+        for d in self.parameters["ignoreDirectories"]:
             self.ignoreDirsList.addItem(d)
-        self.sourceExtEdit.setText(
-            ", ".join(self.parameters['sourceExtensions']))
-        self.excludeFilesEdit.setText(
-            ", ".join(self.parameters['ignoreFilePatterns']))
-        for language in self.parameters['languages']:
+        self.sourceExtEdit.setText(", ".join(self.parameters["sourceExtensions"]))
+        self.excludeFilesEdit.setText(", ".join(self.parameters["ignoreFilePatterns"]))
+        for language in self.parameters["languages"]:
             if language == "Python":
                 # convert Python to the more specific Python3
                 language = "Python3"
-            items = self.languagesList.findItems(
-                language, Qt.MatchFlag.MatchExactly)
+            items = self.languagesList.findItems(language, Qt.MatchFlag.MatchExactly)
             items and items[0].setSelected(True)
-    
+
     def __initializeDefaults(self):
         """
         Private method to set the default values.
-        
+
         These are needed later on to generate the commandline
         parameters.
         """
         self.defaults = {
-            'useRecursion': False,
-            'includePrivate': False,
-            'startDirectory': '',
-            'outputFile': '',
-            'basePackage': '',
-            'ignoreDirectories': [],
-            'ignoreFilePatterns': [],
-            'sourceExtensions': [],
+            "useRecursion": False,
+            "includePrivate": False,
+            "startDirectory": "",
+            "outputFile": "",
+            "basePackage": "",
+            "ignoreDirectories": [],
+            "ignoreFilePatterns": [],
+            "sourceExtensions": [],
         }
-        
+
         lang = self.project.getProjectLanguage()
         if lang in DocumentationTools.supportedExtensionsDictForApis:
-            self.defaults['languages'] = [lang]
+            self.defaults["languages"] = [lang]
         else:
-            self.defaults['languages'] = ["Python3"]
-    
+            self.defaults["languages"] = ["Python3"]
+
     def generateParameters(self):
         """
         Public method that generates the command line parameters.
-        
+
         It generates a list of strings to be used
         to set the QProcess arguments for the ericapi call and
         a dictionary containing the non default parameters. This
         dictionary can be passed back upon object generation to overwrite
         the default settings.
-        
+
         @return a tuple containing the commandline parameters, non default
             parameters and the start directory
         @rtype tuple of (list of str, dict, str)
         """
         parms = {}
         args = []
-        
+
         # 1. the program name
         args.append(Globals.getPythonExecutable())
-        args.append(
-            Utilities.normabsjoinpath(getConfig('ericDir'), "eric7_api.py"))
-        
+        args.append(Utilities.normabsjoinpath(getConfig("ericDir"), "eric7_api.py"))
+
         # 2. the commandline options
-        if self.parameters['startDirectory'] != self.defaults['startDirectory']:
-            parms['startDirectory'] = self.project.getRelativeUniversalPath(
-                self.parameters['startDirectory']
-            )
-        else:
-            self.parameters['startDirectory'] = self.defaults['startDirectory']
-            parms['startDirectory'] = self.parameters['startDirectory']
-        if self.parameters['outputFile'] != self.defaults['outputFile']:
-            parms['outputFile'] = self.project.getRelativeUniversalPath(
-                self.parameters['outputFile']
-            )
-            args.append('-o')
-            args.append(
-                self.project.getAbsolutePath(self.parameters['outputFile'])
+        if self.parameters["startDirectory"] != self.defaults["startDirectory"]:
+            parms["startDirectory"] = self.project.getRelativeUniversalPath(
+                self.parameters["startDirectory"]
             )
         else:
-            self.parameters['outputFile'] = self.defaults['outputFile']
-        if self.parameters['basePackage'] != self.defaults['basePackage']:
-            parms['basePackage'] = self.parameters['basePackage']
-            args.append('-b')
-            args.append(self.parameters['basePackage'])
-        if (
-            self.parameters['ignoreDirectories'] !=
-            self.defaults['ignoreDirectories']
-        ):
-            parms['ignoreDirectories'] = (
-                self.parameters['ignoreDirectories'][:]
+            self.parameters["startDirectory"] = self.defaults["startDirectory"]
+            parms["startDirectory"] = self.parameters["startDirectory"]
+        if self.parameters["outputFile"] != self.defaults["outputFile"]:
+            parms["outputFile"] = self.project.getRelativeUniversalPath(
+                self.parameters["outputFile"]
             )
-            for d in self.parameters['ignoreDirectories']:
-                args.append('-x')
+            args.append("-o")
+            args.append(self.project.getAbsolutePath(self.parameters["outputFile"]))
+        else:
+            self.parameters["outputFile"] = self.defaults["outputFile"]
+        if self.parameters["basePackage"] != self.defaults["basePackage"]:
+            parms["basePackage"] = self.parameters["basePackage"]
+            args.append("-b")
+            args.append(self.parameters["basePackage"])
+        if self.parameters["ignoreDirectories"] != self.defaults["ignoreDirectories"]:
+            parms["ignoreDirectories"] = self.parameters["ignoreDirectories"][:]
+            for d in self.parameters["ignoreDirectories"]:
+                args.append("-x")
                 args.append(d)
-        if (
-            self.parameters['ignoreFilePatterns'] !=
-            self.defaults['ignoreFilePatterns']
-        ):
-            parms['ignoreFilePatterns'] = (
-                self.parameters['ignoreFilePatterns'][:]
-            )
-            for pattern in self.parameters['ignoreFilePatterns']:
+        if self.parameters["ignoreFilePatterns"] != self.defaults["ignoreFilePatterns"]:
+            parms["ignoreFilePatterns"] = self.parameters["ignoreFilePatterns"][:]
+            for pattern in self.parameters["ignoreFilePatterns"]:
                 args.append("--exclude-file={0}".format(pattern))
-        if self.parameters['useRecursion'] != self.defaults['useRecursion']:
-            parms['useRecursion'] = self.parameters['useRecursion']
-            args.append('-r')
-        if (
-            self.parameters['sourceExtensions'] !=
-            self.defaults['sourceExtensions']
-        ):
-            parms['sourceExtensions'] = self.parameters['sourceExtensions'][:]
-            for ext in self.parameters['sourceExtensions']:
-                args.append('-t')
+        if self.parameters["useRecursion"] != self.defaults["useRecursion"]:
+            parms["useRecursion"] = self.parameters["useRecursion"]
+            args.append("-r")
+        if self.parameters["sourceExtensions"] != self.defaults["sourceExtensions"]:
+            parms["sourceExtensions"] = self.parameters["sourceExtensions"][:]
+            for ext in self.parameters["sourceExtensions"]:
+                args.append("-t")
                 args.append(ext)
-        if (
-            self.parameters['includePrivate'] !=
-            self.defaults['includePrivate']
-        ):
-            parms['includePrivate'] = self.parameters['includePrivate']
-            args.append('-p')
-        parms['languages'] = self.parameters['languages'][:]
-        for lang in self.parameters['languages']:
-            args.append('--language={0}'.format(lang))
-        
+        if self.parameters["includePrivate"] != self.defaults["includePrivate"]:
+            parms["includePrivate"] = self.parameters["includePrivate"]
+            args.append("-p")
+        parms["languages"] = self.parameters["languages"][:]
+        for lang in self.parameters["languages"]:
+            args.append("--language={0}".format(lang))
+
         startDir = (
-            self.project.getAbsolutePath(self.parameters['startDirectory'])
-            if self.parameters['startDirectory'] else
-            ""
+            self.project.getAbsolutePath(self.parameters["startDirectory"])
+            if self.parameters["startDirectory"]
+            else ""
         )
         return args, parms, startDir
-    
+
     @pyqtSlot(str)
     def on_startDirPicker_pathSelected(self, path):
         """
         Private slot handling the selection of a start directory.
-        
+
         @param path path of the start directory
         @type str
         """
@@ -222,7 +200,7 @@
         while dn.endswith(os.sep):
             dn = dn[:-1]
         self.startDirPicker.setText(dn)
-    
+
     @pyqtSlot()
     def on_outputFilePicker_aboutToShowPathPickerDialog(self):
         """
@@ -230,14 +208,13 @@
         """
         startFile = self.outputFilePicker.text()
         if not startFile:
-            self.outputFilePicker.setText(
-                self.project.getProjectName() + ".api")
-    
+            self.outputFilePicker.setText(self.project.getProjectName() + ".api")
+
     @pyqtSlot(str)
     def on_outputFilePicker_pathSelected(self, path):
         """
         Private slot handling the selection of an output file.
-        
+
         @param path path of the output file
         @type str
         """
@@ -248,17 +225,18 @@
     def on_outputFilePicker_textChanged(self, filename):
         """
         Private slot to enable/disable the "OK" button.
-        
+
         @param filename name of the file (string)
         """
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Ok).setEnabled(filename != "")
-    
+        self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(
+            filename != ""
+        )
+
     @pyqtSlot(str)
     def on_ignoreDirPicker_pathSelected(self, path):
         """
         Private slot handling the selection of a directory to be ignored.
-        
+
         @param path path of the directory to be ignored
         @type str
         """
@@ -267,12 +245,12 @@
         while dn.endswith(os.sep):
             dn = dn[:-1]
         self.ignoreDirPicker.setText(dn)
-    
+
     @pyqtSlot()
     def on_addButton_clicked(self):
         """
         Private slot to add the directory displayed to the listview.
-        
+
         The directory in the ignore directories
         line edit is moved to the listbox above and the edit is cleared.
         """
@@ -292,43 +270,40 @@
     def accept(self):
         """
         Public slot called by the Ok button.
-        
+
         It saves the values in the parameters dictionary.
         """
-        self.parameters['useRecursion'] = self.recursionCheckBox.isChecked()
-        self.parameters['includePrivate'] = (
-            self.includePrivateCheckBox.isChecked()
-        )
-        
+        self.parameters["useRecursion"] = self.recursionCheckBox.isChecked()
+        self.parameters["includePrivate"] = self.includePrivateCheckBox.isChecked()
+
         startdir = self.startDirPicker.text()
         if startdir:
             startdir = os.path.normpath(startdir)
             if startdir.endswith(os.sep):
                 startdir = startdir[:-1]
         self.parameters["startDirectory"] = startdir
-        
+
         outfile = self.outputFilePicker.text()
-        if outfile != '':
+        if outfile != "":
             outfile = os.path.normpath(outfile)
-        self.parameters['outputFile'] = outfile
-        
-        self.parameters['basePackage'] = self.baseEdit.text()
-        self.parameters['ignoreDirectories'] = []
+        self.parameters["outputFile"] = outfile
+
+        self.parameters["basePackage"] = self.baseEdit.text()
+        self.parameters["ignoreDirectories"] = []
         for row in range(0, self.ignoreDirsList.count()):
             itm = self.ignoreDirsList.item(row)
-            self.parameters['ignoreDirectories'].append(
-                os.path.normpath(itm.text()))
-        extensions = self.sourceExtEdit.text().split(',')
-        self.parameters['sourceExtensions'] = [
+            self.parameters["ignoreDirectories"].append(os.path.normpath(itm.text()))
+        extensions = self.sourceExtEdit.text().split(",")
+        self.parameters["sourceExtensions"] = [
             ext.strip() for ext in extensions if len(ext) > 0
         ]
-        patterns = self.excludeFilesEdit.text().split(',')
-        self.parameters['ignoreFilePatterns'] = [
+        patterns = self.excludeFilesEdit.text().split(",")
+        self.parameters["ignoreFilePatterns"] = [
             pattern.strip() for pattern in patterns
         ]
-        self.parameters['languages'] = []
+        self.parameters["languages"] = []
         for itm in self.languagesList.selectedItems():
-            self.parameters['languages'].append(itm.text())
-        
+            self.parameters["languages"].append(itm.text())
+
         # call the accept slot of the base class
         super().accept()

eric ide

mercurial