15 from PyQt6.QtWidgets import QDialog, QDialogButtonBox |
15 from PyQt6.QtWidgets import QDialog, QDialogButtonBox |
16 |
16 |
17 from eric7 import CondaInterface, Preferences |
17 from eric7 import CondaInterface, Preferences |
18 from eric7.EricWidgets.EricApplication import ericApp |
18 from eric7.EricWidgets.EricApplication import ericApp |
19 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes |
19 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes |
20 from eric7.SystemUtilities import FileSystemUtilities, OSUtilities, PythonUtilities |
20 from eric7.SystemUtilities import PythonUtilities |
21 |
21 |
22 from .Ui_VirtualenvConfigurationDialog import Ui_VirtualenvConfigurationDialog |
22 from .Ui_VirtualenvConfigurationDialog import Ui_VirtualenvConfigurationDialog |
23 |
23 |
24 |
24 |
25 class VirtualenvConfigurationDialog(QDialog, Ui_VirtualenvConfigurationDialog): |
25 class VirtualenvConfigurationDialog(QDialog, Ui_VirtualenvConfigurationDialog): |
39 """ |
39 """ |
40 super().__init__(parent) |
40 super().__init__(parent) |
41 self.setupUi(self) |
41 self.setupUi(self) |
42 |
42 |
43 if not baseDir: |
43 if not baseDir: |
44 baseDir = OSUtilities.getHomeDir() |
44 baseDir = os.path.expanduser("~") |
45 self.__envBaseDir = baseDir |
45 self.__envBaseDir = baseDir |
46 |
46 |
47 self.targetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
47 self.targetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
48 self.targetDirectoryPicker.setWindowTitle( |
48 self.targetDirectoryPicker.setWindowTitle( |
49 self.tr("Virtualenv Target Directory") |
49 self.tr("Virtualenv Target Directory") |
53 |
53 |
54 self.extraSearchPathPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
54 self.extraSearchPathPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
55 self.extraSearchPathPicker.setWindowTitle( |
55 self.extraSearchPathPicker.setWindowTitle( |
56 self.tr("Extra Search Path for setuptools/pip") |
56 self.tr("Extra Search Path for setuptools/pip") |
57 ) |
57 ) |
58 self.extraSearchPathPicker.setDefaultDirectory(OSUtilities.getHomeDir()) |
58 self.extraSearchPathPicker.setDefaultDirectory(os.path.expanduser("~")) |
59 |
59 |
60 self.pythonExecPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) |
60 self.pythonExecPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) |
61 self.pythonExecPicker.setWindowTitle(self.tr("Python Interpreter")) |
61 self.pythonExecPicker.setWindowTitle(self.tr("Python Interpreter")) |
62 self.pythonExecPicker.setDefaultDirectory(PythonUtilities.getPythonExecutable()) |
62 self.pythonExecPicker.setDefaultDirectory(PythonUtilities.getPythonExecutable()) |
63 |
63 |
64 self.condaTargetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
64 self.condaTargetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
65 self.condaTargetDirectoryPicker.setWindowTitle( |
65 self.condaTargetDirectoryPicker.setWindowTitle( |
66 self.tr("Conda Environment Location") |
66 self.tr("Conda Environment Location") |
67 ) |
67 ) |
68 self.condaTargetDirectoryPicker.setDefaultDirectory(OSUtilities.getHomeDir()) |
68 self.condaTargetDirectoryPicker.setDefaultDirectory(os.path.expanduser("~")) |
69 |
69 |
70 self.condaCloneDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
70 self.condaCloneDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
71 self.condaCloneDirectoryPicker.setWindowTitle( |
71 self.condaCloneDirectoryPicker.setWindowTitle( |
72 self.tr("Conda Environment Location") |
72 self.tr("Conda Environment Location") |
73 ) |
73 ) |
74 self.condaCloneDirectoryPicker.setDefaultDirectory(OSUtilities.getHomeDir()) |
74 self.condaCloneDirectoryPicker.setDefaultDirectory(os.path.expanduser("~")) |
75 |
75 |
76 self.condaRequirementsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) |
76 self.condaRequirementsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) |
77 self.condaRequirementsFilePicker.setWindowTitle( |
77 self.condaRequirementsFilePicker.setWindowTitle( |
78 self.tr("Conda Requirements File") |
78 self.tr("Conda Requirements File") |
79 ) |
79 ) |
80 self.condaRequirementsFilePicker.setDefaultDirectory(OSUtilities.getHomeDir()) |
80 self.condaRequirementsFilePicker.setDefaultDirectory(os.path.expanduser("~")) |
81 self.condaRequirementsFilePicker.setFilters( |
81 self.condaRequirementsFilePicker.setFilters( |
82 self.tr("Text Files (*.txt);;All Files (*)") |
82 self.tr("Text Files (*.txt);;All Files (*)") |
83 ) |
83 ) |
84 |
84 |
85 self.__versionRe = re.compile(r""".*?(\d+\.\d+\.\d+).*""") |
85 self.__versionRe = re.compile(r""".*?(\d+\.\d+\.\d+).*""") |
448 Private method to generate a valid target directory path. |
448 Private method to generate a valid target directory path. |
449 |
449 |
450 @return target directory path |
450 @return target directory path |
451 @rtype str |
451 @rtype str |
452 """ |
452 """ |
453 targetDirectory = FileSystemUtilities.toNativeSeparators( |
453 targetDirectory = self.targetDirectoryPicker.text() |
454 self.targetDirectoryPicker.text() |
|
455 ) |
|
456 if not os.path.isabs(targetDirectory): |
454 if not os.path.isabs(targetDirectory): |
457 targetDirectory = os.path.join(os.path.expanduser("~"), targetDirectory) |
455 targetDirectory = os.path.join(os.path.expanduser("~"), targetDirectory) |
458 return targetDirectory |
456 return targetDirectory |
459 |
457 |
460 def __generateArguments(self): |
458 def __generateArguments(self): |
490 else: |
488 else: |
491 if self.virtualenvButton.isChecked(): |
489 if self.virtualenvButton.isChecked(): |
492 if self.extraSearchPathPicker.text(): |
490 if self.extraSearchPathPicker.text(): |
493 args.append( |
491 args.append( |
494 "--extra-search-dir={0}".format( |
492 "--extra-search-dir={0}".format( |
495 FileSystemUtilities.toNativeSeparators( |
493 self.extraSearchPathPicker.text() |
496 self.extraSearchPathPicker.text() |
|
497 ) |
|
498 ) |
494 ) |
499 ) |
495 ) |
500 if self.promptPrefixEdit.text(): |
496 if self.promptPrefixEdit.text(): |
501 args.append( |
497 args.append( |
502 "--prompt={0}".format( |
498 "--prompt={0}".format( |
504 ) |
500 ) |
505 ) |
501 ) |
506 if self.pythonExecPicker.text(): |
502 if self.pythonExecPicker.text(): |
507 args.append( |
503 args.append( |
508 "--python={0}".format( |
504 "--python={0}".format( |
509 FileSystemUtilities.toNativeSeparators( |
505 self.pythonExecPicker.text() |
510 self.pythonExecPicker.text() |
|
511 ) |
|
512 ) |
506 ) |
513 ) |
507 ) |
514 elif self.versionComboBox.currentText(): |
508 elif self.versionComboBox.currentText(): |
515 args.append( |
509 args.append( |
516 "--python=python{0}".format(self.versionComboBox.currentText()) |
510 "--python=python{0}".format(self.versionComboBox.currentText()) |
587 ), |
581 ), |
588 "openTarget": self.openCheckBox.isChecked(), |
582 "openTarget": self.openCheckBox.isChecked(), |
589 "createLog": self.logCheckBox.isChecked(), |
583 "createLog": self.logCheckBox.isChecked(), |
590 "createScript": self.scriptCheckBox.isChecked(), |
584 "createScript": self.scriptCheckBox.isChecked(), |
591 "targetDirectory": self.__generateTargetDir(), |
585 "targetDirectory": self.__generateTargetDir(), |
592 "pythonExe": FileSystemUtilities.toNativeSeparators( |
586 "pythonExe": self.pythonExecPicker.text(), |
593 self.pythonExecPicker.text() |
|
594 ), |
|
595 } |
587 } |
596 ) |
588 ) |
597 |
589 |
598 return resultDict |
590 return resultDict |