Mon, 10 Jun 2024 11:41:34 +0200
Extended the use of eric-ide server environments.
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Debugger/DebugServer.py --- a/src/eric7/Debugger/DebugServer.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Debugger/DebugServer.py Mon Jun 10 11:41:34 2024 +0200 @@ -2265,6 +2265,4 @@ @return string for the eric-ide server environment @rtype str """ - # TODO: make this more elaborate once server environments definitions - # are supported return "eric-ide Server"
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Debugger/DebuggerInterfacePython.py --- a/src/eric7/Debugger/DebuggerInterfacePython.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Debugger/DebuggerInterfacePython.py Mon Jun 10 11:41:34 2024 +0200 @@ -541,8 +541,15 @@ ) and ericApp().getObject("EricServer").isServerConnected(): # TODO change this once server environment definitions are supported startRemote = True - venvName = self.debugServer.getEricServerEnvironmentString() - interpreter = "" # use the interpreter of the server + if venvName and venvName != self.debugServer.getProjectEnvironmentString(): + venvManager = ericApp().getObject("VirtualEnvManager") + interpreter = venvManager.getVirtualenvInterpreter(venvName) + else: + venvName = project.getProjectVenv() + interpreter = project.getProjectInterpreter() + if not venvName: + venvName = self.debugServer.getEricServerEnvironmentString() + interpreter = "" # use the interpreter of the server else: if venvName and venvName != self.debugServer.getProjectEnvironmentString(): venvManager = ericApp().getObject("VirtualEnvManager")
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Debugger/StartDialog.py --- a/src/eric7/Debugger/StartDialog.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Debugger/StartDialog.py Mon Jun 10 11:41:34 2024 +0200 @@ -128,8 +128,12 @@ # nothing special for 'Run' mode self.venvComboBox.addItem("") + projectEnvironmentString = ( + ericApp().getObject("DebugServer").getProjectEnvironmentString() + ) + if projectEnvironmentString: + self.venvComboBox.addItem(projectEnvironmentString) if ericApp().getObject("EricServer").isServerConnected(): - # TODO: add project entry once server based project envs are supported self.venvComboBox.addItems( sorted( ericApp() @@ -140,13 +144,12 @@ ) ) else: - projectEnvironmentString = ( - ericApp().getObject("DebugServer").getProjectEnvironmentString() - ) - if projectEnvironmentString: - self.venvComboBox.addItem(projectEnvironmentString) self.venvComboBox.addItems( - sorted(ericApp().getObject("VirtualEnvManager").getVirtualenvNames()) + sorted( + ericApp().getObject("VirtualEnvManager").getVirtualenvNames( + noServer=True + ) + ) ) self.scriptnamePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/PipInterface/Pip.py --- a/src/eric7/PipInterface/Pip.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/PipInterface/Pip.py Mon Jun 10 11:41:34 2024 +0200 @@ -245,7 +245,9 @@ return interpreter - def getVirtualenvNames(self, noRemote=False, noConda=False, noGlobals=False): + def getVirtualenvNames( + self, noRemote=False, noConda=False, noGlobals=False, noServer=False + ): """ Public method to get a sorted list of virtual environment names. @@ -257,13 +259,21 @@ @param noGlobals flag indicating to exclude global environments (defaults to False) @type bool (optional) + @param noServer flag indicating to exclued eric-ide server environments + (defaults to False) + @type bool (optional) @return sorted list of virtual environment names @rtype list of str """ return sorted( ericApp() .getObject("VirtualEnvManager") - .getVirtualenvNames(noRemote=noRemote, noConda=noConda, noGlobals=noGlobals) + .getVirtualenvNames( + noRemote=noRemote, + noConda=noConda, + noGlobals=noGlobals, + noServer=noServer, + ) ) def installPip(self, venvName, userSite=False):
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/PipInterface/PipPackagesWidget.py --- a/src/eric7/PipInterface/PipPackagesWidget.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/PipInterface/PipPackagesWidget.py Mon Jun 10 11:41:34 2024 +0200 @@ -320,6 +320,7 @@ noRemote=True, noConda=Preferences.getPip("ExcludeCondaEnvironments"), noGlobals=Preferences.getPip("ExcludeGlobalEnvironments"), + noServer=True, ) )
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Preferences/ConfigurationPages/DebuggerPython3Page.py --- a/src/eric7/Preferences/ConfigurationPages/DebuggerPython3Page.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/DebuggerPython3Page.py Mon Jun 10 11:41:34 2024 +0200 @@ -98,7 +98,7 @@ """ self.venvComboBox.clear() self.venvComboBox.addItems( - [""] + sorted(self.__virtualenvManager.getVirtualenvNames()) + [""] + sorted(self.__virtualenvManager.getVirtualenvNames(noServer=True)) ) # set initial value
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Preferences/ConfigurationPages/QtPage.py --- a/src/eric7/Preferences/ConfigurationPages/QtPage.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/QtPage.py Mon Jun 10 11:41:34 2024 +0200 @@ -197,7 +197,9 @@ venvName = Preferences.getQt(envKey) if initial else comboBox.currentText() comboBox.clear() - comboBox.addItems([""] + sorted(self.__virtualenvManager.getVirtualenvNames())) + comboBox.addItems( + [""] + sorted(self.__virtualenvManager.getVirtualenvNames(noServer=True)) + ) if venvName: index = comboBox.findText(venvName)
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Preferences/ProgramsDialog.py --- a/src/eric7/Preferences/ProgramsDialog.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Preferences/ProgramsDialog.py Mon Jun 10 11:41:34 2024 +0200 @@ -265,7 +265,7 @@ # 5. do the pip program(s) virtualenvManager = ericApp().getObject("VirtualEnvManager") - for venvName in virtualenvManager.getVirtualenvNames(): + for venvName in virtualenvManager.getVirtualenvNames(noServer=True): interpreter = virtualenvManager.getVirtualenvInterpreter(venvName) self.__createProgramEntry( self.tr("PyPI Package Management"),
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Project/DebuggerPropertiesDialog.py --- a/src/eric7/Project/DebuggerPropertiesDialog.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Project/DebuggerPropertiesDialog.py Mon Jun 10 11:41:34 2024 +0200 @@ -67,14 +67,23 @@ # Virtual Environment self.venvGroupBox.setVisible( not self.project.getProjectData(dataKey="EMBEDDED_VENV") - and not isRemote - # TODO: change once remote environments have been implemented ) self.venvComboBox.addItem("") if self.project.getProjectData(dataKey="EMBEDDED_VENV"): venvIndex = 0 else: - self.venvComboBox.addItems(sorted(venvManager.getVirtualenvNames())) + if isRemote: + self.venvComboBox.addItems( + sorted( + venvManager.getEricServerEnvironmentNames( + host=ericApp().getObject("EricServer").getHostName() + ) + ) + ) + else: + self.venvComboBox.addItems( + sorted(venvManager.getVirtualenvNames(noServer=True)) + ) if self.project.debugProperties["VIRTUALENV"]: venvIndex = max(
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Project/Project.py --- a/src/eric7/Project/Project.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Project/Project.py Mon Jun 10 11:41:34 2024 +0200 @@ -4646,7 +4646,6 @@ @return executable search path prefix @rtype str """ - # TODO: remote server not supported yet if self.__pdata["EMBEDDED_VENV"]: execPath = self.__venvConfiguration["exec_path"] else:
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/QScintilla/Shell.py --- a/src/eric7/QScintilla/Shell.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/QScintilla/Shell.py Mon Jun 10 11:41:34 2024 +0200 @@ -395,7 +395,7 @@ """ self.lmenu.clear() venvManager = ericApp().getObject("VirtualEnvManager") - for venvName in sorted(venvManager.getVirtualenvNames()): + for venvName in sorted(venvManager.getVirtualenvNames(noServer=True)): act = self.lmenu.addAction(venvName) act.setData(venvName) if self.__project and self.__project.isOpen(): @@ -404,6 +404,13 @@ act.setData("<<project>>") if ericApp().getObject("EricServer").isServerConnected(): self.lmenu.addSeparator() + for venvName in sorted( + venvManager.getEricServerEnvironmentNames( + ericApp().getObject("EricServer").getHostName() + ) + ): + act = self.lmenu.addAction(venvName) + act.setData(f"<<eric-server>>:{venvName}") act = self.lmenu.addAction(self.tr("eric-ide Server")) act.setData("<<eric-server>>") @@ -2191,6 +2198,9 @@ ) elif venvName == "<<eric-server>>": self.dbs.startClient(False, startRemote=True) + elif venvName.startswith("<<eric-server>>:"): + venvName = venvName.split(":", 1)[1] + self.dbs.startClient(False, venvName=venvName, startRemote=True) else: self.dbs.startClient(False, venvName=venvName) self.__getBanner()
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/QScintilla/ShellWindow.py --- a/src/eric7/QScintilla/ShellWindow.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/QScintilla/ShellWindow.py Mon Jun 10 11:41:34 2024 +0200 @@ -1455,7 +1455,9 @@ Private slot to prepare the language menu. """ self.__startMenu.clear() - for venvName in sorted(self.virtualenvManager.getVirtualenvNames()): + for venvName in sorted( + self.virtualenvManager.getVirtualenvNames(noServer=True) + ): self.__startMenu.addAction(venvName) def __startShell(self, action):
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/Testing/TestingWidget.py --- a/src/eric7/Testing/TestingWidget.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/Testing/TestingWidget.py Mon Jun 10 11:41:34 2024 +0200 @@ -313,7 +313,9 @@ if venvName: self.venvComboBox.addItem(venvName) self.__projectString = venvName - self.venvComboBox.addItems(sorted(self.__venvManager.getVirtualenvNames())) + self.venvComboBox.addItems( + sorted(self.__venvManager.getVirtualenvNames(noServer=True)) + ) self.venvComboBox.setCurrentText(currentText) def __populateTestFrameworkComboBox(self):
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/VirtualEnv/Ui_VirtualenvAddEditDialog.py --- a/src/eric7/VirtualEnv/Ui_VirtualenvAddEditDialog.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/VirtualEnv/Ui_VirtualenvAddEditDialog.py Mon Jun 10 11:41:34 2024 +0200 @@ -123,8 +123,8 @@ self.anacondaRadioButton.setText(_translate("VirtualenvAddEditDialog", "Anaconda")) self.remoteRadioButton.setToolTip(_translate("VirtualenvAddEditDialog", "Select to indicate a remotely (ssh) accessed environment")) self.remoteRadioButton.setText(_translate("VirtualenvAddEditDialog", "Remote")) - self.serverRadioButton.setToolTip(_translate("VirtualenvAddEditDialog", "Select to indicate an eric IDE server environment.")) - self.serverRadioButton.setText(_translate("VirtualenvAddEditDialog", "eric IDE Server")) + self.serverRadioButton.setToolTip(_translate("VirtualenvAddEditDialog", "Select to indicate an eric-ide server environment.")) + self.serverRadioButton.setText(_translate("VirtualenvAddEditDialog", "eric-ide server")) self.globalCheckBox.setToolTip(_translate("VirtualenvAddEditDialog", "Select,if this is a global environment (i.e. no virtual environment directory to be given)")) self.globalCheckBox.setWhatsThis(_translate("VirtualenvAddEditDialog", "<b>Global Environment</b>\n" "<p>Setting this indicates, that the environment is defined globally, i.e. not user specific. Usually such environments cannot be deleted by a standard user. The respective button of the Virtual Environment Manager dialog will be disabled for these entries.</p>")) @@ -136,5 +136,5 @@ self.label_5.setText(_translate("VirtualenvAddEditDialog", "PATH Prefix:")) self.label_4.setText(_translate("VirtualenvAddEditDialog", "Description:")) self.label_6.setText(_translate("VirtualenvAddEditDialog", "Server:")) - self.serverLineEdit.setToolTip(_translate("VirtualenvAddEditDialog", "Shows the host name of the server this entry belongs to (eric IDE Server environment only)")) + self.serverLineEdit.setToolTip(_translate("VirtualenvAddEditDialog", "Shows the host name of the server this entry belongs to (eric-ide server environment only)")) from eric7.EricWidgets.EricPathPicker import EricPathPicker
diff -r b0632e55ec9a -r d35d6f96c24b src/eric7/VirtualEnv/VirtualenvManager.py --- a/src/eric7/VirtualEnv/VirtualenvManager.py Mon Jun 10 10:22:23 2024 +0200 +++ b/src/eric7/VirtualEnv/VirtualenvManager.py Mon Jun 10 11:41:34 2024 +0200 @@ -611,7 +611,9 @@ else: return "" - def getVirtualenvNames(self, noRemote=False, noConda=False, noGlobals=False): + def getVirtualenvNames( + self, noRemote=False, noConda=False, noGlobals=False, noServer=False + ): """ Public method to get a list of defined virtual environments. @@ -623,6 +625,9 @@ @param noGlobals flag indicating to exclude global environments (defaults to False) @type bool (optional) + @param noServer flag indicating to exclude eric-ide server environments + (defaults to False) + @type bool (optional) @return list of defined virtual environments @rtype list of str """ @@ -639,6 +644,10 @@ environments = [ name for name in environments if not self.isGlobalEnvironment(name) ] + if noServer: + environments = [ + name for name in environments if not self.isEricServerEnvironment(name) + ] return environments