{"url":"https://pypi.sbomify.com/package/num2words2/1.0.20","markdown_url":"https://pypi.sbomify.com/package/num2words2/1.0.20.md","name":"num2words2","version":"1.0.20","purl":"pkg:pypi/num2words2@1.0.20","summary":"Rust port of the num2words conversion engine with a Python binder — number-to-words in 120+ languages, optimized for LLM/AI/speech.","author":null,"project_urls":{"Bug Tracker":"https://github.com/jqueguiner/num2words2/issues","Documentation":"https://github.com/jqueguiner/num2words2/wiki","Homepage":"https://github.com/jqueguiner/num2words2","Repository":"https://github.com/jqueguiner/num2words2.git"},"requires_python":">=3.10","license":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.14","Programming Language :: Rust","Topic :: Software Development :: Internationalization","Topic :: Software Development :: Libraries :: Python Modules","Topic :: Software Development :: Localization","Topic :: Text Processing :: Linguistic"],"wheels":[{"filename":"num2words2-1.0.20-cp38-abi3-macosx_10_12_x86_64.whl","url":"https://files.pythonhosted.org/packages/11/59/bf2466c6749fab94ee46b938ba8c5d8a925f41b7ba52bba2d15ff9f0e720/num2words2-1.0.20-cp38-abi3-macosx_10_12_x86_64.whl","sboms":[{"artifact_uuid":"e14798dc-b5a5-50f6-b802-bac506796a2e","path":"num2words2-1.0.20.dist-info/sboms/num2words2-py.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/e14798dc-b5a5-50f6-b802-bac506796a2e/download","vulnerability_count":3,"scan_error":null}],"attestation":{"status":"not_available"}},{"filename":"num2words2-1.0.20-cp38-abi3-macosx_11_0_arm64.whl","url":"https://files.pythonhosted.org/packages/8c/4d/6722bf18d782d8d6ea2ec21ea224201c985a6af55812a3498e7834b178c9/num2words2-1.0.20-cp38-abi3-macosx_11_0_arm64.whl","sboms":[{"artifact_uuid":"207917cf-7691-5196-8bee-3a0f6489a2a6","path":"num2words2-1.0.20.dist-info/sboms/num2words2-py.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/207917cf-7691-5196-8bee-3a0f6489a2a6/download","vulnerability_count":3,"scan_error":null}],"attestation":{"status":"not_available"}},{"filename":"num2words2-1.0.20-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","url":"https://files.pythonhosted.org/packages/1e/be/f2613dbcf820a1c56da97ee9e28e6f22b6f7b4124e8c73c06471c04cfe52/num2words2-1.0.20-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","sboms":[{"artifact_uuid":"defd63f1-116b-5ab6-a2d6-186423ab8396","path":"num2words2-1.0.20.dist-info/sboms/num2words2-py.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/defd63f1-116b-5ab6-a2d6-186423ab8396/download","vulnerability_count":3,"scan_error":null}],"attestation":{"status":"not_available"}},{"filename":"num2words2-1.0.20-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","url":"https://files.pythonhosted.org/packages/68/e5/625ad6c178e6efc6ab8817114ef1b79e29cd16b36642a7ebe85411b011e4/num2words2-1.0.20-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","sboms":[{"artifact_uuid":"45ee2e1a-2a7c-5ff4-8da8-3f6b131ce33b","path":"num2words2-1.0.20.dist-info/sboms/num2words2-py.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/45ee2e1a-2a7c-5ff4-8da8-3f6b131ce33b/download","vulnerability_count":3,"scan_error":null}],"attestation":{"status":"not_available"}},{"filename":"num2words2-1.0.20-cp38-abi3-win_amd64.whl","url":"https://files.pythonhosted.org/packages/a0/76/04d099fadb207cc5870fda9bb3b87a5b69c2633646d0ab408aa073c35c95/num2words2-1.0.20-cp38-abi3-win_amd64.whl","sboms":[{"artifact_uuid":"364cba2c-a33a-567e-a779-3bdc0f895446","path":"num2words2-1.0.20.dist-info/sboms/num2words2-py.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/364cba2c-a33a-567e-a779-3bdc0f895446/download","vulnerability_count":3,"scan_error":null}],"attestation":{"status":"not_available"}}],"formats":["CycloneDX"],"sbom_count":5,"has_attestation":false,"vulnerabilities":[{"id":"GHSA-36hh-v3qg-5jq4","aliases":["RUSTSEC-2026-0176"],"summary":"PyO3 has an Out-of-bounds Read in `nth` / `nth_back` for `PyList` and `PyTuple` iterators","severity":"high","score":8.7,"package":"pyo3","version":"0.23.5","ecosystem":"crates.io","purl":"pkg:cargo/pyo3@0.23.5","fixed":["0.29.0"],"url":"https://osv.dev/vulnerability/GHSA-36hh-v3qg-5jq4","wheels":["num2words2-1.0.20-cp38-abi3-macosx_10_12_x86_64.whl","num2words2-1.0.20-cp38-abi3-macosx_11_0_arm64.whl","num2words2-1.0.20-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","num2words2-1.0.20-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","num2words2-1.0.20-cp38-abi3-win_amd64.whl"]},{"id":"RUSTSEC-2026-0177","aliases":["GHSA-chgr-c6px-7xpp"],"summary":"Missing `Sync` bound on `PyCFunction::new_closure` closures","severity":"medium","score":6.3,"package":"pyo3","version":"0.23.5","ecosystem":"crates.io","purl":"pkg:cargo/pyo3@0.23.5","fixed":["0.29.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0177","wheels":["num2words2-1.0.20-cp38-abi3-macosx_10_12_x86_64.whl","num2words2-1.0.20-cp38-abi3-macosx_11_0_arm64.whl","num2words2-1.0.20-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","num2words2-1.0.20-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","num2words2-1.0.20-cp38-abi3-win_amd64.whl"]},{"id":"RUSTSEC-2025-0020","aliases":["GHSA-pph8-gcv7-4qj5"],"summary":"Risk of buffer overflow in `PyString::from_object`","severity":"low","score":2.9,"package":"pyo3","version":"0.23.5","ecosystem":"crates.io","purl":"pkg:cargo/pyo3@0.23.5","fixed":["0.24.1"],"url":"https://osv.dev/vulnerability/RUSTSEC-2025-0020","wheels":["num2words2-1.0.20-cp38-abi3-macosx_10_12_x86_64.whl","num2words2-1.0.20-cp38-abi3-macosx_11_0_arm64.whl","num2words2-1.0.20-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","num2words2-1.0.20-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","num2words2-1.0.20-cp38-abi3-win_amd64.whl"]}],"vulnerability_scan":{"scanned_sboms":5,"total_sboms":5,"scanned_at":"2026-11-09","scanner":"osv-scanner 2.7.0","severity_counts":{"high":1,"medium":1,"low":1}}}