eric6/PipInterface/PipFreezeDialog.py

branch
maintenance
changeset 7824
096b3ebc1409
parent 7362
028bf21bb5a2
parent 7785
9978016560ec
child 7850
e64b178499da
equal deleted inserted replaced
7738:10554f5fac78 7824:096b3ebc1409
4 # 4 #
5 5
6 """ 6 """
7 Module implementing a dialog to generate a requirements file. 7 Module implementing a dialog to generate a requirements file.
8 """ 8 """
9
10 9
11 import os 10 import os
12 11
13 from PyQt5.QtCore import pyqtSlot, Qt 12 from PyQt5.QtCore import pyqtSlot, Qt
14 from PyQt5.QtWidgets import ( 13 from PyQt5.QtWidgets import (
16 ) 15 )
17 16
18 from E5Gui import E5MessageBox, E5FileDialog 17 from E5Gui import E5MessageBox, E5FileDialog
19 from E5Gui.E5PathPicker import E5PathPickerModes 18 from E5Gui.E5PathPicker import E5PathPickerModes
20 from E5Gui.E5Application import e5App 19 from E5Gui.E5Application import e5App
20 from E5Gui.E5OverrideCursor import E5OverrideCursor
21 21
22 from .Ui_PipFreezeDialog import Ui_PipFreezeDialog 22 from .Ui_PipFreezeDialog import Ui_PipFreezeDialog
23 23
24 import Utilities 24 import Utilities
25 25
60 Protected slot implementing a close event handler. 60 Protected slot implementing a close event handler.
61 61
62 @param e close event 62 @param e close event
63 @type QCloseEvent 63 @type QCloseEvent
64 """ 64 """
65 QApplication.restoreOverrideCursor()
66 e.accept() 65 e.accept()
67 66
68 @pyqtSlot(bool) 67 @pyqtSlot(bool)
69 def on_localCheckBox_clicked(self, checked): 68 def on_localCheckBox_clicked(self, checked):
70 """ 69 """
142 self.requirementsFilePicker.text()) 141 self.requirementsFilePicker.text())
143 if os.path.exists(fileName): 142 if os.path.exists(fileName):
144 args.append("--requirement") 143 args.append("--requirement")
145 args.append(fileName) 144 args.append(fileName)
146 145
147 QApplication.setOverrideCursor(Qt.WaitCursor) 146 with E5OverrideCursor():
148 success, output = self.__pip.runProcess(args, interpreter) 147 success, output = self.__pip.runProcess(args, interpreter)
149 148
150 if success: 149 if success:
151 self.requirementsEdit.setPlainText(output) 150 self.requirementsEdit.setPlainText(output)
152 self.__requirementsAvailable = True 151 self.__requirementsAvailable = True
153 else: 152 else:
154 self.requirementsEdit.setPlainText( 153 self.requirementsEdit.setPlainText(
155 self.tr("No output generated by 'pip freeze'.")) 154 self.tr("No output generated by 'pip freeze'."))
156 155
157 QApplication.restoreOverrideCursor()
158 self.__updateButtons() 156 self.__updateButtons()
159 157
160 self.__requirementsEdited = False 158 self.__requirementsEdited = False
161 159
162 def __updateButtons(self): 160 def __updateButtons(self):
196 """ to overwrite it?""").format(fileName)) 194 """ to overwrite it?""").format(fileName))
197 if not ok: 195 if not ok:
198 return 196 return
199 197
200 try: 198 try:
201 f = open(fileName, "w") 199 with open(fileName, "w") as f:
202 f.write(self.requirementsEdit.toPlainText()) 200 f.write(self.requirementsEdit.toPlainText())
203 f.close()
204 except (OSError, IOError) as err: 201 except (OSError, IOError) as err:
205 E5MessageBox.critical( 202 E5MessageBox.critical(
206 self, 203 self,
207 self.tr("Generate Requirements"), 204 self.tr("Generate Requirements"),
208 self.tr("""<p>The requirements could not be written""" 205 self.tr("""<p>The requirements could not be written"""

eric ide

mercurial