src/eric7/Documentation/Source/eric7.PipInterface.PipVulnerabilityChecker.html

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8983
46eaed7bf3cb
child 10229
e50bbf250343
diff -r 3fc8dfeb6ebe -r b99e7fd55fd3 src/eric7/Documentation/Source/eric7.PipInterface.PipVulnerabilityChecker.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/Documentation/Source/eric7.PipInterface.PipVulnerabilityChecker.html	Thu Jul 07 11:23:56 2022 +0200
@@ -0,0 +1,393 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric7.PipInterface.PipVulnerabilityChecker</title>
+<meta charset="UTF-8">
+<link rel="stylesheet" href="styles.css">
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric7.PipInterface.PipVulnerabilityChecker</h1>
+
+<p>
+Module implementing a Python package vulnerability checker.
+</p>
+<p>
+The vulnerability data is provided by the open Python vulnerability database
+<a href="https://github.com/pyupio/safety-db">Safety DB</a>.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#Package">Package</a></td>
+<td>Class containing the package data.</td>
+</tr>
+<tr>
+<td><a href="#PipVulnerabilityChecker">PipVulnerabilityChecker</a></td>
+<td>Class implementing a Python package vulnerability checker.</td>
+</tr>
+<tr>
+<td><a href="#Vulnerability">Vulnerability</a></td>
+<td>Class containing the vulnerability data.</td>
+</tr>
+<tr>
+<td><a href="#VulnerabilityCheckError">VulnerabilityCheckError</a></td>
+<td>Class defining various vulnerability check error states.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="Package" ID="Package"></a>
+<h2>Package</h2>
+
+<p>
+    Class containing the package data.
+</p>
+<h3>Derived from</h3>
+None
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="PipVulnerabilityChecker" ID="PipVulnerabilityChecker"></a>
+<h2>PipVulnerabilityChecker</h2>
+
+<p>
+    Class implementing a Python package vulnerability checker.
+</p>
+<h3>Derived from</h3>
+QObject
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>FullDbFile</td></tr><tr><td>SummaryDbFile</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#PipVulnerabilityChecker.__init__">PipVulnerabilityChecker</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#PipVulnerabilityChecker.__createCacheFile">__createCacheFile</a></td>
+<td>Private method to create the cache file.</td>
+</tr>
+<tr>
+<td><a href="#PipVulnerabilityChecker.__fetchVulnerabilityDatabase">__fetchVulnerabilityDatabase</a></td>
+<td>Private method to get the data of the vulnerability database.</td>
+</tr>
+<tr>
+<td><a href="#PipVulnerabilityChecker.__getDataFromCache">__getDataFromCache</a></td>
+<td>Private method to get the vulnerability database from the cache.</td>
+</tr>
+<tr>
+<td><a href="#PipVulnerabilityChecker.__getVulnerabilities">__getVulnerabilities</a></td>
+<td>Private method to get the vulnerabilities for a package.</td>
+</tr>
+<tr>
+<td><a href="#PipVulnerabilityChecker.__writeDataToCache">__writeDataToCache</a></td>
+<td>Private method to write the vulnerability data for a database to the cache.</td>
+</tr>
+<tr>
+<td><a href="#PipVulnerabilityChecker.check">check</a></td>
+<td>Public method to check the given packages for vulnerabilities.</td>
+</tr>
+<tr>
+<td><a href="#PipVulnerabilityChecker.updateVulnerabilityDb">updateVulnerabilityDb</a></td>
+<td>Public method to update the cache of the vulnerability databases.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="PipVulnerabilityChecker.__init__" ID="PipVulnerabilityChecker.__init__"></a>
+<h4>PipVulnerabilityChecker (Constructor)</h4>
+<b>PipVulnerabilityChecker</b>(<i>pip, parent=None</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>pip</i> (Pip)</dt>
+<dd>
+reference to the global pip interface
+</dd>
+<dt><i>parent</i> (QWidget (optional))</dt>
+<dd>
+reference to the parent widget (defaults to None)
+</dd>
+</dl>
+<a NAME="PipVulnerabilityChecker.__createCacheFile" ID="PipVulnerabilityChecker.__createCacheFile"></a>
+<h4>PipVulnerabilityChecker.__createCacheFile</h4>
+<b>__createCacheFile</b>(<i></i>)
+
+<p>
+        Private method to create the cache file.
+</p>
+<p>
+        The cache file has the following structure.
+        {
+          "insecure.json": {
+              "cachedAt": 12345678
+              "db": {}
+          },
+          "insecure_full.json": {
+              "cachedAt": 12345678
+              "db": {}
+          },
+        }
+</p>
+<a NAME="PipVulnerabilityChecker.__fetchVulnerabilityDatabase" ID="PipVulnerabilityChecker.__fetchVulnerabilityDatabase"></a>
+<h4>PipVulnerabilityChecker.__fetchVulnerabilityDatabase</h4>
+<b>__fetchVulnerabilityDatabase</b>(<i>full=False, forceUpdate=False</i>)
+
+<p>
+        Private method to get the data of the vulnerability database.
+</p>
+<p>
+        If the cached data is still valid, this data will be used.
+        Otherwise a copy of the requested database will be downloaded
+        and cached.
+</p>
+<dl>
+
+<dt><i>full</i> (bool (optional))</dt>
+<dd>
+flag indicating to get the database containing the full
+            data set (defaults to False)
+</dd>
+<dt><i>forceUpdate</i> (bool (optional))</dt>
+<dd>
+flag indicating an update of the cache is required
+            (defaults to False)
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the vulnerability data (full data set or
+            just package name and version specifier)
+</dd>
+</dl>
+<a NAME="PipVulnerabilityChecker.__getDataFromCache" ID="PipVulnerabilityChecker.__getDataFromCache"></a>
+<h4>PipVulnerabilityChecker.__getDataFromCache</h4>
+<b>__getDataFromCache</b>(<i>dbName</i>)
+
+<p>
+        Private method to get the vulnerability database from the cache.
+</p>
+<dl>
+
+<dt><i>dbName</i> (str)</dt>
+<dd>
+name of the vulnerability database
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the requested vulnerability data
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<a NAME="PipVulnerabilityChecker.__getVulnerabilities" ID="PipVulnerabilityChecker.__getVulnerabilities"></a>
+<h4>PipVulnerabilityChecker.__getVulnerabilities</h4>
+<b>__getVulnerabilities</b>(<i>package, specifier, db</i>)
+
+<p>
+        Private method to get the vulnerabilities for a package.
+</p>
+<dl>
+
+<dt><i>package</i> (str)</dt>
+<dd>
+name of the package
+</dd>
+<dt><i>specifier</i> (Specifier)</dt>
+<dd>
+package specifier
+</dd>
+<dt><i>db</i> (dict)</dt>
+<dd>
+vulnerability data
+</dd>
+</dl>
+<dl>
+<dt>Yield:</dt>
+<dd>
+dictionary containing the vulnerability data for the package
+</dd>
+</dl>
+<dl>
+<dt>Yield Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<a NAME="PipVulnerabilityChecker.__writeDataToCache" ID="PipVulnerabilityChecker.__writeDataToCache"></a>
+<h4>PipVulnerabilityChecker.__writeDataToCache</h4>
+<b>__writeDataToCache</b>(<i>dbName, data</i>)
+
+<p>
+        Private method to write the vulnerability data for a database to the
+        cache.
+</p>
+<dl>
+
+<dt><i>dbName</i> (str)</dt>
+<dd>
+name of the vulnerability database
+</dd>
+<dt><i>data</i> (dict)</dt>
+<dd>
+dictionary containing the vulnerability data
+</dd>
+</dl>
+<a NAME="PipVulnerabilityChecker.check" ID="PipVulnerabilityChecker.check"></a>
+<h4>PipVulnerabilityChecker.check</h4>
+<b>check</b>(<i>packages</i>)
+
+<p>
+        Public method to check the given packages for vulnerabilities.
+</p>
+<dl>
+
+<dt><i>packages</i> (Package)</dt>
+<dd>
+list of packages
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+tuple containing an error status and a dictionary containing
+            detected vulnerable packages keyed by package name
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (VulnerabilityCheckError, list of Vulnerability)
+</dd>
+</dl>
+<a NAME="PipVulnerabilityChecker.updateVulnerabilityDb" ID="PipVulnerabilityChecker.updateVulnerabilityDb"></a>
+<h4>PipVulnerabilityChecker.updateVulnerabilityDb</h4>
+<b>updateVulnerabilityDb</b>(<i></i>)
+
+<p>
+        Public method to update the cache of the vulnerability databases.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="Vulnerability" ID="Vulnerability"></a>
+<h2>Vulnerability</h2>
+
+<p>
+    Class containing the vulnerability data.
+</p>
+<h3>Derived from</h3>
+None
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="VulnerabilityCheckError" ID="VulnerabilityCheckError"></a>
+<h2>VulnerabilityCheckError</h2>
+
+<p>
+    Class defining various vulnerability check error states.
+</p>
+<h3>Derived from</h3>
+enum.Enum
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>FullDbUnavailable</td></tr><tr><td>OK</td></tr><tr><td>SummaryDbUnavailable</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file

eric ide

mercurial