eric7/PipInterface/PipPackagesWidget.py

branch
eric7
changeset 9117
c6afba2049cf
parent 9114
d8abe530dae0
child 9120
5fb0ffe30569
diff -r 698660ef7350 -r c6afba2049cf eric7/PipInterface/PipPackagesWidget.py
--- a/eric7/PipInterface/PipPackagesWidget.py	Fri Jun 03 12:09:02 2022 +0200
+++ b/eric7/PipInterface/PipPackagesWidget.py	Fri Jun 03 19:54:57 2022 +0200
@@ -1200,6 +1200,10 @@
             self.tr("Update Vulnerability Database"),
             self.__updateVulnerabilityDbCache)
         self.__pipMenu.addSeparator()
+        self.__cyclonedxAct = self.__pipMenu.addAction(
+            self.tr("Create SBOM file"),
+            self.__createSBOMFile)
+        self.__pipMenu.addSeparator()
         self.__cacheInfoAct = self.__pipMenu.addAction(
             self.tr("Show Cache Info..."),
             self.__showCacheInfo)
@@ -1260,6 +1264,8 @@
         self.__checkVulnerabilityAct.setEnabled(
             enable & self.vulnerabilityCheckBox.isEnabled())
         
+        self.__cyclonedxAct.setEnabled(enable)
+        
         self.__showLicensesDialogAct.setEnabled(enable)
     
     @pyqtSlot()
@@ -1850,3 +1856,19 @@
             parent=self
         )
         dlg.exec()
+    
+    ##################################################################
+    ## Interface to create a SBOM file using CycloneDX
+    ##################################################################
+    
+    @pyqtSlot()
+    def __createSBOMFile(self):
+        """
+        Private slot to create a "Software Bill Of Material" file.
+        """
+        import CycloneDXInterface
+        
+        venvName = self.environmentsComboBox.currentText()
+        if venvName == self.__pip.getProjectEnvironmentString():
+            venvName = "<project>"
+        CycloneDXInterface.createCycloneDXFile(venvName)

eric ide

mercurial