pycomponents
An experimental tool to generate CycloneDX SBOM from running Python processes.
Requirements
- Linux and macOS (not tested with Windows)
- Python 3.8+ (tested with Python 3.8, 3.9 and 3.10)
Installation
pip install py-sbom-components
Note: Initially I planned to publish this tool as pycomponents. But it is prohibited by the following restriction.
HTTP Error 400: The name 'pycomponents' is too similar to an existing project. See https://pypi.org/help/#project-name for more information.
Thus, I use this a little bit lengthy name.
Usage
$ pycomponents --help
Usage: pycomponents [OPTIONS]
Options:
--output-format [xml|json] The output format for your SBOM [default:
json]
--output-dir TEXT The output directory [default: ./]
--allow-overwrite / --no-allow-overwrite
Whether to allow overwriting if the same
file exists [default: allow-overwrite]
--exclude-pids INTEGER A list of pids to exclude
--install-completion [bash|zsh|fish|powershell|pwsh]
Install completion for the specified shell.
--show-completion [bash|zsh|fish|powershell|pwsh]
Show completion for the specified shell, to
copy it or customize the installation.
--help Show this message and exit.
Example
See example.
What is the difference from cyclonedx-bom?
cyclonedx-bom's BOM comes from:
- Python Environment
- Project's manifest (e.g. Pipfile.lock, poetry.lock or requirements.txt)
pycomponents uses a different approach to generate SBOM.
- List up Python processes
- Generate components based on site packages used by Python processes
- Generate vulnerabilities in components by using OSV and cve-search
Thus pycomponents generates half-and-half mixed runtime & static SBOM.
Metadata
Release files for py-sbom-components 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| py-sbom-components-0.2.1.tar.gz | 10.3 kB | Without provenance | Details for py-sbom-components-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| py_sbom_components-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for py_sbom_components-0.2.1-py3-none-any.whl |
Total release size: 23.7 kB
Release files / py-sbom-components-0.2.1.tar.gz
| Download URL | py-sbom-components-0.2.1.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45f64c8e82130e72d99b3ebeabf7d671ab29824a3d7d0e8faed205b43edd858b
|
|
BLAKE2b-256 checksum How to use checksums |
9b7247d3664a99d519f04657bd568f55270e0487ec6103d2a9928175fd823d59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.14 CPython/3.9.6 Darwin/21.5.0
|
Release files / py_sbom_components-0.2.1-py3-none-any.whl
| Download URL | py_sbom_components-0.2.1-py3-none-any.whl |
|---|---|
| Size | 13.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
545917be1626d0cc0df81448f438e677f500346a0ab94150c743cddb94d32e90
|
|
BLAKE2b-256 checksum How to use checksums |
446a44d4c0494f8ddc13029014183fb34c130636d2556f5fbb3dd7acdc1841eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.14 CPython/3.9.6 Darwin/21.5.0
|
Security for py-sbom-components 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.