147 @rtype list of dict |
148 @rtype list of dict |
148 """ |
149 """ |
149 return self.__results |
150 return self.__results |
150 |
151 |
151 |
152 |
|
153 class PipPackageInformationMode(enum.Enum): |
|
154 """ |
|
155 Class defining the show information process modes. |
|
156 """ |
|
157 |
|
158 General = 0 |
|
159 Classifiers = 1 |
|
160 EntryPoints = 2 |
|
161 FilesList = 3 |
|
162 UrlsList = 4 |
|
163 |
|
164 |
152 class PipPackagesWidget(QWidget, Ui_PipPackagesWidget): |
165 class PipPackagesWidget(QWidget, Ui_PipPackagesWidget): |
153 """ |
166 """ |
154 Class implementing the pip packages management widget. |
167 Class implementing the pip packages management widget. |
155 """ |
168 """ |
156 |
|
157 # TODO: change this to an enum |
|
158 ShowProcessGeneralMode = 0 |
|
159 ShowProcessClassifiersMode = 1 |
|
160 ShowProcessEntryPointsMode = 2 |
|
161 ShowProcessFilesListMode = 3 |
|
162 ShowProcessUrlsListMode = 4 |
|
163 |
169 |
164 SearchVersionRole = Qt.ItemDataRole.UserRole + 1 |
170 SearchVersionRole = Qt.ItemDataRole.UserRole + 1 |
165 VulnerabilityRole = Qt.ItemDataRole.UserRole + 2 |
171 VulnerabilityRole = Qt.ItemDataRole.UserRole + 2 |
166 |
172 |
167 PackageColumn = 0 |
173 PackageColumn = 0 |
584 |
590 |
585 with EricOverrideCursor(): |
591 with EricOverrideCursor(): |
586 success, output = self.__pip.runProcess(args, interpreter) |
592 success, output = self.__pip.runProcess(args, interpreter) |
587 |
593 |
588 if success and output: |
594 if success and output: |
589 mode = self.ShowProcessGeneralMode |
595 mode = PipPackageInformationMode.General |
590 for line in output.splitlines(): |
596 for line in output.splitlines(): |
591 line = line.rstrip() |
597 line = line.rstrip() |
592 if line and line != "---": |
598 if line and line != "---": |
593 if mode != self.ShowProcessGeneralMode: |
599 if mode != PipPackageInformationMode.General: |
594 if line[0] == " ": |
600 if line[0] == " ": |
595 QTreeWidgetItem(infoWidget, [" ", line.strip()]) |
601 QTreeWidgetItem(infoWidget, [" ", line.strip()]) |
596 else: |
602 else: |
597 mode = self.ShowProcessGeneralMode |
603 mode = PipPackageInformationMode.General |
598 if mode == self.ShowProcessGeneralMode: |
604 if mode == PipPackageInformationMode.General: |
599 try: |
605 try: |
600 label, info = line.split(": ", 1) |
606 label, info = line.split(": ", 1) |
601 except ValueError: |
607 except ValueError: |
602 label = line[:-1] |
608 label = line[:-1] |
603 info = "" |
609 info = "" |
605 if label in self.__infoLabels: |
611 if label in self.__infoLabels: |
606 QTreeWidgetItem( |
612 QTreeWidgetItem( |
607 infoWidget, [self.__infoLabels[label], info] |
613 infoWidget, [self.__infoLabels[label], info] |
608 ) |
614 ) |
609 if label == "files": |
615 if label == "files": |
610 mode = self.ShowProcessFilesListMode |
616 mode = PipPackageInformationMode.FilesList |
611 elif label == "classifiers": |
617 elif label == "classifiers": |
612 mode = self.ShowProcessClassifiersMode |
618 mode = PipPackageInformationMode.Classifiers |
613 elif label == "entry-points": |
619 elif label == "entry-points": |
614 mode = self.ShowProcessEntryPointsMode |
620 mode = PipPackageInformationMode.EntryPoints |
615 elif label == "project-urls": |
621 elif label == "project-urls": |
616 mode = self.ShowProcessUrlsListMode |
622 mode = PipPackageInformationMode.UrlsList |
617 infoWidget.scrollToTop() |
623 infoWidget.scrollToTop() |
618 |
624 |
619 header = infoWidget.header() |
625 header = infoWidget.header() |
620 header.setStretchLastSection(False) |
626 header.setStretchLastSection(False) |
621 header.resizeSections(QHeaderView.ResizeMode.ResizeToContents) |
627 header.resizeSections(QHeaderView.ResizeMode.ResizeToContents) |