125 |
125 |
126 ############################################## |
126 ############################################## |
127 ## Actions for installing packages |
127 ## Actions for installing packages |
128 ############################################## |
128 ############################################## |
129 |
129 |
130 # TODO: add action to install a downloaded wheel via pip |
|
131 self.installPackagesAct = E5Action( |
130 self.installPackagesAct = E5Action( |
132 self.tr('Install Packages'), |
131 self.tr('Install Packages'), |
133 self.tr('&Install Packages'), |
132 self.tr('&Install Packages'), |
134 0, 0, |
133 0, 0, |
135 self, 'pip_install_packages') |
134 self, 'pip_install_packages') |
139 """<b>Install Packages</b>""" |
138 """<b>Install Packages</b>""" |
140 """<p>This installs packages according to user input.</p>""" |
139 """<p>This installs packages according to user input.</p>""" |
141 )) |
140 )) |
142 self.installPackagesAct.triggered.connect(self.__installPackages) |
141 self.installPackagesAct.triggered.connect(self.__installPackages) |
143 self.actions.append(self.installPackagesAct) |
142 self.actions.append(self.installPackagesAct) |
|
143 |
|
144 self.installLocalPackageAct = E5Action( |
|
145 self.tr('Install Local Package'), |
|
146 self.tr('Install Local Package'), |
|
147 0, 0, |
|
148 self, 'pip_install_local_package') |
|
149 self.installLocalPackageAct.setStatusTip(self.tr( |
|
150 'Install a package from local storage')) |
|
151 self.installLocalPackageAct.setWhatsThis(self.tr( |
|
152 """<b>Install Local Package</b>""" |
|
153 """<p>This installs a package available on local storage.</p>""" |
|
154 )) |
|
155 self.installLocalPackageAct.triggered.connect( |
|
156 self.__installLocalPackage) |
|
157 self.actions.append(self.installLocalPackageAct) |
144 |
158 |
145 self.installRequirementsAct = E5Action( |
159 self.installRequirementsAct = E5Action( |
146 self.tr('Install Requirements'), |
160 self.tr('Install Requirements'), |
147 self.tr('Install Requirements'), |
161 self.tr('Install Requirements'), |
148 0, 0, |
162 0, 0, |
354 menu.addAction(self.listUptodatePackagesAct) |
368 menu.addAction(self.listUptodatePackagesAct) |
355 menu.addAction(self.listOutdatedPackagesAct) |
369 menu.addAction(self.listOutdatedPackagesAct) |
356 menu.addSeparator() |
370 menu.addSeparator() |
357 menu.addAction(self.installPipAct) |
371 menu.addAction(self.installPipAct) |
358 menu.addAction(self.installPackagesAct) |
372 menu.addAction(self.installPackagesAct) |
|
373 menu.addAction(self.installLocalPackageAct) |
359 menu.addAction(self.installRequirementsAct) |
374 menu.addAction(self.installRequirementsAct) |
360 menu.addSeparator() |
375 menu.addSeparator() |
361 menu.addAction(self.upgradePipAct) |
376 menu.addAction(self.upgradePipAct) |
362 menu.addAction(self.upgradePackagesAct) |
377 menu.addAction(self.upgradePackagesAct) |
363 menu.addSeparator() |
378 menu.addSeparator() |
930 if dlg.exec_() == QDialog.Accepted: |
945 if dlg.exec_() == QDialog.Accepted: |
931 command, packages = dlg.getData() |
946 command, packages = dlg.getData() |
932 if packages: |
947 if packages: |
933 self.installPackages(packages, cmd=command) |
948 self.installPackages(packages, cmd=command) |
934 |
949 |
|
950 def __installLocalPackage(self): |
|
951 """ |
|
952 Private slot to install a package available on local storage. |
|
953 """ |
|
954 from .PipFileSelectionDialog import PipFileSelectionDialog |
|
955 dlg = PipFileSelectionDialog(self.__plugin, "package") |
|
956 if dlg.exec_() == QDialog.Accepted: |
|
957 command, package = dlg.getData() |
|
958 if package and os.path.exists(package): |
|
959 self.installPackages([package], cmd=command) |
|
960 |
935 def __installRequirements(self): |
961 def __installRequirements(self): |
936 """ |
962 """ |
937 Private slot to install packages as given in a requirements file. |
963 Private slot to install packages as given in a requirements file. |
938 """ |
964 """ |
939 from .PipRequirementsSelectionDialog import \ |
965 from .PipFileSelectionDialog import PipFileSelectionDialog |
940 PipRequirementsSelectionDialog |
966 dlg = PipFileSelectionDialog(self.__plugin, "requirements") |
941 dlg = PipRequirementsSelectionDialog(self.__plugin) |
|
942 if dlg.exec_() == QDialog.Accepted: |
967 if dlg.exec_() == QDialog.Accepted: |
943 command, requirements = dlg.getData() |
968 command, requirements = dlg.getData() |
944 if requirements and os.path.exists(requirements): |
969 if requirements and os.path.exists(requirements): |
945 if not command: |
970 if not command: |
946 command = self.__plugin.getPreferences( |
971 command = self.__plugin.getPreferences( |
1000 |
1025 |
1001 def __uninstallRequirements(self): |
1026 def __uninstallRequirements(self): |
1002 """ |
1027 """ |
1003 Private slot to uninstall packages as given in a requirements file. |
1028 Private slot to uninstall packages as given in a requirements file. |
1004 """ |
1029 """ |
1005 from .PipRequirementsSelectionDialog import \ |
1030 from .PipFileSelectionDialog import PipFileSelectionDialog |
1006 PipRequirementsSelectionDialog |
1031 dlg = PipFileSelectionDialog(self.__plugin, "requirements") |
1007 dlg = PipRequirementsSelectionDialog(self.__plugin) |
|
1008 if dlg.exec_() == QDialog.Accepted: |
1032 if dlg.exec_() == QDialog.Accepted: |
1009 command, requirements = dlg.getData() |
1033 command, requirements = dlg.getData() |
1010 if requirements and os.path.exists(requirements): |
1034 if requirements and os.path.exists(requirements): |
1011 try: |
1035 try: |
1012 f = open(requirements, "r") |
1036 f = open(requirements, "r") |