{"bomFormat":"CycloneDX","specVersion":"1.5","version":1,"serialNumber":"urn:uuid:d6ec487e-4d12-4448-a61b-8c5454b8c35a","metadata":{"timestamp":"2026-09-25T15:32:00Z","tools":[{"vendor":"Ecosystems","name":"Ecosystems SBOM Generator"}],"component":{"type":"application","name":"aboutcode-org/fetchcode"}},"components":[{"type":"library","name":"aboutcode_toolkit","version":"*","purl":"pkg:pypi/aboutcode_toolkit","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"attrs","version":"*","purl":"pkg:pypi/attrs","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"commoncode","version":"*","purl":"pkg:pypi/commoncode","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"click","version":"*","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"requests","version":"*","purl":"pkg:pypi/requests","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"saneyaml","version":"*","purl":"pkg:pypi/saneyaml","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"pip","version":"*","purl":"pkg:pypi/pip","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"setuptools","version":"*","purl":"pkg:pypi/setuptools","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"twine","version":"*","purl":"pkg:pypi/twine","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"wheel","version":"*","purl":"pkg:pypi/wheel","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"build","version":"*","purl":"pkg:pypi/build","properties":[{"name":"filePath","value":"etc/scripts/requirements.txt"}]},{"type":"library","name":"aboutcode-toolkit","version":"==7.0.1","purl":"pkg:pypi/aboutcode-toolkit","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"bleach","version":"==4.1.0","purl":"pkg:pypi/bleach","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"build","version":"==0.7.0","purl":"pkg:pypi/build","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"commonmark","version":"==0.9.1","purl":"pkg:pypi/commonmark","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"docutils","version":"==0.18.1","purl":"pkg:pypi/docutils","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"et-xmlfile","version":"==1.1.0","purl":"pkg:pypi/et-xmlfile","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"execnet","version":"==1.9.0","purl":"pkg:pypi/execnet","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"iniconfig","version":"==1.1.1","purl":"pkg:pypi/iniconfig","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"jeepney","version":"==0.7.1","purl":"pkg:pypi/jeepney","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"keyring","version":"==23.4.1","purl":"pkg:pypi/keyring","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"openpyxl","version":"==3.0.9","purl":"pkg:pypi/openpyxl","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"pep517","version":"==0.12.0","purl":"pkg:pypi/pep517","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"pkginfo","version":"==1.8.2","purl":"pkg:pypi/pkginfo","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"py","version":"==1.11.0","purl":"pkg:pypi/py","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"pytest","version":"==7.0.1","purl":"pkg:pypi/pytest","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"pytest-forked","version":"==1.4.0","purl":"pkg:pypi/pytest-forked","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"pytest-xdist","version":"==2.5.0","purl":"pkg:pypi/pytest-xdist","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"readme-renderer","version":"==34.0","purl":"pkg:pypi/readme-renderer","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"requests-toolbelt","version":"==0.9.1","purl":"pkg:pypi/requests-toolbelt","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"rfc3986","version":"==1.5.0","purl":"pkg:pypi/rfc3986","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"rich","version":"==12.3.0","purl":"pkg:pypi/rich","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"secretstorage","version":"==3.3.2","purl":"pkg:pypi/secretstorage","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"tomli","version":"==1.2.3","purl":"pkg:pypi/tomli","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"twine","version":"==3.8.0","purl":"pkg:pypi/twine","properties":[{"name":"filePath","value":"requirements-dev.txt"}]},{"type":"library","name":"attrs","version":"==21.4.0","purl":"pkg:pypi/attrs","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"banal","version":"==1.0.6","purl":"pkg:pypi/banal","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"beautifulsoup4","version":"==4.11.1","purl":"pkg:pypi/beautifulsoup4","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"binaryornot","version":"==0.4.4","purl":"pkg:pypi/binaryornot","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"boolean.py","version":"==3.8","purl":"pkg:pypi/boolean.py","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"certifi","version":"==2021.10.8","purl":"pkg:pypi/certifi","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"cffi","version":"==1.15.0","purl":"pkg:pypi/cffi","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"chardet","version":"==4.0.0","purl":"pkg:pypi/chardet","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"charset-normalizer","version":"==2.0.12","purl":"pkg:pypi/charset-normalizer","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"click","version":"==8.0.4","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"colorama","version":"==0.4.4","purl":"pkg:pypi/colorama","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"commoncode","version":"==30.2.0","purl":"pkg:pypi/commoncode","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"construct","version":"==2.10.68","purl":"pkg:pypi/construct","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"container-inspector","version":"==31.0.0","purl":"pkg:pypi/container-inspector","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"cryptography","version":"==36.0.2","purl":"pkg:pypi/cryptography","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"debian-inspector","version":"==30.0.0","purl":"pkg:pypi/debian-inspector","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"dockerfile-parse","version":"==1.2.0","purl":"pkg:pypi/dockerfile-parse","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"dparse2","version":"==0.6.1","purl":"pkg:pypi/dparse2","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"extractcode","version":"==31.0.0","purl":"pkg:pypi/extractcode","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"extractcode-7z","version":"==16.5.210531","purl":"pkg:pypi/extractcode-7z","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"extractcode-libarchive","version":"==3.5.1.210531","purl":"pkg:pypi/extractcode-libarchive","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"fasteners","version":"==0.17.3","purl":"pkg:pypi/fasteners","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"fingerprints","version":"==1.0.3","purl":"pkg:pypi/fingerprints","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"ftfy","version":"==6.0.3","purl":"pkg:pypi/ftfy","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"future","version":"==0.18.2","purl":"pkg:pypi/future","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"gemfileparser","version":"==0.8.0","purl":"pkg:pypi/gemfileparser","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"html5lib","version":"==1.1","purl":"pkg:pypi/html5lib","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"idna","version":"==3.3","purl":"pkg:pypi/idna","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"importlib-metadata","version":"==4.8.3","purl":"pkg:pypi/importlib-metadata","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"inflection","version":"==0.5.1","purl":"pkg:pypi/inflection","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"intbitset","version":"==3.0.1","purl":"pkg:pypi/intbitset","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"isodate","version":"==0.6.1","purl":"pkg:pypi/isodate","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"jaraco.functools","version":"==3.4.0","purl":"pkg:pypi/jaraco.functools","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"javaproperties","version":"==0.8.1","purl":"pkg:pypi/javaproperties","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"Jinja2","version":"==3.0.3","purl":"pkg:pypi/Jinja2","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"jsonstreams","version":"==0.6.0","purl":"pkg:pypi/jsonstreams","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"license-expression","version":"==21.6.14","purl":"pkg:pypi/license-expression","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"lxml","version":"==4.9.1","purl":"pkg:pypi/lxml","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"MarkupSafe","version":"==2.0.1","purl":"pkg:pypi/MarkupSafe","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==8.13.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"normality","version":"==2.3.3","purl":"pkg:pypi/normality","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"packagedcode-msitools","version":"==0.101.210706","purl":"pkg:pypi/packagedcode-msitools","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"packageurl-python","version":"==0.9.9","purl":"pkg:pypi/packageurl-python","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"packaging","version":"==21.3","purl":"pkg:pypi/packaging","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"parameter-expansion-patched","version":"==0.3.1","purl":"pkg:pypi/parameter-expansion-patched","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"patch","version":"==1.16","purl":"pkg:pypi/patch","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pdfminer-six","version":"==20220506","purl":"pkg:pypi/pdfminer-six","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pefile","version":"==2021.9.3","purl":"pkg:pypi/pefile","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pip-requirements-parser","version":"==31.2.0","purl":"pkg:pypi/pip-requirements-parser","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pkginfo2","version":"==30.0.0","purl":"pkg:pypi/pkginfo2","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pluggy","version":"==1.0.0","purl":"pkg:pypi/pluggy","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"plugincode","version":"==30.0.0","purl":"pkg:pypi/plugincode","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"ply","version":"==3.11","purl":"pkg:pypi/ply","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"publicsuffix2","version":"==2.20191221","purl":"pkg:pypi/publicsuffix2","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pyahocorasick","version":"==2.0.0b1","purl":"pkg:pypi/pyahocorasick","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pycparser","version":"==2.21","purl":"pkg:pypi/pycparser","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pygmars","version":"==0.7.0","purl":"pkg:pypi/pygmars","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"Pygments","version":"==2.12.0","purl":"pkg:pypi/Pygments","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pymaven-patch","version":"==0.3.0","purl":"pkg:pypi/pymaven-patch","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pyparsing","version":"==3.0.8","purl":"pkg:pypi/pyparsing","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pytz","version":"==2022.1","purl":"pkg:pypi/pytz","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"PyYAML","version":"==6.0","purl":"pkg:pypi/PyYAML","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"rdflib","version":"==5.0.0","purl":"pkg:pypi/rdflib","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"regipy","version":"==2.3.1","purl":"pkg:pypi/regipy","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"requests","version":"==2.27.1","purl":"pkg:pypi/requests","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"rpm-inspector-rpm","version":"==4.16.1.3.210404","purl":"pkg:pypi/rpm-inspector-rpm","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"saneyaml","version":"==0.5.2","purl":"pkg:pypi/saneyaml","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"six","version":"==1.16.0","purl":"pkg:pypi/six","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"soupsieve","version":"==2.3.1","purl":"pkg:pypi/soupsieve","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"spdx-tools","version":"==0.7.0a3","purl":"pkg:pypi/spdx-tools","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"text-unidecode","version":"==1.3","purl":"pkg:pypi/text-unidecode","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"toml","version":"==0.10.2","purl":"pkg:pypi/toml","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"typecode","version":"==30.0.0","purl":"pkg:pypi/typecode","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"typecode-libmagic","version":"==5.39.210531","purl":"pkg:pypi/typecode-libmagic","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"urllib3","version":"==1.26.9","purl":"pkg:pypi/urllib3","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"urlpy","version":"==0.5","purl":"pkg:pypi/urlpy","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"wcwidth","version":"==0.2.5","purl":"pkg:pypi/wcwidth","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"webencodings","version":"==0.5.1","purl":"pkg:pypi/webencodings","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"xmltodict","version":"==0.12.0","purl":"pkg:pypi/xmltodict","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"zipp","version":"==3.6.0","purl":"pkg:pypi/zipp","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"actions/checkout","version":"v2","purl":"pkg:githubactions/actions/checkout","properties":[{"name":"filePath","value":".github/workflows/docs-ci.yml"}]},{"type":"library","name":"actions/setup-python","version":"v2","purl":"pkg:githubactions/actions/setup-python","properties":[{"name":"filePath","value":".github/workflows/docs-ci.yml"}]},{"type":"library","name":"actions/checkout","version":"master","purl":"pkg:githubactions/actions/checkout","properties":[{"name":"filePath","value":".github/workflows/pypi-release.yml"}]},{"type":"library","name":"actions/setup-python","version":"v1","purl":"pkg:githubactions/actions/setup-python","properties":[{"name":"filePath","value":".github/workflows/pypi-release.yml"}]},{"type":"library","name":"pypa/gh-action-pypi-publish","version":"master","purl":"pkg:githubactions/pypa/gh-action-pypi-publish","properties":[{"name":"filePath","value":".github/workflows/pypi-release.yml"}]}]}