src/eric7/PipInterface/Pip.py

branch
eric7-maintenance
changeset 11019
27cd57e98461
parent 10941
07cad049002c
parent 11006
a671918232f3
child 11118
967a88a16a21
equal deleted inserted replaced
10947:c8df46dd566d 11019:27cd57e98461
302 """ 302 """
303 interpreter = self.getVirtualenvInterpreter(venvName) 303 interpreter = self.getVirtualenvInterpreter(venvName)
304 if not interpreter: 304 if not interpreter:
305 return 305 return
306 306
307 dia = PipDialog(self.tr("Install PIP")) 307 dia = PipDialog(self.tr("Install PIP"), parent=self.__ui)
308 commands = ( 308 commands = (
309 [(interpreter, ["-m", "ensurepip", "--user"])] 309 [(interpreter, ["-m", "ensurepip", "--user"])]
310 if userSite 310 if userSite
311 else [(interpreter, ["-m", "ensurepip"])] 311 else [(interpreter, ["-m", "ensurepip"])]
312 ) 312 )
349 ] 349 ]
350 else: 350 else:
351 args = ["-m", "pip", "install", "--ignore-installed"] 351 args = ["-m", "pip", "install", "--ignore-installed"]
352 args.append("pip") 352 args.append("pip")
353 353
354 dia = PipDialog(self.tr("Repair PIP")) 354 dia = PipDialog(self.tr("Repair PIP"), parent=self.__ui)
355 res = dia.startProcess(interpreter, args) 355 res = dia.startProcess(interpreter, args)
356 if res: 356 if res:
357 dia.exec() 357 dia.exec()
358 358
359 def __checkUpgradePyQt(self, packages): 359 def __checkUpgradePyQt(self, packages):
460 return None # should not be reached; play it safe 460 return None # should not be reached; play it safe
461 461
462 if not res: 462 if not res:
463 # user rejected PyQt6 and/or eric-ide/eric7 update 463 # user rejected PyQt6 and/or eric-ide/eric7 update
464 packages = self.__filterUpgradePackages(packages) 464 packages = self.__filterUpgradePackages(packages)
465 if not packages:
466 EricMessageBox.information(
467 None,
468 self.tr("Upgrade Packages"),
469 self.tr(
470 "There are no packages except 'eric-ide' or 'PyQt6'"
471 " left for upgrade."
472 ),
473 )
474 return False
465 except AttributeError: 475 except AttributeError:
466 return False 476 return False
467 477
468 if Preferences.getPip("PipSearchIndex"): 478 if Preferences.getPip("PipSearchIndex"):
469 indexUrl = Preferences.getPip("PipSearchIndex") + "/simple" 479 indexUrl = Preferences.getPip("PipSearchIndex") + "/simple"
471 else: 481 else:
472 args = ["-m", "pip", "install", "--upgrade"] 482 args = ["-m", "pip", "install", "--upgrade"]
473 if userSite: 483 if userSite:
474 args.append("--user") 484 args.append("--user")
475 args += packages 485 args += packages
476 dia = PipDialog(self.tr("Upgrade Packages")) 486 dia = PipDialog(self.tr("Upgrade Packages"), parent=self.__ui)
477 res = dia.startProcess(interpreter, args) 487 res = dia.startProcess(interpreter, args)
478 if res: 488 if res:
479 dia.exec() 489 dia.exec()
480 return res 490 return res
481 491
517 if userSite: 527 if userSite:
518 args.append("--user") 528 args.append("--user")
519 if forceReinstall: 529 if forceReinstall:
520 args.append("--force-reinstall") 530 args.append("--force-reinstall")
521 args += packages 531 args += packages
522 dia = PipDialog(self.tr("Install Packages")) 532 dia = PipDialog(self.tr("Install Packages"), parent=self.__ui)
523 res = dia.startProcess(interpreter, args) 533 res = dia.startProcess(interpreter, args)
524 if res: 534 if res:
525 dia.exec() 535 dia.exec()
526 536
527 def installRequirements(self, venvName): 537 def installRequirements(self, venvName):
531 @param venvName name of the virtual environment to be used 541 @param venvName name of the virtual environment to be used
532 @type str 542 @type str
533 """ 543 """
534 from .PipFileSelectionDialog import PipFileSelectionDialog 544 from .PipFileSelectionDialog import PipFileSelectionDialog
535 545
536 dlg = PipFileSelectionDialog("requirements") 546 dlg = PipFileSelectionDialog("requirements", parent=self.__ui)
537 if dlg.exec() == QDialog.DialogCode.Accepted: 547 if dlg.exec() == QDialog.DialogCode.Accepted:
538 requirements, user = dlg.getData() 548 requirements, user = dlg.getData()
539 if requirements and os.path.exists(requirements): 549 if requirements and os.path.exists(requirements):
540 interpreter = self.getVirtualenvInterpreter(venvName) 550 interpreter = self.getVirtualenvInterpreter(venvName)
541 if not interpreter: 551 if not interpreter:
547 else: 557 else:
548 args = ["-m", "pip", "install"] 558 args = ["-m", "pip", "install"]
549 if user: 559 if user:
550 args.append("--user") 560 args.append("--user")
551 args += ["--requirement", requirements] 561 args += ["--requirement", requirements]
552 dia = PipDialog(self.tr("Install Packages from Requirements")) 562 dia = PipDialog(
563 self.tr("Install Packages from Requirements"), parent=self.__ui
564 )
553 res = dia.startProcess(interpreter, args) 565 res = dia.startProcess(interpreter, args)
554 if res: 566 if res:
555 dia.exec() 567 dia.exec()
556 568
557 def installEditableProject(self, interpreter, projectPath): 569 def installEditableProject(self, interpreter, projectPath):
568 if Preferences.getPip("PipSearchIndex"): 580 if Preferences.getPip("PipSearchIndex"):
569 indexUrl = Preferences.getPip("PipSearchIndex") + "/simple" 581 indexUrl = Preferences.getPip("PipSearchIndex") + "/simple"
570 args += ["--index-url", indexUrl] 582 args += ["--index-url", indexUrl]
571 args += ["--editable", projectPath] 583 args += ["--editable", projectPath]
572 584
573 dia = PipDialog(self.tr("Install Project")) 585 dia = PipDialog(self.tr("Install Project"), parent=self.__ui)
574 res = dia.startProcess(interpreter, args) 586 res = dia.startProcess(interpreter, args)
575 if res: 587 if res:
576 dia.exec() 588 dia.exec()
577 589
578 def installPyprojectDependencies(self, venvName): 590 def installPyprojectDependencies(self, venvName):
582 @param venvName name of the virtual environment to be used 594 @param venvName name of the virtual environment to be used
583 @type str 595 @type str
584 """ 596 """
585 from .PipFileSelectionDialog import PipFileSelectionDialog 597 from .PipFileSelectionDialog import PipFileSelectionDialog
586 598
587 dlg = PipFileSelectionDialog("pyproject") 599 dlg = PipFileSelectionDialog("pyproject", parent=self.__ui)
588 if dlg.exec() == QDialog.DialogCode.Accepted: 600 if dlg.exec() == QDialog.DialogCode.Accepted:
589 pyproject, user = dlg.getData() 601 pyproject, user = dlg.getData()
590 if pyproject and os.path.exists(pyproject): 602 if pyproject and os.path.exists(pyproject):
591 try: 603 try:
592 with open(pyproject, "r", encoding="utf-8") as f: 604 with open(pyproject, "r", encoding="utf-8") as f:
623 else: 635 else:
624 args = ["-m", "pip", "install"] 636 args = ["-m", "pip", "install"]
625 if user: 637 if user:
626 args.append("--user") 638 args.append("--user")
627 args += dependencies 639 args += dependencies
628 dia = PipDialog(self.tr("Install Packages from 'pyproject.toml'")) 640 dia = PipDialog(
641 self.tr("Install Packages from 'pyproject.toml'"), parent=self.__ui
642 )
629 res = dia.startProcess(interpreter, args) 643 res = dia.startProcess(interpreter, args)
630 if res: 644 if res:
631 dia.exec() 645 dia.exec()
632 646
633 def uninstallPackages(self, packages, venvName): 647 def uninstallPackages(self, packages, venvName):
652 if dlg.exec() == QDialog.DialogCode.Accepted: 666 if dlg.exec() == QDialog.DialogCode.Accepted:
653 interpreter = self.getVirtualenvInterpreter(venvName) 667 interpreter = self.getVirtualenvInterpreter(venvName)
654 if not interpreter: 668 if not interpreter:
655 return False 669 return False
656 args = ["-m", "pip", "uninstall", "--yes"] + packages 670 args = ["-m", "pip", "uninstall", "--yes"] + packages
657 dia = PipDialog(self.tr("Uninstall Packages")) 671 dia = PipDialog(self.tr("Uninstall Packages"), parent=self.__ui)
658 res = dia.startProcess(interpreter, args) 672 res = dia.startProcess(interpreter, args)
659 if res: 673 if res:
660 dia.exec() 674 dia.exec()
661 return res 675 return res
662 676
668 @type str 682 @type str
669 """ 683 """
670 from .PipFileSelectionDialog import PipFileSelectionDialog 684 from .PipFileSelectionDialog import PipFileSelectionDialog
671 685
672 if venvName: 686 if venvName:
673 dlg = PipFileSelectionDialog("requirements", install=False) 687 dlg = PipFileSelectionDialog(
688 "requirements", install=False, parent=self.__ui
689 )
674 if dlg.exec() == QDialog.DialogCode.Accepted: 690 if dlg.exec() == QDialog.DialogCode.Accepted:
675 requirements, _user = dlg.getData() 691 requirements, _user = dlg.getData()
676 if requirements and os.path.exists(requirements): 692 if requirements and os.path.exists(requirements):
677 try: 693 try:
678 with open(requirements, "r") as f: 694 with open(requirements, "r") as f:
697 "uninstall", 713 "uninstall",
698 "--yes", 714 "--yes",
699 "--requirement", 715 "--requirement",
700 requirements, 716 requirements,
701 ] 717 ]
702 dia = PipDialog(self.tr("Uninstall Packages from Requirements")) 718 dia = PipDialog(
719 self.tr("Uninstall Packages from Requirements"),
720 parent=self.__ui,
721 )
703 res = dia.startProcess(interpreter, args) 722 res = dia.startProcess(interpreter, args)
704 if res: 723 if res:
705 dia.exec() 724 dia.exec()
706 725
707 def uninstallPyprojectDependencies(self, venvName): 726 def uninstallPyprojectDependencies(self, venvName):
712 @type str 731 @type str
713 """ 732 """
714 from .PipFileSelectionDialog import PipFileSelectionDialog 733 from .PipFileSelectionDialog import PipFileSelectionDialog
715 734
716 if venvName: 735 if venvName:
717 dlg = PipFileSelectionDialog("pyproject", install=False) 736 dlg = PipFileSelectionDialog("pyproject", install=False, parent=self.__ui)
718 if dlg.exec() == QDialog.DialogCode.Accepted: 737 if dlg.exec() == QDialog.DialogCode.Accepted:
719 pyproject, _user = dlg.getData() 738 pyproject, _user = dlg.getData()
720 if pyproject and os.path.exists(pyproject): 739 if pyproject and os.path.exists(pyproject):
721 try: 740 try:
722 with open(pyproject, "r", encoding="utf-8") as f: 741 with open(pyproject, "r", encoding="utf-8") as f:
762 if not interpreter: 781 if not interpreter:
763 return 782 return
764 783
765 args = ["-m", "pip", "uninstall", "--yes"] + dependencies 784 args = ["-m", "pip", "uninstall", "--yes"] + dependencies
766 dia = PipDialog( 785 dia = PipDialog(
767 self.tr("Uninstall Packages from 'pyproject.toml'") 786 self.tr("Uninstall Packages from 'pyproject.toml'"),
787 parent=self.__ui,
768 ) 788 )
769 res = dia.startProcess(interpreter, args) 789 res = dia.startProcess(interpreter, args)
770 if res: 790 if res:
771 dia.exec() 791 dia.exec()
772 792
1170 """ 1190 """
1171 if venvName: 1191 if venvName:
1172 interpreter = self.getVirtualenvInterpreter(venvName) 1192 interpreter = self.getVirtualenvInterpreter(venvName)
1173 if interpreter: 1193 if interpreter:
1174 args = ["-m", "pip", "cache", "info"] 1194 args = ["-m", "pip", "cache", "info"]
1175 dia = PipDialog(self.tr("Cache Info")) 1195 dia = PipDialog(self.tr("Cache Info"), parent=self.__ui)
1176 res = dia.startProcess(interpreter, args, showArgs=False) 1196 res = dia.startProcess(interpreter, args, showArgs=False)
1177 if res: 1197 if res:
1178 dia.exec() 1198 dia.exec()
1179 1199
1180 def cacheList(self, venvName): 1200 def cacheList(self, venvName):
1196 1216
1197 if ok: 1217 if ok:
1198 args = ["-m", "pip", "cache", "list"] 1218 args = ["-m", "pip", "cache", "list"]
1199 if pattern.strip(): 1219 if pattern.strip():
1200 args.append(pattern.strip()) 1220 args.append(pattern.strip())
1201 dia = PipDialog(self.tr("List Cached Files")) 1221 dia = PipDialog(self.tr("List Cached Files"), parent=self.__ui)
1202 res = dia.startProcess(interpreter, args, showArgs=False) 1222 res = dia.startProcess(interpreter, args, showArgs=False)
1203 if res: 1223 if res:
1204 dia.exec() 1224 dia.exec()
1205 1225
1206 def cacheRemove(self, venvName): 1226 def cacheRemove(self, venvName):
1220 QLineEdit.EchoMode.Normal, 1240 QLineEdit.EchoMode.Normal,
1221 ) 1241 )
1222 1242
1223 if ok and pattern.strip(): 1243 if ok and pattern.strip():
1224 args = ["-m", "pip", "cache", "remove", pattern.strip()] 1244 args = ["-m", "pip", "cache", "remove", pattern.strip()]
1225 dia = PipDialog(self.tr("Remove Cached Files")) 1245 dia = PipDialog(self.tr("Remove Cached Files"), parent=self.__ui)
1226 res = dia.startProcess(interpreter, args, showArgs=False) 1246 res = dia.startProcess(interpreter, args, showArgs=False)
1227 if res: 1247 if res:
1228 dia.exec() 1248 dia.exec()
1229 1249
1230 def cachePurge(self, venvName): 1250 def cachePurge(self, venvName):
1245 " files need to be downloaded again." 1265 " files need to be downloaded again."
1246 ), 1266 ),
1247 ) 1267 )
1248 if ok: 1268 if ok:
1249 args = ["-m", "pip", "cache", "purge"] 1269 args = ["-m", "pip", "cache", "purge"]
1250 dia = PipDialog(self.tr("Purge Cache")) 1270 dia = PipDialog(self.tr("Purge Cache"), parent=self.__ui)
1251 res = dia.startProcess(interpreter, args, showArgs=False) 1271 res = dia.startProcess(interpreter, args, showArgs=False)
1252 if res: 1272 if res:
1253 dia.exec() 1273 dia.exec()
1254 1274
1255 ####################################################################### 1275 #######################################################################

eric ide

mercurial