{"bomFormat":"CycloneDX","specVersion":"1.6","serialNumber":"urn:uuid:58134e1e-381d-4275-b289-539e4c8d9ca0","version":1,"metadata":{"timestamp":"2025-10-25T15:57:50Z","tools":{"components":[{"group":"@cyclonedx","name":"cdxgen","version":"11.10.0","purl":"pkg:npm/%40cyclonedx/cdxgen@11.10.0","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@11.10.0","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}]},"authors":[{"name":"OWASP Foundation"}],"lifecycles":[{"phase":"pre-build"}],"component":{"group":"","name":"apache-airflow","version":"3.1.0","type":"application","bom-ref":"pkg:application/apache-airflow@3.1.0","purl":"pkg:application/apache-airflow@3.1.0"},"properties":[{"name":"cdx:bom:componentTypes","value":"pypi"},{"name":"cdx:bom:componentSrcFiles","value":"3.1.0/python/npm/python3.12/requirements.txt"}]},"components":[{"authors":[{"name":"Laurent LAPORTE <laurent.laporte.pro@gmail.com>"}],"group":"","name":"Deprecated","version":"1.2.18","description":"Python @deprecated decorator to deprecate old python classes, functions or methods.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/deprecated@1.2.18","externalReferences":[{"type":"vcs","url":"https://github.com/laurent-laporte-pro/deprecated"}],"type":"library","bom-ref":"pkg:pypi/deprecated@1.2.18","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"group":"","name":"Jinja2","version":"3.1.6","description":"A very fast and expressive template engine.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/jinja2@3.1.6","type":"library","bom-ref":"pkg:pypi/jinja2@3.1.6","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["template"]},{"authors":[{"name":"Mike Bayer <mike@zzzcomputing.com>"}],"group":"","name":"Mako","version":"1.3.10","description":"A super-fast templating language that borrows the best ideas from the existing templating languages.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/mako@1.3.10","externalReferences":[{"type":"website","url":"https://www.makotemplates.org/"}],"type":"library","bom-ref":"pkg:pypi/mako@1.3.10","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"group":"","name":"MarkupSafe","version":"3.0.2","description":"Safely add untrusted strings to HTML/XML markup.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/markupsafe@3.0.2","type":"library","bom-ref":"pkg:pypi/markupsafe@3.0.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Jose Padilla <hello@jpadilla.com>"}],"group":"","name":"PyJWT","version":"2.10.1","description":"JSON Web Token implementation in Python","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/pyjwt@2.10.1","type":"library","bom-ref":"pkg:pypi/pyjwt@2.10.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["token","web"]},{"authors":[{"name":"Kirill Simonov <xi@resolvent.net>"}],"group":"","name":"PyYAML","version":"6.0.2","description":"YAML parser and emitter for Python","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/pyyaml@6.0.2","externalReferences":[{"type":"website","url":"https://pyyaml.org/"}],"type":"library","bom-ref":"pkg:pypi/pyyaml@6.0.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Georg Brandl <georg@python.org>"}],"group":"","name":"Pygments","version":"2.19.2","description":"Pygments is a syntax highlighting package written in Python.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-2-Clause","url":"https://opensource.org/licenses/BSD-2-Clause"}}],"purl":"pkg:pypi/pygments@2.19.2","type":"library","bom-ref":"pkg:pypi/pygments@2.19.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Alexey Stepanov <penguinolog@gmail.com>"}],"group":"","name":"SQLAlchemy-JSONField","version":"1.0.2","description":"SQLALchemy JSONField implementation for storing dicts at SQL","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/sqlalchemy-jsonfield@1.0.2","type":"framework","bom-ref":"pkg:pypi/sqlalchemy-jsonfield@1.0.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["framework"]},{"authors":[{"name":"Ryan Leckey"},{"name":" Janne Vanhala"},{"name":" Vesa Uimonen <Konsta Vesterinen <konsta@fastmonkeys.com>>"}],"group":"","name":"SQLAlchemy-Utils","version":"0.42.0","description":"Various utility functions for SQLAlchemy.","licenses":[{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/sqlalchemy-utils@0.42.0","type":"framework","bom-ref":"pkg:pypi/sqlalchemy-utils@0.42.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["framework"]},{"authors":[{"name":"Mike Bayer <mike_mp@zzzcomputing.com>"}],"group":"","name":"SQLAlchemy","version":"1.4.54","description":"Database Abstraction Library","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/sqlalchemy@1.4.54","externalReferences":[{"type":"website","url":"https://www.sqlalchemy.org"}],"type":"framework","bom-ref":"pkg:pypi/sqlalchemy@1.4.54","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["framework"]},{"authors":[{"name":"abersheeran <me@abersheeran.com>"}],"group":"","name":"a2wsgi","version":"1.10.10","description":"Convert WSGI app to ASGI app or ASGI app to WSGI app.","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/a2wsgi@1.10.10","type":"library","bom-ref":"pkg:pypi/a2wsgi@1.10.10","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Amethyst Reese <amethyst@n7.gg>"}],"group":"","name":"aiosqlite","version":"0.21.0","description":"asyncio bridge to the standard sqlite3 module","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/aiosqlite@0.21.0","type":"library","bom-ref":"pkg:pypi/aiosqlite@0.21.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Mike Bayer <mike_mp@zzzcomputing.com>"}],"group":"","name":"alembic","version":"1.16.5","description":"A database migration tool for SQLAlchemy.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/alembic@1.16.5","type":"library","bom-ref":"pkg:pypi/alembic@1.16.5","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["database"]},{"authors":[{"name":"Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>"},{"name":" Samuel Colvin <s@muelcolvin.com>"},{"name":" Zac Hatfield-Dodds <zac@zhd.dev>"}],"group":"","name":"annotated-types","version":"0.7.0","description":"Reusable constraint types to use with typing.Annotated","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/annotated-types@0.7.0","type":"library","bom-ref":"pkg:pypi/annotated-types@0.7.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Alex Grönholm <alex.gronholm@nextday.fi>"}],"group":"","name":"anyio","version":"4.11.0","description":"High-level concurrency and networking framework on top of asyncio or Trio","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/anyio@4.11.0","type":"framework","bom-ref":"pkg:pypi/anyio@4.11.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["framework"]},{"authors":[{"name":"Andrey Kislyuk <kislyuk@gmail.com>"}],"group":"","name":"argcomplete","version":"3.6.2","description":"Bash tab completion for argparse","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/argcomplete@3.6.2","type":"library","bom-ref":"pkg:pypi/argcomplete@3.6.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Django Software Foundation <foundation@djangoproject.com>"}],"group":"","name":"asgiref","version":"3.9.2","description":"ASGI specs, helper code, and adapters","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/asgiref@3.9.2","externalReferences":[{"type":"vcs","url":"https://github.com/django/asgiref/"}],"type":"library","bom-ref":"pkg:pypi/asgiref@3.9.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Hynek Schlawack <hs@ox.cx>"}],"group":"","name":"attrs","version":"25.3.0","description":"Classes Without Boilerplate","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/attrs@25.3.0","type":"library","bom-ref":"pkg:pypi/attrs@25.3.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Stanislav Zmiev <zmievsa@gmail.com>"}],"group":"","name":"cadwyn","version":"5.4.4","description":"Production-ready community-driven modern Stripe-like API versioning in FastAPI","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/cadwyn@5.4.4","type":"library","bom-ref":"pkg:pypi/cadwyn@5.4.4","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["api"]},{"authors":[{"name":"Kenneth Reitz <me@kennethreitz.com>"}],"group":"","name":"certifi","version":"2025.8.3","description":"Python package for providing Mozilla's CA Bundle.","licenses":[{"license":{"id":"MPL-2.0","url":"https://opensource.org/licenses/MPL-2.0"}}],"purl":"pkg:pypi/certifi@2025.8.3","externalReferences":[{"type":"vcs","url":"https://github.com/certifi/python-certifi"}],"type":"library","bom-ref":"pkg:pypi/certifi@2025.8.3","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["bundle"]},{"authors":[{"name":"Armin Rigo"},{"name":" Maciej Fijalkowski <python-cffi@googlegroups.com>"}],"group":"","name":"cffi","version":"1.17.1","description":"Foreign Function Interface for Python calling C code.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/cffi@1.17.1","externalReferences":[{"type":"website","url":"http://cffi.readthedocs.org"}],"type":"library","bom-ref":"pkg:pypi/cffi@1.17.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["native"]},{"authors":[{"name":"\"Ahmed R. TAHRI\" <tahri.ahmed@proton.me>"}],"group":"","name":"charset-normalizer","version":"3.4.3","description":"The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/charset-normalizer@3.4.3","type":"library","bom-ref":"pkg:pypi/charset-normalizer@3.4.3","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"group":"","name":"click","version":"8.1.8","description":"Composable command line interface toolkit","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/click@8.1.8","type":"library","bom-ref":"pkg:pypi/click@8.1.8","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Sam Clements <sam@borntyping.co.uk>"}],"group":"","name":"colorlog","version":"6.9.0","description":"Add colours to the output of Python's logging module.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/colorlog@6.9.0","externalReferences":[{"type":"vcs","url":"https://github.com/borntyping/python-colorlog"}],"type":"library","bom-ref":"pkg:pypi/colorlog@6.9.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["logging"]},{"authors":[{"name":"Adam Schubert <adam.schubert@sg1-game.net>"}],"group":"","name":"cron_descriptor","version":"2.0.6","description":"A Python library that converts cron expressions into human readable strings.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/cron-descriptor@2.0.6","type":"library","bom-ref":"pkg:pypi/cron-descriptor@2.0.6","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["cron"]},{"authors":[{"name":"Matsumoto Taichi"},{"name":" kiorky <taichino@gmail.com"},{"name":" kiorky@cryptelium.net>"}],"group":"","name":"croniter","version":"6.0.0","description":"croniter provides iteration for datetime object with cron like format","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/croniter@6.0.0","externalReferences":[{"type":"vcs","url":"http://github.com/kiorky/croniter"}],"type":"library","bom-ref":"pkg:pypi/croniter@6.0.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["cron"]},{"authors":[{"name":"The Python Cryptographic Authority and individual contributors <cryptography-dev@python.org>"}],"group":"","name":"cryptography","version":"42.0.8","description":"cryptography is a package which provides cryptographic recipes and primitives to Python developers.","licenses":[{"expression":"Apache-2.0 OR BSD-3-Clause"}],"purl":"pkg:pypi/cryptography@42.0.8","type":"library","bom-ref":"pkg:pypi/cryptography@42.0.8","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Mike McKerns"}],"group":"","name":"dill","version":"0.3.1.1","description":"serialize all of python","licenses":[{"expression":"3-clause BSD"}],"purl":"pkg:pypi/dill@0.3.1.1","externalReferences":[{"type":"website","url":"https://pypi.org/project/dill"}],"type":"library","bom-ref":"pkg:pypi/dill@0.3.1.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Bob Halley <halley@dnspython.org>"}],"group":"","name":"dnspython","version":"2.8.0","description":"DNS toolkit","licenses":[{"license":{"id":"ISC","url":"https://opensource.org/licenses/ISC"}}],"purl":"pkg:pypi/dnspython@2.8.0","type":"library","bom-ref":"pkg:pypi/dnspython@2.8.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Joshua Tauberer <jt@occams.info>"}],"group":"","name":"email-validator","version":"2.3.0","description":"A robust email address syntax and deliverability validation library.","licenses":[{"expression":"The Unlicense (Unlicense)"}],"purl":"pkg:pypi/email-validator@2.3.0","externalReferences":[{"type":"vcs","url":"https://github.com/JoshData/python-email-validator"}],"type":"library","bom-ref":"pkg:pypi/email-validator@2.3.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["validation"]},{"authors":[{"name":"=?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>"}],"group":"","name":"fastapi-cli","version":"0.0.13","description":"Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/fastapi-cli@0.0.13","type":"framework","bom-ref":"pkg:pypi/fastapi-cli@0.0.13","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["cli","framework"]},{"authors":[{"name":"=?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>"}],"group":"","name":"fastapi","version":"0.117.1","description":"FastAPI framework, high performance, easy to learn, fast to code, ready for production","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/fastapi@0.117.1","type":"framework","bom-ref":"pkg:pypi/fastapi@0.117.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["framework"]},{"group":"","name":"fsspec","version":"2025.9.0","description":"File-system specification","licenses":[{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/fsspec@2025.9.0","type":"library","bom-ref":"pkg:pypi/fsspec@2025.9.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Google LLC <googleapis-packages@google.com>"}],"group":"","name":"googleapis-common-protos","version":"1.70.0","description":"Common protobufs used in Google APIs","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/googleapis-common-protos@1.70.0","type":"library","bom-ref":"pkg:pypi/googleapis-common-protos@1.70.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Joshua Oreman <oremanj@gmail.com>"}],"group":"","name":"greenback","version":"1.2.1","description":"Reenter an async event loop from synchronous code","licenses":[{"expression":"MIT -or- Apache License 2.0"}],"purl":"pkg:pypi/greenback@1.2.1","externalReferences":[{"type":"vcs","url":"https://github.com/oremanj/greenback"}],"type":"library","bom-ref":"pkg:pypi/greenback@1.2.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["event"]},{"authors":[{"name":"Alexey Borzenkov <snaury@gmail.com>"}],"group":"","name":"greenlet","version":"3.2.4","description":"Lightweight in-process concurrent programming","licenses":[{"expression":"MIT AND Python-2.0"}],"purl":"pkg:pypi/greenlet@3.2.4","externalReferences":[{"type":"website","url":"https://greenlet.readthedocs.io/"}],"type":"library","bom-ref":"pkg:pypi/greenlet@3.2.4","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"The gRPC Authors <grpc-io@googlegroups.com>"}],"group":"","name":"grpcio","version":"1.65.5","description":"HTTP/2-based RPC framework","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/grpcio@1.65.5","externalReferences":[{"type":"website","url":"https://grpc.io"}],"type":"framework","bom-ref":"pkg:pypi/grpcio@1.65.5","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["framework","rpc"]},{"authors":[{"name":"Nathaniel J. Smith <njs@pobox.com>"}],"group":"","name":"h11","version":"0.16.0","description":"A pure-Python, bring-your-own-I/O implementation of HTTP/1.1","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/h11@0.16.0","externalReferences":[{"type":"vcs","url":"https://github.com/python-hyper/h11"}],"type":"library","bom-ref":"pkg:pypi/h11@0.16.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Tom Christie <tom@tomchristie.com>"}],"group":"","name":"httpcore","version":"1.0.9","description":"A minimal low-level HTTP client.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/httpcore@1.0.9","type":"library","bom-ref":"pkg:pypi/httpcore@1.0.9","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Yury Selivanov <yury@magic.io>"}],"group":"","name":"httptools","version":"0.6.4","description":"A collection of framework independent HTTP protocol utils.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/httptools@0.6.4","externalReferences":[{"type":"vcs","url":"https://github.com/MagicStack/httptools"}],"type":"framework","bom-ref":"pkg:pypi/httptools@0.6.4","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["framework"]},{"authors":[{"name":"Tom Christie <tom@tomchristie.com>"}],"group":"","name":"httpx","version":"0.28.1","description":"The next generation HTTP client.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/httpx@0.28.1","type":"library","bom-ref":"pkg:pypi/httpx@0.28.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Kim Davies <kim+pypi@gumleaf.org>"}],"group":"","name":"idna","version":"3.10","description":"Internationalized Domain Names in Applications (IDNA)","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/idna@3.10","type":"library","bom-ref":"pkg:pypi/idna@3.10","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"\"Jason R. Coombs\" <jaraco@jaraco.com>"}],"group":"","name":"importlib_metadata","version":"8.4.0","description":"Read metadata from Python packages","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/importlib-metadata@8.4.0","type":"library","bom-ref":"pkg:pypi/importlib-metadata@8.4.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"group":"","name":"itsdangerous","version":"2.2.0","description":"Safely pass data to untrusted environments and back.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/itsdangerous@2.2.0","type":"library","bom-ref":"pkg:pypi/itsdangerous@2.2.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Julian Berman <Julian+jsonschema-specifications@GrayVines.com>"}],"group":"","name":"jsonschema-specifications","version":"2025.9.1","description":"The JSON Schema meta-schemas and vocabularies, exposed as a Registry","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/jsonschema-specifications@2025.9.1","type":"library","bom-ref":"pkg:pypi/jsonschema-specifications@2025.9.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["json"]},{"authors":[{"name":"Julian Berman <Julian+jsonschema@GrayVines.com>"}],"group":"","name":"jsonschema","version":"4.25.1","description":"An implementation of JSON Schema validation for Python","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/jsonschema@4.25.1","type":"library","bom-ref":"pkg:pypi/jsonschema@4.25.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["json","validation"]},{"authors":[{"name":"Ionel Cristian Mărieș <contact@ionelmc.ro>"}],"group":"","name":"lazy-object-proxy","version":"1.12.0","description":"A fast and thorough lazy object proxy.","licenses":[{"license":{"id":"BSD-2-Clause","url":"https://opensource.org/licenses/BSD-2-Clause"}}],"purl":"pkg:pypi/lazy-object-proxy@1.12.0","type":"library","bom-ref":"pkg:pypi/lazy-object-proxy@1.12.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"group":"","name":"libcst","version":"1.8.4","description":"A concrete syntax tree with AST-like properties for Python 3.0 through 3.13 programs.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}},{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/libcst@1.8.4","type":"library","bom-ref":"pkg:pypi/libcst@1.8.4","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"tsutsu3"}],"group":"","name":"linkify-it-py","version":"2.0.3","description":"Links recognition library with FULL unicode support.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/linkify-it-py@2.0.3","type":"library","bom-ref":"pkg:pypi/linkify-it-py@2.0.3","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"OpenStack <openstack-dev@lists.openstack.org>"}],"group":"","name":"lockfile","version":"0.12.2","description":"Platform-independent file locking module","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/lockfile@0.12.2","externalReferences":[{"type":"website","url":"http://launchpad.net/pylockfile"}],"type":"library","bom-ref":"pkg:pypi/lockfile@0.12.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Chris Sewell <chrisj_sewell@hotmail.com>"}],"group":"","name":"markdown-it-py","version":"4.0.0","description":"Python port of markdown-it. Markdown parsing, done right!","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/markdown-it-py@4.0.0","type":"library","bom-ref":"pkg:pypi/markdown-it-py@4.0.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Taneli Hukkinen <hukkin@users.noreply.github.com>"}],"group":"","name":"mdurl","version":"0.1.2","description":"Markdown URL utilities","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/mdurl@0.1.2","type":"library","bom-ref":"pkg:pypi/mdurl@0.1.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Jeong YunWon <methodtools@youknowone.org>"}],"group":"","name":"methodtools","version":"0.4.7","description":"Expand standard functools to methods","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-2-Clause","url":"https://opensource.org/licenses/BSD-2-Clause"}}],"purl":"pkg:pypi/methodtools@0.4.7","externalReferences":[{"type":"vcs","url":"https://github.com/youknowone/methodtools"}],"type":"library","bom-ref":"pkg:pypi/methodtools@0.4.7","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Erik Rose <erikrose@grinchcentral.com>"}],"group":"","name":"more-itertools","version":"10.8.0","description":"More routines for operating on iterables, beyond itertools","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/more-itertools@10.8.0","type":"library","bom-ref":"pkg:pypi/more-itertools@10.8.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"group":"","name":"msgspec","version":"0.19.0","description":"A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/msgspec@0.19.0","externalReferences":[{"type":"website","url":"https://jcristharif.com/msgspec/"}],"type":"library","bom-ref":"pkg:pypi/msgspec@0.19.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["serialization","validation"]},{"authors":[{"name":"Seth M. Morton <drtuba78@gmail.com>"}],"group":"","name":"natsort","version":"8.4.0","description":"Simple yet flexible natural sorting in Python.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/natsort@8.4.0","externalReferences":[{"type":"vcs","url":"https://github.com/SethMMorton/natsort"}],"type":"library","bom-ref":"pkg:pypi/natsort@8.4.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"}],"group":"","name":"opentelemetry-api","version":"1.27.0","description":"OpenTelemetry Python API","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/opentelemetry-api@1.27.0","type":"library","bom-ref":"pkg:pypi/opentelemetry-api@1.27.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["telemetry"]},{"authors":[{"name":"OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"}],"group":"","name":"opentelemetry-exporter-otlp-proto-common","version":"1.27.0","description":"OpenTelemetry Protobuf encoding","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/opentelemetry-exporter-otlp-proto-common@1.27.0","type":"library","bom-ref":"pkg:pypi/opentelemetry-exporter-otlp-proto-common@1.27.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["telemetry"]},{"authors":[{"name":"OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"}],"group":"","name":"opentelemetry-exporter-otlp-proto-grpc","version":"1.27.0","description":"OpenTelemetry Collector Protobuf over gRPC Exporter","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/opentelemetry-exporter-otlp-proto-grpc@1.27.0","type":"library","bom-ref":"pkg:pypi/opentelemetry-exporter-otlp-proto-grpc@1.27.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["telemetry"]},{"authors":[{"name":"OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"}],"group":"","name":"opentelemetry-exporter-otlp-proto-http","version":"1.27.0","description":"OpenTelemetry Collector Protobuf over HTTP Exporter","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/opentelemetry-exporter-otlp-proto-http@1.27.0","type":"library","bom-ref":"pkg:pypi/opentelemetry-exporter-otlp-proto-http@1.27.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["telemetry"]},{"authors":[{"name":"OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"}],"group":"","name":"opentelemetry-exporter-otlp","version":"1.27.0","description":"OpenTelemetry Collector Exporters","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/opentelemetry-exporter-otlp@1.27.0","type":"library","bom-ref":"pkg:pypi/opentelemetry-exporter-otlp@1.27.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["telemetry"]},{"authors":[{"name":"OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"}],"group":"","name":"opentelemetry-proto","version":"1.27.0","description":"OpenTelemetry Python Proto","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/opentelemetry-proto@1.27.0","type":"library","bom-ref":"pkg:pypi/opentelemetry-proto@1.27.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["telemetry"]},{"authors":[{"name":"OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"}],"group":"","name":"opentelemetry-sdk","version":"1.27.0","description":"OpenTelemetry Python SDK","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/opentelemetry-sdk@1.27.0","type":"library","bom-ref":"pkg:pypi/opentelemetry-sdk@1.27.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["telemetry"]},{"authors":[{"name":"OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"}],"group":"","name":"opentelemetry-semantic-conventions","version":"0.48b0","description":"OpenTelemetry Semantic Conventions","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/opentelemetry-semantic-conventions@0.48b0","type":"library","bom-ref":"pkg:pypi/opentelemetry-semantic-conventions@0.48b0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["telemetry"]},{"authors":[{"name":"Frazer McLean <frazer@frazermclean.co.uk>"}],"group":"","name":"outcome","version":"1.3.0.post0","description":"Capture the outcome of Python function calls.","licenses":[{"expression":"MIT OR Apache-2.0"}],"purl":"pkg:pypi/outcome@1.3.0.post0","externalReferences":[{"type":"vcs","url":"https://github.com/python-trio/outcome"}],"type":"library","bom-ref":"pkg:pypi/outcome@1.3.0.post0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Donald Stufft <donald@stufft.io>"}],"group":"","name":"packaging","version":"25.0","description":"Core utilities for Python packages","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}},{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/packaging@25.0","type":"library","bom-ref":"pkg:pypi/packaging@25.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"\"Caleb P. Burns\" <cpburnz@gmail.com>"}],"group":"","name":"pathspec","version":"0.12.1","description":"Utility library for gitignore style pattern matching of file paths.","licenses":[{"license":{"id":"MPL-2.0","url":"https://opensource.org/licenses/MPL-2.0"}}],"purl":"pkg:pypi/pathspec@0.12.1","type":"library","bom-ref":"pkg:pypi/pathspec@0.12.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Sébastien Eustace <sebastien@eustace.io>"}],"group":"","name":"pendulum","version":"3.1.0","description":"Python datetimes made easy","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/pendulum@3.1.0","type":"library","bom-ref":"pkg:pypi/pendulum@3.1.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Holger Krekel <holger@merlinux.eu>"}],"group":"","name":"pluggy","version":"1.6.0","description":"plugin and hook calling mechanisms for python","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/pluggy@1.6.0","type":"library","bom-ref":"pkg:pypi/pluggy@1.6.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"protobuf@googlegroups.com <protobuf@googlegroups.com>"}],"group":"","name":"protobuf","version":"4.25.8","licenses":[{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/protobuf@4.25.8","externalReferences":[{"type":"website","url":"https://developers.google.com/protocol-buffers/"}],"type":"library","bom-ref":"pkg:pypi/protobuf@4.25.8","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Giampaolo Rodola <g.rodola@gmail.com>"}],"group":"","name":"psutil","version":"7.1.0","description":"Cross-platform lib for process and system monitoring.","licenses":[{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/psutil@7.1.0","externalReferences":[{"type":"vcs","url":"https://github.com/giampaolo/psutil"}],"type":"library","bom-ref":"pkg:pypi/psutil@7.1.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Eli Bendersky <eliben@gmail.com>"}],"group":"","name":"pycparser","version":"2.23","description":"C parser in Python","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/pycparser@2.23","externalReferences":[{"type":"vcs","url":"https://github.com/eliben/pycparser"}],"type":"library","bom-ref":"pkg:pypi/pycparser@2.23","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["parse"]},{"authors":[{"name":"Samuel Colvin <s@muelcolvin.com>"},{"name":" Eric Jolibois <em.jolibois@gmail.com>"},{"name":" Hasan Ramezani <hasan.r67@gmail.com>"},{"name":" Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>"},{"name":" Terrence Dorsey <terry@pydantic.dev>"},{"name":" David Montague <david@pydantic.dev>"},{"name":" Serge Matveenko <lig@countzero.co>"},{"name":" Marcelo Trylesinski <marcelotryle@gmail.com>"},{"name":" Sydney Runkle <sydneymarierunkle@gmail.com>"},{"name":" David Hewitt <mail@davidhewitt.io>"},{"name":" Alex Hall <alex.mojaki@gmail.com>"},{"name":" Victorien Plot <contact@vctrn.dev>"}],"group":"","name":"pydantic","version":"2.11.9","description":"Data validation using Python type hints","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/pydantic@2.11.9","type":"library","bom-ref":"pkg:pypi/pydantic@2.11.9","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["validation"]},{"authors":[{"name":"Samuel Colvin <s@muelcolvin.com>"},{"name":" Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>"},{"name":" David Montague <david@pydantic.dev>"},{"name":" David Hewitt <mail@davidhewitt.dev>"},{"name":" Sydney Runkle <sydneymarierunkle@gmail.com>"},{"name":" Victorien Plot <contact@vctrn.dev>"}],"group":"","name":"pydantic_core","version":"2.33.2","description":"Core functionality for Pydantic validation and serialization","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/pydantic-core@2.33.2","externalReferences":[{"type":"vcs","url":"https://github.com/pydantic/pydantic-core"}],"type":"library","bom-ref":"pkg:pypi/pydantic-core@2.33.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["validation"]},{"authors":[{"name":"Michal Nazarewicz <mina86@mina86.com>"}],"group":"","name":"pygtrie","version":"2.5.0","description":"A pure Python trie data structure implementation.","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/pygtrie@2.5.0","externalReferences":[{"type":"vcs","url":"https://github.com/mina86/pygtrie"}],"type":"library","bom-ref":"pkg:pypi/pygtrie@2.5.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Ben Finney <ben+python@benfinney.id.au>"}],"group":"","name":"python-daemon","version":"3.1.2","description":"Library to implement a well-behaved Unix daemon process.","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/python-daemon@3.1.2","type":"library","bom-ref":"pkg:pypi/python-daemon@3.1.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Gustavo Niemeyer <gustavo@niemeyer.net>"}],"group":"","name":"python-dateutil","version":"2.9.0.post0","description":"Extensions to the standard Python datetime module","licenses":[{"expression":"Dual License"}],"purl":"pkg:pypi/python-dateutil@2.9.0.post0","externalReferences":[{"type":"vcs","url":"https://github.com/dateutil/dateutil"}],"type":"library","bom-ref":"pkg:pypi/python-dateutil@2.9.0.post0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Saurabh Kumar <me+github@saurabh-kumar.com>"}],"group":"","name":"python-dotenv","version":"1.1.1","description":"Read key-value pairs from a .env file and set them as environment variables","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/python-dotenv@1.1.1","externalReferences":[{"type":"vcs","url":"https://github.com/theskumar/python-dotenv"}],"type":"library","bom-ref":"pkg:pypi/python-dotenv@1.1.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Andrew Dunham <andrew@du.nham.ca>"},{"name":" Marcelo Trylesinski <marcelotryle@gmail.com>"}],"group":"","name":"python-multipart","version":"0.0.20","description":"A streaming multipart parser for Python","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/python-multipart@0.0.20","type":"library","bom-ref":"pkg:pypi/python-multipart@0.0.20","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Val Neekman <info@neekware.com>"}],"group":"","name":"python-slugify","version":"8.0.4","description":"A Python slugify application that also handles Unicode","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/python-slugify@8.0.4","externalReferences":[{"type":"vcs","url":"https://github.com/un33k/python-slugify"}],"type":"library","bom-ref":"pkg:pypi/python-slugify@8.0.4","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Stuart Bishop <stuart@stuartbishop.net>"}],"group":"","name":"pytz","version":"2025.2","description":"World timezone definitions, modern and historical","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/pytz@2025.2","externalReferences":[{"type":"website","url":"http://pythonhosted.org/pytz"}],"type":"library","bom-ref":"pkg:pypi/pytz@2025.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Julian Berman <Julian+referencing@GrayVines.com>"}],"group":"","name":"referencing","version":"0.36.2","description":"JSON Referencing + Python","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/referencing@0.36.2","type":"library","bom-ref":"pkg:pypi/referencing@0.36.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Kenneth Reitz <me@kennethreitz.org>"}],"group":"","name":"requests","version":"2.32.5","description":"Python HTTP for Humans.","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/requests@2.32.5","externalReferences":[{"type":"website","url":"https://requests.readthedocs.io"}],"type":"library","bom-ref":"pkg:pypi/requests@2.32.5","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Austin de Coup-Crank <austindcc@gmail.com>"}],"group":"","name":"retryhttp","version":"1.3.3","description":"Retry potentially transient HTTP errors in Python.","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/retryhttp@1.3.3","type":"library","bom-ref":"pkg:pypi/retryhttp@1.3.3","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Ali Hamdan <ali.hamdan.dev@gmail.com>"}],"group":"","name":"rich-argparse","version":"1.7.1","description":"Rich help formatters for argparse and optparse","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/rich-argparse@1.7.1","type":"library","bom-ref":"pkg:pypi/rich-argparse@1.7.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"group":"","name":"rich-toolkit","version":"0.15.1","description":"Rich toolkit for building command-line applications","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/rich-toolkit@0.15.1","type":"library","bom-ref":"pkg:pypi/rich-toolkit@0.15.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Will McGugan <willmcgugan@gmail.com>"}],"group":"","name":"rich","version":"13.9.4","description":"Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/rich@13.9.4","externalReferences":[{"type":"vcs","url":"https://github.com/Textualize/rich"}],"type":"library","bom-ref":"pkg:pypi/rich@13.9.4","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Julian Berman <Julian+rpds@GrayVines.com>"}],"group":"","name":"rpds-py","version":"0.27.1","description":"Python bindings to Rust's persistent data structures (rpds)","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/rpds-py@0.27.1","type":"library","bom-ref":"pkg:pypi/rpds-py@0.27.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Daniele Varrazzo <daniele.varrazzo@gmail.com>"}],"group":"","name":"setproctitle","version":"1.3.7","description":"A Python module to customize the process title","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/setproctitle@1.3.7","externalReferences":[{"type":"vcs","url":"https://github.com/dvarrazzo/py-setproctitle"}],"type":"library","bom-ref":"pkg:pypi/setproctitle@1.3.7","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Tzu-ping Chung <uranusjr@gmail.com>"}],"group":"","name":"shellingham","version":"1.5.4","description":"Tool to Detect Surrounding Shell","licenses":[{"expression":"ISC License"}],"purl":"pkg:pypi/shellingham@1.5.4","externalReferences":[{"type":"vcs","url":"https://github.com/sarugaku/shellingham"}],"type":"library","bom-ref":"pkg:pypi/shellingham@1.5.4","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Benjamin Peterson <benjamin@python.org>"}],"group":"","name":"six","version":"1.17.0","description":"Python 2 and 3 compatibility utilities","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/six@1.17.0","externalReferences":[{"type":"vcs","url":"https://github.com/benjaminp/six"}],"type":"library","bom-ref":"pkg:pypi/six@1.17.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"\"Nathaniel J. Smith\" <njs@pobox.com>"}],"group":"","name":"sniffio","version":"1.3.1","description":"Sniff out which async library your code is running under","licenses":[{"expression":"MIT OR Apache-2.0"}],"purl":"pkg:pypi/sniffio@1.3.1","type":"library","bom-ref":"pkg:pypi/sniffio@1.3.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["native"]},{"authors":[{"name":"Andi Albrecht <albrecht.andi@gmail.com>"}],"group":"","name":"sqlparse","version":"0.5.3","description":"A non-validating SQL parser.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/sqlparse@0.5.3","type":"library","bom-ref":"pkg:pypi/sqlparse@0.5.3","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["sql"]},{"authors":[{"name":"Tom Christie <tom@tomchristie.com>"},{"name":" Marcelo Trylesinski <marcelotryle@gmail.com>"}],"group":"","name":"starlette","version":"0.48.0","description":"The little ASGI library that shines.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/starlette@0.48.0","type":"library","bom-ref":"pkg:pypi/starlette@0.48.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Hynek Schlawack <hs@ox.cx>"}],"group":"","name":"structlog","version":"25.4.0","description":"Structured Logging for Python","licenses":[{"expression":"MIT OR Apache-2.0"}],"purl":"pkg:pypi/structlog@25.4.0","type":"library","bom-ref":"pkg:pypi/structlog@25.4.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["logging"]},{"authors":[{"name":"Hynek Schlawack <hs@ox.cx>"}],"group":"","name":"svcs","version":"25.1.0","description":"A Flexible Service Locator","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/svcs@25.1.0","type":"library","bom-ref":"pkg:pypi/svcs@25.1.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["service"]},{"authors":[{"name":"Sergey Astanin <s.astanin@gmail.com>"}],"group":"","name":"tabulate","version":"0.9.0","description":"Pretty-print tabular data","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/tabulate@0.9.0","type":"library","bom-ref":"pkg:pypi/tabulate@0.9.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Julien Danjou <julien@danjou.info>"}],"group":"","name":"tenacity","version":"9.1.2","description":"Retry code until it succeeds","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/tenacity@9.1.2","externalReferences":[{"type":"vcs","url":"https://github.com/jd/tenacity"}],"type":"library","bom-ref":"pkg:pypi/tenacity@9.1.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Konstantin Lepa <konstantin.lepa@gmail.com>"}],"group":"","name":"termcolor","version":"3.1.0","description":"ANSI color formatting for output in terminal","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/termcolor@3.1.0","type":"library","bom-ref":"pkg:pypi/termcolor@3.1.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Mikhail Korobov <kmike84@gmail.com>"}],"group":"","name":"text-unidecode","version":"1.3","description":"The most basic Text::Unidecode port","licenses":[{"expression":"Artistic License"}],"purl":"pkg:pypi/text-unidecode@1.3","externalReferences":[{"type":"vcs","url":"https://github.com/kmike/text-unidecode/"}],"type":"library","bom-ref":"pkg:pypi/text-unidecode@1.3","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"=?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>"}],"group":"","name":"typer","version":"0.19.2","description":"Typer, build great CLIs. Easy to code. Based on Python type hints.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/typer@0.19.2","type":"library","bom-ref":"pkg:pypi/typer@0.19.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"group":"","name":"types-requests","version":"2.32.4.20250913","description":"Typing stubs for requests","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/types-requests@2.32.4.20250913","type":"library","bom-ref":"pkg:pypi/types-requests@2.32.4.20250913","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["devel"]},{"authors":[{"name":"Victorien Plot <contact@vctrn.dev>"}],"group":"","name":"typing-inspection","version":"0.4.1","description":"Runtime typing introspection tools","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/typing-inspection@0.4.1","type":"library","bom-ref":"pkg:pypi/typing-inspection@0.4.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["devel"]},{"authors":[{"name":"\"Guido van Rossum"},{"name":" Jukka Lehtosalo"},{"name":" Łukasz Langa"},{"name":" Michael Lee\" <levkivskyi@gmail.com>"}],"group":"","name":"typing_extensions","version":"4.15.0","description":"Backported and Experimental Type Hints for Python 3.9+","licenses":[{"license":{"id":"PSF-2.0","url":"https://opensource.org/licenses/PSF-2.0"}}],"purl":"pkg:pypi/typing-extensions@4.15.0","type":"library","bom-ref":"pkg:pypi/typing-extensions@4.15.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Python Software Foundation <datetime-sig@python.org>"}],"group":"","name":"tzdata","version":"2025.2","description":"Provider of IANA time zone data","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:pypi/tzdata@2025.2","externalReferences":[{"type":"vcs","url":"https://github.com/python/tzdata"}],"type":"library","bom-ref":"pkg:pypi/tzdata@2025.2","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"tsutsu3"}],"group":"","name":"uc-micro-py","version":"1.0.3","description":"Micro subset of unicode data files for linkify-it-py projects.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/uc-micro-py@1.0.3","type":"library","bom-ref":"pkg:pypi/uc-micro-py@1.0.3","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Andrew Fulton <andrewfulton9@gmail.com>"}],"group":"","name":"universal_pathlib","version":"0.2.6","description":"pathlib api extended to use fsspec backends","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/universal-pathlib@0.2.6","type":"library","bom-ref":"pkg:pypi/universal-pathlib@0.2.6","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["api"]},{"authors":[{"name":"Andrey Petrov <andrey.petrov@shazow.net>"}],"group":"","name":"urllib3","version":"2.5.0","description":"HTTP library with thread-safe connection pooling, file post, and more.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/urllib3@2.5.0","type":"library","bom-ref":"pkg:pypi/urllib3@2.5.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Oittaa"}],"group":"","name":"uuid6","version":"2025.0.1","description":"New time-based UUID formats which are suited for use as a database key","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/uuid6@2025.0.1","type":"library","bom-ref":"pkg:pypi/uuid6@2025.0.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["database"]},{"authors":[{"name":"\"Astral Software Inc.\" <hey@astral.sh>"}],"group":"","name":"uv","version":"0.8.20","description":"An extremely fast Python package and project manager, written in Rust.","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}},{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/uv@0.8.20","externalReferences":[{"type":"website","url":"https://pypi.org/project/uv/"}],"type":"library","bom-ref":"pkg:pypi/uv@0.8.20","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Tom Christie <tom@tomchristie.com>"},{"name":" Marcelo Trylesinski <marcelotryle@gmail.com>"}],"group":"","name":"uvicorn","version":"0.37.0","description":"The lightning-fast ASGI server.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/uvicorn@0.37.0","type":"library","bom-ref":"pkg:pypi/uvicorn@0.37.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Yury Selivanov <yury@magic.io>"}],"group":"","name":"uvloop","version":"0.21.0","description":"Fast implementation of asyncio event loop on top of libuv","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}},{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/uvloop@0.21.0","type":"library","bom-ref":"pkg:pypi/uvloop@0.21.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["event"]},{"authors":[{"name":"Samuel Colvin <s@muelcolvin.com>"}],"group":"","name":"watchfiles","version":"1.1.0","description":"Simple, modern and high performance file watching and code reload in python.","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/watchfiles@1.1.0","externalReferences":[{"type":"vcs","url":"https://github.com/samuelcolvin/watchfiles"}],"type":"library","bom-ref":"pkg:pypi/watchfiles@1.1.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]},"tags":["performance"]},{"authors":[{"name":"Aymeric Augustin <aymeric.augustin@m4x.org>"}],"group":"","name":"websockets","version":"15.0.1","description":"An implementation of the WebSocket Protocol (RFC 6455 & 7692)","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}}],"purl":"pkg:pypi/websockets@15.0.1","type":"library","bom-ref":"pkg:pypi/websockets@15.0.1","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Jeong"},{"name":" YunWon <wirerope@youknowone.org>"}],"group":"","name":"wirerope","version":"1.0.0","description":"'Turn functions and methods into fully controllable objects'","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}},{"license":{"id":"BSD-2-Clause","url":"https://opensource.org/licenses/BSD-2-Clause"}}],"purl":"pkg:pypi/wirerope@1.0.0","externalReferences":[{"type":"vcs","url":"https://github.com/youknowone/wirerope"}],"type":"library","bom-ref":"pkg:pypi/wirerope@1.0.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"Graham Dumpleton <Graham.Dumpleton@gmail.com>"}],"group":"","name":"wrapt","version":"1.17.3","description":"Module for decorators, wrappers and monkey patching.","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:pypi/wrapt@1.17.3","externalReferences":[{"type":"vcs","url":"https://github.com/GrahamDumpleton/wrapt"}],"type":"library","bom-ref":"pkg:pypi/wrapt@1.17.3","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}},{"authors":[{"name":"\"Jason R. Coombs\" <jaraco@jaraco.com>"}],"group":"","name":"zipp","version":"3.23.0","description":"Backport of pathlib-compatible object wrapper for zip files","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:pypi/zipp@3.23.0","type":"library","bom-ref":"pkg:pypi/zipp@3.23.0","properties":[{"name":"SrcFile","value":"3.1.0/python/npm/python3.12/requirements.txt"}],"evidence":{"identity":[{"field":"purl","confidence":0.5,"methods":[{"technique":"manifest-analysis","confidence":0.5,"value":"3.1.0/python/npm/python3.12/requirements.txt"}],"concludedValue":"3.1.0/python/npm/python3.12/requirements.txt"}]}}],"services":[],"dependencies":[{"ref":"pkg:application/apache-airflow@3.1.0","dependsOn":[]}],"annotations":[{"bom-ref":"metadata-annotations","subjects":["pkg:application/apache-airflow@3.1.0"],"annotator":{"component":{"group":"@cyclonedx","name":"cdxgen","version":"11.10.0","purl":"pkg:npm/%40cyclonedx/cdxgen@11.10.0","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@11.10.0","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}},"timestamp":"2025-10-25T15:57:50Z","text":"This Software Bill-of-Materials (SBOM) document was created on Saturday, October 25, 2025 with cdxgen. The data was captured during the pre-build lifecycle phase without building the application. The document describes an application named 'apache-airflow' with version '3.1.0'. There are 117 components."}]}
