# SBOM for goad-py 1.4.0

> Physical optics light scattering computation

The Python package goad-py 1.4.0 ships 51 SBOM files (CycloneDX) inside its wheels, under `.dist-info/sboms/` ([PEP 770](https://peps.python.org/pep-0770/)).

- Package URL (PURL): `pkg:pypi/goad-py@1.4.0`
- PyPI: https://pypi.org/project/goad-py/1.4.0/
- Requires Python: \>=3.11
- Documentation: <https://docs.rs/goad/0.1.0/goad/index.html>
- Homepage: <https://github.com/hballington12/goad>
- Repository: <https://github.com/hballington12/goad>
- Rust Crate: <https://crates.io/crates/goad>

## SBOMs

### goad\_py-1.4.0-cp311-cp311-macosx\_11\_0\_arm64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/038aaeca-3f1e-5ade-bcfc-442ba05ec29c/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp311-cp311-manylinux\_2\_17\_aarch64.manylinux2014\_aarch64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/9efcfc0c-1ce1-5668-91b2-38a6bae4538a/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp311-cp311-manylinux\_2\_17\_armv7l.manylinux2014\_armv7l.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/40df3c18-98ec-5f8e-a1d0-c58b1f11c72c/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp311-cp311-manylinux\_2\_17\_i686.manylinux2014\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/f45e9234-8df4-546e-95c0-aa027c301f68/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp311-cp311-manylinux\_2\_17\_ppc64le.manylinux2014\_ppc64le.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/983a286a-df5c-5fb2-9585-ebb6e2304a7a/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp311-cp311-manylinux\_2\_17\_s390x.manylinux2014\_s390x.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/0a7e865c-92dd-5c2e-a481-14fea79d07ef/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp311-cp311-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/97b6c9c3-e02f-59cd-94dc-82c479e41573/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp311-cp311-musllinux\_1\_2\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/7285f3cc-9201-5c17-a6e6-828948a05238/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp311-cp311-win\_amd64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/98d52131-3901-518b-b6a6-7784b99dee94/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-macosx\_11\_0\_arm64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/219d55cd-dda0-5f46-8e33-cda7c54aeabc/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-manylinux\_2\_17\_aarch64.manylinux2014\_aarch64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/740d78bb-7da9-5b60-a08a-7e78a04047c9/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-manylinux\_2\_17\_armv7l.manylinux2014\_armv7l.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/b138669f-41eb-5a20-8d33-9251fbb0bf55/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-manylinux\_2\_17\_i686.manylinux2014\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/d6b8e4ab-66e7-52a9-82b6-061dcd292f41/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-manylinux\_2\_17\_ppc64le.manylinux2014\_ppc64le.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/73dec29d-e9cc-550c-b9bf-67b043b1a2ac/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-manylinux\_2\_17\_s390x.manylinux2014\_s390x.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/2fd8e6f1-a320-565e-9a94-ca6e3317ed67/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/2b434c2e-7ddd-561c-b91e-4cd8096f38b6/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-musllinux\_1\_2\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/46956f31-f33a-5306-aec2-3c87c631c8a4/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp312-cp312-win\_amd64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/3286dbda-10cb-5c1b-b6cb-b66bdce75136/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-macosx\_11\_0\_arm64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/59e2b2b7-9f7f-5980-b831-979bdb15d3ac/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-manylinux\_2\_17\_aarch64.manylinux2014\_aarch64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/f9c925a0-4266-5320-a5ad-9d1e00df2953/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-manylinux\_2\_17\_armv7l.manylinux2014\_armv7l.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/b811dd2a-3148-5315-8827-c99540158356/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-manylinux\_2\_17\_i686.manylinux2014\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/4c17054c-8413-5614-8b27-c78937dce88f/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-manylinux\_2\_17\_ppc64le.manylinux2014\_ppc64le.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/0858f167-d104-515b-ac1e-a6a221a6f980/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-manylinux\_2\_17\_s390x.manylinux2014\_s390x.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/59676a73-8834-5915-afc0-c1286617798d/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/9ec946e6-707f-5d4b-b93c-eba8ef252432/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-musllinux\_1\_2\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/34885f80-cec3-540b-ac7f-c79482cb22f2/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp313-cp313-win\_amd64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/96692b37-e6a5-50f0-8a1e-ce7dc2a06899/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-macosx\_11\_0\_arm64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/e18e6cdb-c6da-5d18-b484-620e222da5fd/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-manylinux\_2\_17\_aarch64.manylinux2014\_aarch64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/b9c06a68-b2cc-57c3-8a91-1380d40a60b0/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-manylinux\_2\_17\_armv7l.manylinux2014\_armv7l.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/18a73a1f-48fe-52af-b416-83e6c63acf50/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-manylinux\_2\_17\_i686.manylinux2014\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/43d3f513-6c50-5578-91e3-d2249bc6ab58/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-manylinux\_2\_17\_ppc64le.manylinux2014\_ppc64le.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/a3f0d6de-0bee-5285-a0ed-8ab4e01d8c40/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-manylinux\_2\_17\_s390x.manylinux2014\_s390x.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/29c2e54c-177e-5264-b46f-b13fde78314a/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/a190e7be-8899-5b48-b1dc-a2f941329a6d/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-musllinux\_1\_2\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/8e751f44-2777-57d7-8052-62c24740fc9e/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-win32.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/38dc437d-cb62-5ce4-b6f7-9be792afa4c6/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314-win\_amd64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/d34b0d5a-ee32-56d5-9543-f13147181453/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314t-manylinux\_2\_17\_aarch64.manylinux2014\_aarch64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/03805282-e023-530f-acae-dcaaee5f6dd6/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314t-manylinux\_2\_17\_armv7l.manylinux2014\_armv7l.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/7f989bad-ba68-5ef3-8bbd-4a21716c2cd9/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314t-manylinux\_2\_17\_i686.manylinux2014\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/0b6e2fe1-aaa2-563b-a21e-5852c86c8de8/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314t-manylinux\_2\_17\_ppc64le.manylinux2014\_ppc64le.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/fc791f7b-f100-5b15-8d0d-b2a71a0c178a/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314t-manylinux\_2\_17\_s390x.manylinux2014\_s390x.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/1af5e380-4a43-5fb0-a161-d0c1212e4474/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314t-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/aa3e1667-9f5c-5e2d-8656-fbd08189c1f1/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-cp314-cp314t-musllinux\_1\_2\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/f622a33d-a562-53b8-aa9f-d1ef816ede6b/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-pp311-pypy311\_pp73-manylinux\_2\_17\_aarch64.manylinux2014\_aarch64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/f39f7fca-5f6b-54bf-aafb-574019e52c2f/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-pp311-pypy311\_pp73-manylinux\_2\_17\_armv7l.manylinux2014\_armv7l.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/fc217f88-173a-5ec3-b274-2f2eb6806654/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-pp311-pypy311\_pp73-manylinux\_2\_17\_i686.manylinux2014\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/1204c3a5-8461-5aa1-873a-0cb4af1b6c95/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-pp311-pypy311\_pp73-manylinux\_2\_17\_ppc64le.manylinux2014\_ppc64le.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/410fe2a4-0b96-54c2-8d15-22c2d96a3054/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-pp311-pypy311\_pp73-manylinux\_2\_17\_s390x.manylinux2014\_s390x.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/0c0ef70b-d150-504e-8854-ba987c49d194/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-pp311-pypy311\_pp73-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/14f7f23f-563f-52a6-bb8a-96e102c8df48/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

### goad\_py-1.4.0-pp311-pypy311\_pp73-musllinux\_1\_2\_i686.whl

- [goad\_py-1.4.0.dist-info/sboms/goad.cyclonedx.json](https://pypi.sbomify.com/artifact/6ff10973-0aa0-57e1-93f5-c91cc7081440/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 8 known vulnerabilities

## Known vulnerabilities

Components listed in these SBOMs, matched against the [OSV database](https://osv.dev/) as of 2026-11-10.

| Vulnerability | Severity | Component | Fixed in | Summary |
|---|---|---|---|---|
| [RUSTSEC-2026-0176](https://osv.dev/vulnerability/RUSTSEC-2026-0176) | high (8.7) | pyo3 0.27.2 (crates.io) | 0.29.0 | Out-of-bounds read in \`nth\` / \`nth\_back\` for \`PyList\` and \`PyTuple\` iterators |
| [RUSTSEC-2026-0177](https://osv.dev/vulnerability/RUSTSEC-2026-0177) | medium (6.3) | pyo3 0.27.2 (crates.io) | 0.29.0 | Missing \`Sync\` bound on \`PyCFunction::new\_closure\` closures |
| [RUSTSEC-2026-0190](https://osv.dev/vulnerability/RUSTSEC-2026-0190) | unknown | anyhow 1.0.100 (crates.io) | 1.0.103 | Unsoundness in \`Error::downcast\_mut()\` |
| [RUSTSEC-2026-0204](https://osv.dev/vulnerability/RUSTSEC-2026-0204) | unknown | crossbeam-epoch 0.9.18 (crates.io) | 0.9.20 | Invalid pointer dereference in \`fmt::Pointer\` impl for \`Atomic\` and \`Shared\` when the underlying pointer is invalid |
| [RUSTSEC-2025-0119](https://osv.dev/vulnerability/RUSTSEC-2025-0119) | unknown | number\_prefix 0.4.0 (crates.io) | none listed | number\_prefix crate is unmaintained |
| [RUSTSEC-2024-0436](https://osv.dev/vulnerability/RUSTSEC-2024-0436) | unknown | paste 1.0.15 (crates.io) | none listed | paste - no longer maintained |
| [RUSTSEC-2026-0097](https://osv.dev/vulnerability/RUSTSEC-2026-0097) | unknown | rand 0.8.5 (crates.io) | 0.8.6 | Rand is unsound with a custom logger using \`rand::rng()\` |
| [RUSTSEC-2026-0097](https://osv.dev/vulnerability/RUSTSEC-2026-0097) | unknown | rand 0.9.2 (crates.io) | 0.9.3 | Rand is unsound with a custom logger using \`rand::rng()\` |

## Fetch it over TEA

This SBOM is served over the [Transparency Exchange API](https://github.com/CycloneDX/transparency-exchange-api) (TEA). With the `libtea` client:

```
pip install libtea
python -m libtea https://pypi.sbomify.com pkg:pypi/goad-py@1.4.0
```

Machine-readable copy of this page: https://pypi.sbomify.com/package/goad-py/1.4.0.json

---
From pypi-tea by sbomify: https://pypi.sbomify.com/package/goad-py/1.4.0