src/eric7/PipInterface/PipLicensesDialog.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9264
18a7312cfdb3
child 9413
80c06d472826
--- a/src/eric7/PipInterface/PipLicensesDialog.py	Wed Jul 13 11:16:20 2022 +0200
+++ b/src/eric7/PipInterface/PipLicensesDialog.py	Wed Jul 13 14:55:47 2022 +0200
@@ -23,18 +23,20 @@
     """
     Class implementing a dialog to show the licenses of an environment.
     """
+
     LicensesPackageColumn = 0
     LicensesVersionColumn = 1
     LicensesLicenseColumn = 2
-    
+
     SummaryCountColumn = 0
     SummaryLicenseColumn = 1
-    
-    def __init__(self, pip, environment, localPackages=True, usersite=False,
-                 parent=None):
+
+    def __init__(
+        self, pip, environment, localPackages=True, usersite=False, parent=None
+    ):
         """
         Constructor
-        
+
         @param pip reference to the pip interface object
         @type Pip
         @param environment name of the environment to show the licenses for
@@ -50,38 +52,39 @@
         """
         super().__init__(parent)
         self.setupUi(self)
-        
+
         self.__pip = pip
         self.__environment = environment
-        
+
         self.__allFilter = self.tr("<All>")
-        
+
         self.__saveCSVButton = self.buttonBox.addButton(
-            self.tr("Save as CSV..."), QDialogButtonBox.ButtonRole.ActionRole)
+            self.tr("Save as CSV..."), QDialogButtonBox.ButtonRole.ActionRole
+        )
         self.__saveCSVButton.clicked.connect(self.__saveAsCSV)
-        
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Close).setDefault(True)
-        
+
+        self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
+
         self.localCheckBox.setChecked(localPackages)
         self.userCheckBox.setChecked(usersite)
-        
+
         self.localCheckBox.toggled.connect(self.__refreshLicenses)
         self.userCheckBox.toggled.connect(self.__refreshLicenses)
-        
+
         if environment:
-            self.environmentLabel.setText("<b>{0}</b>".format(
-                self.tr('Licenses of "{0}"').format(environment)
-            ))
+            self.environmentLabel.setText(
+                "<b>{0}</b>".format(self.tr('Licenses of "{0}"').format(environment))
+            )
         else:
             # That should never happen; play it safe.
             self.environmentLabel.setText(self.tr("No environment specified."))
-        
+
         self.licenseFilterComboBox.currentTextChanged.connect(
-            self.__filterPackagesByLicense)
-        
+            self.__filterPackagesByLicense
+        )
+
         self.__refreshLicenses()
-        
+
     @pyqtSlot()
     def __refreshLicenses(self):
         """
@@ -91,9 +94,9 @@
             self.licensesList.clear()
             self.summaryList.clear()
             self.licenseFilterComboBox.clear()
-            
+
             licensesForFilter = set()
-            
+
             # step 1: show the licenses per package
             self.licensesList.setUpdatesEnabled(False)
             licenses = self.__pip.getLicenses(
@@ -102,19 +105,22 @@
                 usersite=self.userCheckBox.isChecked(),
             )
             for lic in licenses:
-                QTreeWidgetItem(self.licensesList, [
-                    lic["Name"],
-                    lic["Version"],
-                    lic["License"].replace("; ", "\n"),
-                ])
-            
+                QTreeWidgetItem(
+                    self.licensesList,
+                    [
+                        lic["Name"],
+                        lic["Version"],
+                        lic["License"].replace("; ", "\n"),
+                    ],
+                )
+
             self.licensesList.sortItems(
-                PipLicensesDialog.LicensesPackageColumn,
-                Qt.SortOrder.AscendingOrder)
+                PipLicensesDialog.LicensesPackageColumn, Qt.SortOrder.AscendingOrder
+            )
             for col in range(self.licensesList.columnCount()):
                 self.licensesList.resizeColumnToContents(col)
             self.licensesList.setUpdatesEnabled(True)
-            
+
             # step 2: show the licenses summary
             self.summaryList.setUpdatesEnabled(False)
             licenses = self.__pip.getLicensesSummary(
@@ -123,30 +129,34 @@
                 usersite=self.userCheckBox.isChecked(),
             )
             for lic in licenses:
-                QTreeWidgetItem(self.summaryList, [
-                    "{0:4d}".format(lic["Count"]),
-                    lic["License"].replace("; ", "\n"),
-                ])
+                QTreeWidgetItem(
+                    self.summaryList,
+                    [
+                        "{0:4d}".format(lic["Count"]),
+                        lic["License"].replace("; ", "\n"),
+                    ],
+                )
                 licensesForFilter |= set(lic["License"].split("; "))
-            
+
             self.summaryList.sortItems(
-                PipLicensesDialog.SummaryLicenseColumn,
-                Qt.SortOrder.AscendingOrder)
+                PipLicensesDialog.SummaryLicenseColumn, Qt.SortOrder.AscendingOrder
+            )
             for col in range(self.summaryList.columnCount()):
                 self.summaryList.resizeColumnToContents(col)
             self.summaryList.setUpdatesEnabled(True)
-            
+
             self.licenseFilterComboBox.addItems(
-                [self.__allFilter] + sorted(licensesForFilter))
-        
+                [self.__allFilter] + sorted(licensesForFilter)
+            )
+
         enable = bool(self.licensesList.topLevelItemCount())
         self.__saveCSVButton.setEnabled(enable)
-    
+
     @pyqtSlot(str)
     def __filterPackagesByLicense(self, licenseName):
         """
         Private slot to filter the list of packages by license.
-        
+
         @param licenseName license name
         @type str
         """
@@ -160,25 +170,24 @@
                 itm.setHidden(False)
             else:
                 itm.setHidden(
-                    regexp.search(
-                        itm.text(PipLicensesDialog.LicensesLicenseColumn)
-                    ) is None
+                    regexp.search(itm.text(PipLicensesDialog.LicensesLicenseColumn))
+                    is None
                 )
-    
+
     @pyqtSlot()
     def __saveAsCSV(self):
         """
         Private slot to save the license information as a CSV file.
         """
         import csv
-        
+
         fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save as CSV"),
             os.path.expanduser("~"),
             self.tr("CSV Files (*.csv);;All Files (*)"),
             None,
-            EricFileDialog.DontConfirmOverwrite
+            EricFileDialog.DontConfirmOverwrite,
         )
         if fileName:
             ext = os.path.splitext(fileName)[1]
@@ -186,21 +195,22 @@
                 ex = selectedFilter.split("(*")[1].split(")")[0]
                 if ex:
                     fileName += ex
-            
+
             try:
-                with open(fileName, "w", newline="",
-                          encoding="utf-8") as csvFile:
+                with open(fileName, "w", newline="", encoding="utf-8") as csvFile:
                     fieldNames = ["Name", "Version", "License"]
                     writer = csv.DictWriter(csvFile, fieldnames=fieldNames)
-                    
+
                     writer.writeheader()
                     for row in range(self.licensesList.topLevelItemCount()):
                         itm = self.licensesList.topLevelItem(row)
-                        writer.writerow({
-                            "Name": itm.text(0),
-                            "Version": itm.text(1),
-                            "License": itm.text(2),
-                        })
+                        writer.writerow(
+                            {
+                                "Name": itm.text(0),
+                                "Version": itm.text(1),
+                                "License": itm.text(2),
+                            }
+                        )
             except OSError as err:
                 EricMessageBox.critical(
                     self,
@@ -209,5 +219,5 @@
                         """<p>The license information could not be saved"""
                         """ into the CSV file <b>{0}</b>.</p>"""
                         """<p>Reason: {1}</p>"""
-                    ).format(fileName, str(err))
+                    ).format(fileName, str(err)),
                 )

eric ide

mercurial