Tue, 02 Mar 2021 17:17:09 +0100
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
3 | # Copyright (c) 2019 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to show the output of a conda execution. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import json |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt5.QtCore import pyqtSlot, QProcess, QTimer |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from E5Gui import E5MessageBox |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from .Ui_CondaExecDialog import Ui_CondaExecDialog |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import Preferences |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
20 | import Globals |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | class CondaExecDialog(QDialog, Ui_CondaExecDialog): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
6678
5f1de9e59227
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6677
diff
changeset
|
25 | Class implementing a dialog to show the output of a conda execution. |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
27 | def __init__(self, command, parent=None): |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | Constructor |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
31 | @param command conda command executed |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
32 | @type str |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @param parent reference to the parent widget |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @type QWidget |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | super(CondaExecDialog, self).__init__(parent) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | self.setupUi(self) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
39 | self.buttonBox.button( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
40 | QDialogButtonBox.StandardButton.Close).setEnabled(False) |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
41 | self.buttonBox.button( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
42 | QDialogButtonBox.StandardButton.Cancel).setDefault(True) |
6685
fbaee9890715
CondaExecDialog: did some cleanup and streamlining.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6683
diff
changeset
|
43 | |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
44 | self.__condaCommand = command |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.__process = None |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.__condaExe = Preferences.getConda("CondaExecutable") |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | if not self.__condaExe: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.__condaExe = "conda" |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | @pyqtSlot(QAbstractButton) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | def on_buttonBox_clicked(self, button): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | Private slot called by a button of the button box clicked. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | @param button button that was clicked |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | @type QAbstractButton |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | """ |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
59 | if button == self.buttonBox.button( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
60 | QDialogButtonBox.StandardButton.Close |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
61 | ): |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | self.accept() |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
63 | elif button == self.buttonBox.button( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
64 | QDialogButtonBox.StandardButton.Cancel |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
65 | ): |
6679
c5f7b2e9a06d
CondaExecDialog: fixed abug calling the finish method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6678
diff
changeset
|
66 | self.__finish(1, 0) |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | def start(self, arguments): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | Public slot to start the conda command. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | @param arguments commandline arguments for conda program |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | @type list of str |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.errorGroup.hide() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | self.progressLabel.hide() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | self.progressBar.hide() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | self.contents.clear() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | self.errors.clear() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.progressLabel.clear() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | self.progressBar.setValue(0) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | self.__bufferedStdout = None |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | self.__json = "--json" in arguments |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | self.__firstProgress = True |
6683
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
87 | self.__lastFetchFile = "" |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
89 | self.__statusOk = False |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
90 | self.__result = None |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
91 | |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6697
diff
changeset
|
92 | self.__logOutput(self.__condaExe + " " + " ".join(arguments) + "\n\n") |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6697
diff
changeset
|
93 | |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | self.__process = QProcess() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.__process.readyReadStandardOutput.connect(self.__readStdout) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | self.__process.readyReadStandardError.connect(self.__readStderr) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | self.__process.finished.connect(self.__finish) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | self.__process.start(self.__condaExe, arguments) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | procStarted = self.__process.waitForStarted(5000) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | if not procStarted: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | E5MessageBox.critical( |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | self, |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | self.tr("Conda Execution"), |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | self.tr("""The conda executable could not be started. Is it""" |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ configured correctly?""")) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | self.__finish(1, 0) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | else: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | self.__logOutput(self.tr("Operation started.\n")) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | def __finish(self, exitCode, exitStatus, giveUp=False): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | Private slot called when the process finished. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | It is called when the process finished or |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | the user pressed the button. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
118 | @param exitCode exit code of the process |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
119 | @type int |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
120 | @param exitStatus exit status of the process |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
121 | @type QProcess.ExitStatus |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
122 | @param giveUp flag indicating to not start another attempt |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
123 | @type bool |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | """ |
7250
d8bdc55aee1a
Started to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
125 | if (self.__process is not None and |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
126 | self.__process.state() != QProcess.ProcessState.NotRunning): |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | self.__process.terminate() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | QTimer.singleShot(2000, self.__process.kill) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | self.__process.waitForFinished(3000) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
131 | self.buttonBox.button( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
132 | QDialogButtonBox.StandardButton.Close).setEnabled(True) |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
133 | self.buttonBox.button( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
134 | QDialogButtonBox.StandardButton.Cancel).setEnabled(False) |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
135 | self.buttonBox.button( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
136 | QDialogButtonBox.StandardButton.Close).setDefault(True) |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | |
6683
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
138 | self.progressLabel.hide() |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
139 | self.progressBar.hide() |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
140 | |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
141 | self.__statusOk = exitCode == 0 |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
142 | |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | self.__logOutput(self.tr("Operation finished.\n")) |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
144 | if not self.__json and self.__bufferedStdout: |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
145 | self.__logOutput(self.__bufferedStdout) |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
146 | |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
147 | if self.__json and self.__bufferedStdout: |
6741
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
148 | index = self.__bufferedStdout.find("{") |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
149 | rindex = self.__bufferedStdout.rfind("}") |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
150 | self.__bufferedStdout = self.__bufferedStdout[index:rindex + 1] |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
151 | try: |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
152 | self.__result = json.loads(self.__bufferedStdout) |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
153 | except Exception as error: |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
154 | self.__result = {} |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
155 | self.__logError(str(error)) |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
156 | return |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
157 | |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
158 | if "error" in self.__result: |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
159 | self.__logError(self.__result["error"]) |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
160 | self.__statusOk = False |
7250
d8bdc55aee1a
Started to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
161 | elif ("success" in self.__result and |
d8bdc55aee1a
Started to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
162 | not self.__result["success"]): |
6741
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
163 | self.__logError( |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
164 | self.tr("Conda command '{0}' did not return success.") |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
165 | .format(self.__condaCommand)) |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
166 | if "message" in self.__result: |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
167 | self.__logError("\n") |
6685
fbaee9890715
CondaExecDialog: did some cleanup and streamlining.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6683
diff
changeset
|
168 | self.__logError( |
6714
7718e9b548fa
CondaExecDialog: added some more output.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
169 | self.tr("\nConda Message: {0}").format( |
7718e9b548fa
CondaExecDialog: added some more output.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
170 | self.__result["message"])) |
6741
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
171 | self.__statusOk = False |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
172 | elif "message" in self.__result: |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
173 | self.__logOutput( |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
174 | self.tr("\nConda Message: {0}").format( |
33a82a20dd3a
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6717
diff
changeset
|
175 | self.__result["message"])) |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
177 | def getResult(self): |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | """ |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
179 | Public method to the result of the command execution. |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
180 | |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
181 | @return tuple containing a flag indicating success and the result data. |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
182 | @rtype tuple of (bool, dict) |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
183 | """ |
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
184 | return self.__statusOk, self.__result |
6683
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
185 | |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
186 | def __setProgressValues(self, jsonDict, progressType): |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
187 | """ |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
188 | Private method to set the value of the progress bar. |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
189 | |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
190 | @param jsonDict dictionary containing the progress info |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
191 | @type dict |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
192 | @param progressType action type to check for |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
193 | @type str |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
194 | @return flag indicating success |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
195 | @rtype bool |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
196 | """ |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
197 | if progressType in jsonDict and "progress" in jsonDict: |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
198 | if jsonDict["maxval"] == 1: |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
199 | self.progressBar.setMaximum(100) |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
200 | # percent values |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
201 | self.progressBar.setValue( |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
202 | int(jsonDict["progress"] * 100)) |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
203 | parts = jsonDict["fetch"].split("|") |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
204 | filename = parts[0].strip() |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
205 | filesize = parts[1].strip() |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
206 | else: |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
207 | self.progressBar.setMaximum(jsonDict["maxval"]) |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
208 | self.progressBar.setValue(jsonDict["progress"]) |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
209 | filename = jsonDict["fetch"].strip() |
6697
2f5c951bdf14
Conda interface: added capability to remove conda environments the conda way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6685
diff
changeset
|
210 | filesize = Globals.dataString(int(jsonDict["maxval"])) |
6683
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
211 | |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
212 | self.progressLabel.setText( |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
213 | self.tr("{0} (Size: {1})").format(filename, filesize)) |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
214 | |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
215 | if progressType == "fetch": |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
216 | if filename != self.__lastFetchFile: |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
217 | self.__logOutput( |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
218 | self.tr("Fetching {0} ...").format(filename)) |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
219 | self.__lastFetchFile = filename |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
220 | elif jsonDict["finished"]: |
6717
afc972591ed2
CondaExecDialog: small enhancement to the output.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6714
diff
changeset
|
221 | self.__logOutput(self.tr(" Done.\n")) |
6683
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
222 | |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
223 | if self.__firstProgress: |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
224 | self.progressLabel.show() |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
225 | self.progressBar.show() |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
226 | self.__firstProgress = False |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
227 | |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
228 | return True |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
229 | |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
230 | return False |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | def __readStdout(self): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | Private slot to handle the readyReadStandardOutput signal. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | It reads the output of the process, formats it and inserts it into |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | the contents pane. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | all_stdout = str(self.__process.readAllStandardOutput(), |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | Preferences.getSystem("IOEncoding"), |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | 'replace') |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | all_stdout = all_stdout.replace("\x00", "") |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | if self.__json: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | for stdout in all_stdout.splitlines(): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | try: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | jsonDict = json.loads(stdout.replace("\x00", "").strip()) |
6683
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
247 | if self.__setProgressValues(jsonDict, "fetch"): |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
248 | # nothing to do anymore |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
249 | pass |
aca9d39fbfbd
CondaExecDialog: finished the progress bar function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6679
diff
changeset
|
250 | elif "progress" not in jsonDict: |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | if self.__bufferedStdout is None: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | self.__bufferedStdout = stdout |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | else: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | self.__bufferedStdout += stdout |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | except (TypeError, ValueError): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | if self.__bufferedStdout is None: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | self.__bufferedStdout = stdout |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | else: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | self.__bufferedStdout += stdout |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | else: |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | self.__logOutput(all_stdout) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | def __readStderr(self): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | Private slot to handle the readyReadStandardError signal. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | It reads the error output of the process and inserts it into the |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | error pane. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | """ |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
270 | self.__process.setReadChannel(QProcess.ProcessChannel.StandardError) |
6677
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | while self.__process.canReadLine(): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | stderr = str(self.__process.readLine(), |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | Preferences.getSystem("IOEncoding"), |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | 'replace') |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | self.__logError(stderr) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | def __logOutput(self, stdout): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | Private method to log some output. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | @param stdout output string to log |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | @type str |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | self.contents.insertPlainText(stdout) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | self.contents.ensureCursorVisible() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | def __logError(self, stderr): |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | Private method to log an error. |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | @param stderr error string to log |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | @type str |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | """ |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | self.errorGroup.show() |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | self.errors.insertPlainText(stderr) |
6299d69a218a
Continued implementing environment creation with conda.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | self.errors.ensureCursorVisible() |