{"url":"https://pypi.sbomify.com/package/loopsleuth/0.1.1","markdown_url":"https://pypi.sbomify.com/package/loopsleuth/0.1.1.md","name":"loopsleuth","version":"0.1.1","purl":"pkg:pypi/loopsleuth@0.1.1","summary":"AI-powered Python performance analyzer that detects algorithmic bottlenecks","author":null,"project_urls":{"Homepage":"https://github.com/tarekziade/loopsleuth","Repository":"https://github.com/tarekziade/loopsleuth"},"requires_python":">=3.10","license":"MIT","classifiers":["Development Status :: 4 - Beta","Intended Audience :: Developers","License :: OSI Approved :: MIT License","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 :: Quality Assurance","Topic :: Software Development :: Testing"],"wheels":[{"filename":"loopsleuth-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl","url":"https://files.pythonhosted.org/packages/6a/b5/d71d2925d5d86a83bcdfe3089087394b35e1fc5edacfcaf4feeaa9401b86/loopsleuth-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl","sboms":[{"artifact_uuid":"1d1eebac-19ec-5f7c-805c-557fd83ce74f","path":"loopsleuth-0.1.1.dist-info/sboms/auditwheel.cdx.json","format":"CycloneDX/1.4","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/1d1eebac-19ec-5f7c-805c-557fd83ce74f/download","vulnerability_count":0,"scan_error":null}],"attestation":{"status":"verified","publisher_kind":"GitHub","repository":"tarekziade/loopsleuth","workflow":"publish.yml","environment":"pypi","predicate_type":"https://docs.pypi.org/attestations/publish/v1","certificate_claims":{"1.3.6.1.4.1.57264.1.8":"https://token.actions.githubusercontent.com","1.3.6.1.4.1.57264.1.9":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.10":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.11":"github-hosted","1.3.6.1.4.1.57264.1.12":"https://github.com/tarekziade/loopsleuth","1.3.6.1.4.1.57264.1.13":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.14":"refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.15":"1146131374","1.3.6.1.4.1.57264.1.16":"https://github.com/tarekziade","1.3.6.1.4.1.57264.1.17":"250019","1.3.6.1.4.1.57264.1.18":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.19":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.20":"release","1.3.6.1.4.1.57264.1.21":"https://github.com/tarekziade/loopsleuth/actions/runs/21568733162/attempts/1","1.3.6.1.4.1.57264.1.22":"public"}}},{"filename":"loopsleuth-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl","url":"https://files.pythonhosted.org/packages/3d/da/5cc23907106a4d23e97a5af6544131fc79c239f9d5d75fa2297eb7b02375/loopsleuth-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl","sboms":[{"artifact_uuid":"a4b58b3f-8f3f-5863-a2f7-34fd709d66c2","path":"loopsleuth-0.1.1.dist-info/sboms/auditwheel.cdx.json","format":"CycloneDX/1.4","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/a4b58b3f-8f3f-5863-a2f7-34fd709d66c2/download","vulnerability_count":0,"scan_error":null}],"attestation":{"status":"verified","publisher_kind":"GitHub","repository":"tarekziade/loopsleuth","workflow":"publish.yml","environment":"pypi","predicate_type":"https://docs.pypi.org/attestations/publish/v1","certificate_claims":{"1.3.6.1.4.1.57264.1.8":"https://token.actions.githubusercontent.com","1.3.6.1.4.1.57264.1.9":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.10":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.11":"github-hosted","1.3.6.1.4.1.57264.1.12":"https://github.com/tarekziade/loopsleuth","1.3.6.1.4.1.57264.1.13":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.14":"refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.15":"1146131374","1.3.6.1.4.1.57264.1.16":"https://github.com/tarekziade","1.3.6.1.4.1.57264.1.17":"250019","1.3.6.1.4.1.57264.1.18":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.19":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.20":"release","1.3.6.1.4.1.57264.1.21":"https://github.com/tarekziade/loopsleuth/actions/runs/21568733162/attempts/1","1.3.6.1.4.1.57264.1.22":"public"}}},{"filename":"loopsleuth-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl","url":"https://files.pythonhosted.org/packages/53/1b/b7d8e1c65d44463e4dbf10a36243383c849f93a04e97bb9e7b3aa30a2dde/loopsleuth-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl","sboms":[{"artifact_uuid":"50c6e08e-d3a7-5d9a-9c76-b7848660515a","path":"loopsleuth-0.1.1.dist-info/sboms/auditwheel.cdx.json","format":"CycloneDX/1.4","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/50c6e08e-d3a7-5d9a-9c76-b7848660515a/download","vulnerability_count":0,"scan_error":null}],"attestation":{"status":"verified","publisher_kind":"GitHub","repository":"tarekziade/loopsleuth","workflow":"publish.yml","environment":"pypi","predicate_type":"https://docs.pypi.org/attestations/publish/v1","certificate_claims":{"1.3.6.1.4.1.57264.1.8":"https://token.actions.githubusercontent.com","1.3.6.1.4.1.57264.1.9":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.10":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.11":"github-hosted","1.3.6.1.4.1.57264.1.12":"https://github.com/tarekziade/loopsleuth","1.3.6.1.4.1.57264.1.13":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.14":"refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.15":"1146131374","1.3.6.1.4.1.57264.1.16":"https://github.com/tarekziade","1.3.6.1.4.1.57264.1.17":"250019","1.3.6.1.4.1.57264.1.18":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.19":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.20":"release","1.3.6.1.4.1.57264.1.21":"https://github.com/tarekziade/loopsleuth/actions/runs/21568733162/attempts/1","1.3.6.1.4.1.57264.1.22":"public"}}},{"filename":"loopsleuth-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl","url":"https://files.pythonhosted.org/packages/a2/d6/9c7c22de4621527139e2ffdca86d04f3121eb65c3fb0c6d9eb8994c2c90b/loopsleuth-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl","sboms":[{"artifact_uuid":"dfa587be-daa5-55cd-9893-8617596cc103","path":"loopsleuth-0.1.1.dist-info/sboms/auditwheel.cdx.json","format":"CycloneDX/1.4","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/dfa587be-daa5-55cd-9893-8617596cc103/download","vulnerability_count":0,"scan_error":null}],"attestation":{"status":"verified","publisher_kind":"GitHub","repository":"tarekziade/loopsleuth","workflow":"publish.yml","environment":"pypi","predicate_type":"https://docs.pypi.org/attestations/publish/v1","certificate_claims":{"1.3.6.1.4.1.57264.1.8":"https://token.actions.githubusercontent.com","1.3.6.1.4.1.57264.1.9":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.10":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.11":"github-hosted","1.3.6.1.4.1.57264.1.12":"https://github.com/tarekziade/loopsleuth","1.3.6.1.4.1.57264.1.13":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.14":"refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.15":"1146131374","1.3.6.1.4.1.57264.1.16":"https://github.com/tarekziade","1.3.6.1.4.1.57264.1.17":"250019","1.3.6.1.4.1.57264.1.18":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.19":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.20":"release","1.3.6.1.4.1.57264.1.21":"https://github.com/tarekziade/loopsleuth/actions/runs/21568733162/attempts/1","1.3.6.1.4.1.57264.1.22":"public"}}},{"filename":"loopsleuth-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl","url":"https://files.pythonhosted.org/packages/a4/da/e3d82235012c63376490f652cf0b6892c3c963dacaf1443ef358b21165f2/loopsleuth-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl","sboms":[{"artifact_uuid":"48995638-42fb-518e-8470-918ab7ff977a","path":"loopsleuth-0.1.1.dist-info/sboms/auditwheel.cdx.json","format":"CycloneDX/1.4","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/48995638-42fb-518e-8470-918ab7ff977a/download","vulnerability_count":0,"scan_error":null}],"attestation":{"status":"verified","publisher_kind":"GitHub","repository":"tarekziade/loopsleuth","workflow":"publish.yml","environment":"pypi","predicate_type":"https://docs.pypi.org/attestations/publish/v1","certificate_claims":{"1.3.6.1.4.1.57264.1.8":"https://token.actions.githubusercontent.com","1.3.6.1.4.1.57264.1.9":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.10":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.11":"github-hosted","1.3.6.1.4.1.57264.1.12":"https://github.com/tarekziade/loopsleuth","1.3.6.1.4.1.57264.1.13":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.14":"refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.15":"1146131374","1.3.6.1.4.1.57264.1.16":"https://github.com/tarekziade","1.3.6.1.4.1.57264.1.17":"250019","1.3.6.1.4.1.57264.1.18":"https://github.com/tarekziade/loopsleuth/.github/workflows/publish.yml@refs/tags/v0.1.1","1.3.6.1.4.1.57264.1.19":"836d7a6726c1db3015fad236d0c104eb3394d799","1.3.6.1.4.1.57264.1.20":"release","1.3.6.1.4.1.57264.1.21":"https://github.com/tarekziade/loopsleuth/actions/runs/21568733162/attempts/1","1.3.6.1.4.1.57264.1.22":"public"}}}],"formats":["CycloneDX"],"sbom_count":5,"has_attestation":true,"vulnerabilities":[],"vulnerability_scan":{"scanned_sboms":5,"total_sboms":5,"scanned_at":"2026-11-10","scanner":"osv-scanner 2.7.0","severity_counts":{}}}