Sat, 23 Dec 2023 17:08:59 +0100
Corrected some code style issues.
# -*- coding: utf-8 -*- # Copyright (c) 2020 - 2024 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing a dialog to configure project specific flask settings. """ from PyQt6.QtCore import pyqtSlot from PyQt6.QtWidgets import QDialog from eric7 import Preferences from eric7.EricWidgets.EricApplication import ericApp try: from eric7.EricGui import EricPixmapCache except ImportError: from UI import PixmapCache as EricPixmapCache from .Ui_FlaskConfigDialog import Ui_FlaskConfigDialog class FlaskConfigDialog(QDialog, Ui_FlaskConfigDialog): """ Class implementing a dialog to configure project specific flask settings. """ def __init__(self, configuration, project, parent=None): """ Constructor @param configuration current project specific configuration @type dict @param project reference to the flask project object @type Project @param parent reference to the parent widget @type QWidget """ super().__init__(parent) self.setupUi(self) self.newEnvironmentButton.setIcon(EricPixmapCache.getIcon("virtualenvConfig")) self.__project = project self.__virtualEnvManager = ericApp().getObject("VirtualEnvManager") self.virtualEnvironmentComboBox.addItem("") self.virtualEnvironmentComboBox.addItems( sorted( self.__virtualEnvManager.getVirtualenvNames(noRemote=True, noConda=True) ) ) if "virtual_environment_name" in configuration: self.virtualEnvironmentComboBox.setCurrentText( configuration["virtual_environment_name"] ) self.flaskBabelBox.setChecked(configuration.get("flask_babel_override", False)) self.flaskBabelCheckBox.setChecked( configuration.get("flask_babel_available", False) ) self.flaskMigrateBox.setChecked( configuration.get("flask_migrate_override", False) ) self.flaskMigrateCheckBox.setChecked( configuration.get("flask_migrate_available", False) ) msh = self.minimumSizeHint() self.resize(max(self.width(), msh.width()), msh.height()) def getConfiguration(self): """ Public method to get the entered configuration data. @return project specific configuration @rtype dict """ configuration = { "virtual_environment_name": self.virtualEnvironmentComboBox.currentText(), "flask_babel_override": self.flaskBabelBox.isChecked(), "flask_babel_available": self.flaskBabelCheckBox.isChecked(), "flask_migrate_override": self.flaskMigrateBox.isChecked(), "flask_migrate_available": self.flaskMigrateCheckBox.isChecked(), } return configuration @pyqtSlot() def on_newEnvironmentButton_clicked(self): """ Private slot to open a dialog for adding a new virtual environment. """ from eric7.VirtualEnv.VirtualenvExecDialog import VirtualenvExecDialog from .FlaskVirtualenvConfigurationDialog import ( FlaskVirtualenvConfigurationDialog, ) ericProject = ericApp().getObject("Project") dlg = FlaskVirtualenvConfigurationDialog( ericProject.getProjectPath(), ericProject.getProjectName(), self ) if dlg.exec() == QDialog.DialogCode.Accepted: resultDict = dlg.getData() # now do the call dia = VirtualenvExecDialog(resultDict, self.__virtualEnvManager, self) dia.show() dia.start(resultDict["arguments"]) dia.exec() self.virtualEnvironmentComboBox.clear() self.virtualEnvironmentComboBox.addItem("") self.virtualEnvironmentComboBox.addItems( sorted( self.__virtualEnvManager.getVirtualenvNames( noRemote=True, noConda=True ) ) ) self.virtualEnvironmentComboBox.setCurrentText(resultDict["logicalName"]) self.__installFlask(resultDict["targetDirectory"]) def __installFlask(self, venvDir): """ Private method to install flask into the newly created environment. @param venvDir directory containing the virtual environment @type str """ from eric7.PipInterface.PipDialog import PipDialog interpreter = self.__project.getFullCommand("python", venvDir) if Preferences.getPip("PipSearchIndex"): indexUrl = Preferences.getPip("PipSearchIndex") + "/simple" args = ["-m", "pip", "install", "--index-url", indexUrl] else: args = ["-m", "pip", "install"] args.append("flask") dia = PipDialog(self.tr("Install Flask"), self) res = dia.startProcess(interpreter, args) if res: dia.exec()