--- a/ProjectFlask/RoutesDialog.py Thu Dec 30 12:13:22 2021 +0100 +++ b/ProjectFlask/RoutesDialog.py Wed Sep 21 16:30:15 2022 +0200 @@ -20,10 +20,11 @@ """ Class implementing a dialog to show the application routes. """ + def __init__(self, project, parent=None): """ Constructor - + @param project reference to the project object @type Project @param parent reference to the parent widget @@ -31,31 +32,33 @@ """ super().__init__(parent) self.setupUi(self) - + self.__refreshButton = self.buttonBox.addButton( - self.tr("Refresh"), QDialogButtonBox.ButtonRole.ActionRole) + self.tr("Refresh"), QDialogButtonBox.ButtonRole.ActionRole + ) self.__refreshButton.clicked.connect(self.showRoutes) - + self.__project = project self.__process = None - + def showRoutes(self): """ Public method to show the list of routes. - + @return flag indicating success @rtype bool """ workdir, env = self.__project.prepareRuntimeEnvironment() if env is not None: command = self.__project.getFlaskCommand() - + self.__process = QProcess() self.__process.setProcessEnvironment(env) self.__process.setWorkingDirectory(workdir) self.__process.setProcessChannelMode( - QProcess.ProcessChannelMode.MergedChannels) - + QProcess.ProcessChannelMode.MergedChannels + ) + args = ["routes"] if self.matchButton.isChecked(): sortorder = "match" @@ -71,46 +74,50 @@ args += ["--sort", sortorder] if self.allMethodsCheckBox.isChecked(): args.append("--all-methods") - + with EricOverrideCursor(): self.__process.start(command, args) ok = self.__process.waitForStarted(10000) if ok: ok = self.__process.waitForFinished(10000) if ok: - out = str(self.__process.readAllStandardOutput(), - "utf-8") + out = str(self.__process.readAllStandardOutput(), "utf-8") self.__processOutput(out) else: with EricOverridenCursor(): EricMessageBox.critical( None, self.tr("Flask Routes"), - self.tr("""The Flask process did not finish""" - """ within 10 seconds.""")) + self.tr( + """The Flask process did not finish""" + """ within 10 seconds.""" + ), + ) else: with EricOverridenCursor(): EricMessageBox.critical( None, self.tr("Flask Routes"), - self.tr("""The Flask process could not be""" - """ started.""")) + self.tr( + """The Flask process could not be""" """ started.""" + ), + ) for column in range(self.routesList.columnCount()): self.routesList.resizeColumnToContents(column) return ok else: return False - + def __processOutput(self, output): """ Private method to process the flask output and populate the routes list. - + @param output output of the flask process @type str """ self.routesList.clear() - + lines = output.splitlines() widths = [] for line in lines: @@ -124,58 +131,58 @@ for width in widths: parts.append(line[:width].strip()) line = line[width:].lstrip() - + QTreeWidgetItem(self.routesList, parts) - + @pyqtSlot(bool) def on_matchButton_toggled(self, checked): """ Private slot handling the selection of the 'match' sort order. - + @param checked state of the button @type bool """ if checked: self.showRoutes() - + @pyqtSlot(bool) def on_endpointButton_toggled(self, checked): """ Private slot handling the selection of the 'endpoint' sort order. - + @param checked state of the button @type bool """ if checked: self.showRoutes() - + @pyqtSlot(bool) def on_methodsButton_toggled(self, checked): """ Private slot handling the selection of the 'methods' sort order. - + @param checked state of the button @type bool """ if checked: self.showRoutes() - + @pyqtSlot(bool) def on_ruleButton_toggled(self, checked): """ Private slot handling the selection of the 'rule' sort order. - + @param checked state of the button @type bool """ if checked: self.showRoutes() - + @pyqtSlot(bool) def on_allMethodsCheckBox_toggled(self, checked): """ Private slot handling the selection to show all methods. - + @param checked state of the button @type bool """