{
  "components": [
    {
      "bom-ref": "ConfigArgParse==1.7.5",
      "description": "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables.",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/bw2/ConfigArgParse"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "ConfigArgParse",
      "purl": "pkg:pypi/configargparse@1.7.5",
      "type": "library",
      "version": "1.7.5"
    },
    {
      "bom-ref": "Flask==3.1.3",
      "description": "A simple framework for building complex web applications.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://flask.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/flask/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://flask.palletsprojects.com/page/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "Flask",
      "purl": "pkg:pypi/flask@3.1.3",
      "type": "library",
      "version": "3.1.3"
    },
    {
      "bom-ref": "Flask-Login==0.6.3",
      "description": "User authentication and session management for Flask.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://flask-login.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issue Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/maxcountryman/flask-login/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/maxcountryman/flask-login"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://github.com/maxcountryman/flask-login/blob/main/CHANGES.md"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/maxcountryman/flask-login"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "Flask-Login",
      "purl": "pkg:pypi/flask-login@0.6.3",
      "type": "library",
      "version": "0.6.3"
    },
    {
      "bom-ref": "Jinja2==3.1.6",
      "description": "A very fast and expressive template engine.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://jinja.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/jinja/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://jinja.palletsprojects.com/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "Jinja2",
      "purl": "pkg:pypi/jinja2@3.1.6",
      "type": "library",
      "version": "3.1.6"
    },
    {
      "bom-ref": "MarkupSafe==3.0.3",
      "description": "Safely add untrusted strings to HTML/XML markup.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://markupsafe.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/markupsafe/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://markupsafe.palletsprojects.com/page/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "MarkupSafe",
      "purl": "pkg:pypi/markupsafe@3.0.3",
      "type": "library",
      "version": "3.0.3"
    },
    {
      "bom-ref": "PyJWT==2.12.1",
      "description": "JSON Web Token implementation in Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/jpadilla/pyjwt"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "PyJWT",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "crypto"
        }
      ],
      "purl": "pkg:pypi/pyjwt@2.12.1",
      "type": "library",
      "version": "2.12.1"
    },
    {
      "bom-ref": "PyYAML==6.0.3",
      "description": "YAML parser and emitter for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Download-URL",
          "type": "distribution",
          "url": "https://pypi.org/project/PyYAML/"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pyyaml.org/wiki/PyYAMLDocumentation"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/yaml/pyyaml/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Mailing lists",
          "type": "other",
          "url": "http://lists.sourceforge.net/lists/listinfo/yaml-core"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/yaml/pyyaml"
        },
        {
          "comment": "from packaging metadata Project-URL: CI",
          "type": "other",
          "url": "https://github.com/yaml/pyyaml/actions"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://pyyaml.org/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "PyYAML",
      "purl": "pkg:pypi/pyyaml@6.0.3",
      "type": "library",
      "version": "6.0.3"
    },
    {
      "bom-ref": "Pygments==2.20.0",
      "description": "Pygments is a syntax highlighting package written in Python.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pygments.org/docs"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/pygments/pygments/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pygments/pygments"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/pygments/pygments/blob/master/CHANGES"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://pygments.org"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-2-Clause"
          }
        }
      ],
      "name": "Pygments",
      "purl": "pkg:pypi/pygments@2.20.0",
      "type": "library",
      "version": "2.20.0"
    },
    {
      "bom-ref": "Werkzeug==3.1.8",
      "description": "The comprehensive WSGI web application library.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://werkzeug.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/werkzeug/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://werkzeug.palletsprojects.com/page/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "Werkzeug",
      "purl": "pkg:pypi/werkzeug@3.1.8",
      "type": "library",
      "version": "3.1.8"
    },
    {
      "bom-ref": "aiofiles==25.1.0",
      "description": "File support for asyncio.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/Tinche/aiofiles/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/Tinche/aiofiles#history"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/Tinche/aiofiles"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "aiofiles",
      "purl": "pkg:pypi/aiofiles@25.1.0",
      "type": "library",
      "version": "25.1.0"
    },
    {
      "bom-ref": "aiohappyeyeballs==2.6.1",
      "description": "Happy Eyeballs for asyncio",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://aiohappyeyeballs.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/aio-libs/aiohappyeyeballs/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/aio-libs/aiohappyeyeballs"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "PSF-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Python-2.0"
          }
        }
      ],
      "name": "aiohappyeyeballs",
      "purl": "pkg:pypi/aiohappyeyeballs@2.6.1",
      "type": "library",
      "version": "2.6.1"
    },
    {
      "bom-ref": "aiohttp==3.13.5",
      "description": "Async http client/server framework (asyncio)",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Coverage: codecov",
          "type": "other",
          "url": "https://codecov.io/github/aio-libs/aiohttp"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: RTD",
          "type": "other",
          "url": "https://docs.aiohttp.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: Changelog",
          "type": "other",
          "url": "https://docs.aiohttp.org/en/stable/changes.html"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: repo",
          "type": "other",
          "url": "https://github.com/aio-libs/aiohttp"
        },
        {
          "comment": "from packaging metadata Project-URL: CI: GitHub Actions",
          "type": "other",
          "url": "https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: issues",
          "type": "other",
          "url": "https://github.com/aio-libs/aiohttp/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/aio-libs/aiohttp"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "Apache-2.0 AND MIT"
        }
      ],
      "name": "aiohttp",
      "purl": "pkg:pypi/aiohttp@3.13.5",
      "type": "library",
      "version": "3.13.5"
    },
    {
      "bom-ref": "aioresponses==0.7.8",
      "description": "Mock out requests made by ClientSession from aiohttp package",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/pnuckowski/aioresponses"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "aioresponses",
      "purl": "pkg:pypi/aioresponses@0.7.8",
      "type": "library",
      "version": "0.7.8"
    },
    {
      "bom-ref": "aiosignal==1.4.0",
      "description": "aiosignal: a list of registered asynchronous callbacks",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Coverage: codecov",
          "type": "other",
          "url": "https://codecov.io/github/aio-libs/aiosignal"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: RTD",
          "type": "other",
          "url": "https://docs.aiosignal.org"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: repo",
          "type": "other",
          "url": "https://github.com/aio-libs/aiosignal"
        },
        {
          "comment": "from packaging metadata Project-URL: CI: GitHub Actions",
          "type": "other",
          "url": "https://github.com/aio-libs/aiosignal/actions"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: issues",
          "type": "other",
          "url": "https://github.com/aio-libs/aiosignal/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Chat: Gitter",
          "type": "other",
          "url": "https://gitter.im/aio-libs/Lobby"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/aio-libs/aiosignal"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "aiosignal",
      "purl": "pkg:pypi/aiosignal@1.4.0",
      "type": "library",
      "version": "1.4.0"
    },
    {
      "bom-ref": "aiosqlite==0.22.1",
      "description": "asyncio bridge to the standard sqlite3 module",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://aiosqlite.omnilib.dev"
        },
        {
          "comment": "from packaging metadata Project-URL: Github",
          "type": "vcs",
          "url": "https://github.com/omnilib/aiosqlite"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "aiosqlite",
      "purl": "pkg:pypi/aiosqlite@0.22.1",
      "type": "library",
      "version": "0.22.1"
    },
    {
      "bom-ref": "annotated-doc==0.0.4",
      "description": "Document parameters, class attributes, return types, and variables inline, with Annotated.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://github.com/fastapi/annotated-doc"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/fastapi/annotated-doc/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/fastapi/annotated-doc/release-notes.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/fastapi/annotated-doc"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/fastapi/annotated-doc"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "annotated-doc",
      "purl": "pkg:pypi/annotated-doc@0.0.4",
      "type": "library",
      "version": "0.0.4"
    },
    {
      "bom-ref": "annotated-types==0.7.0",
      "description": "Reusable constraint types to use with typing.Annotated",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/annotated-types/annotated-types"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/annotated-types/annotated-types/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/annotated-types/annotated-types"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "annotated-types",
      "purl": "pkg:pypi/annotated-types@0.7.0",
      "type": "library",
      "version": "0.7.0"
    },
    {
      "bom-ref": "anthropic==0.97.0",
      "description": "The official Python library for the anthropic API",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/anthropics/anthropic-sdk-python"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/anthropics/anthropic-sdk-python"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "anthropic",
      "purl": "pkg:pypi/anthropic@0.97.0",
      "type": "library",
      "version": "0.97.0"
    },
    {
      "bom-ref": "anyio==4.13.0",
      "description": "High-level concurrency and networking framework on top of asyncio or Trio",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://anyio.readthedocs.io/en/latest/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issue tracker",
          "type": "issue-tracker",
          "url": "https://github.com/agronholm/anyio/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source code",
          "type": "other",
          "url": "https://github.com/agronholm/anyio"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://anyio.readthedocs.io/en/stable/versionhistory.html"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "anyio",
      "purl": "pkg:pypi/anyio@4.13.0",
      "type": "library",
      "version": "4.13.0"
    },
    {
      "bom-ref": "arabic-reshaper==3.0.1",
      "description": "Reconstruct Arabic sentences to be used in applications that do not support Arabic",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/mpcabd/python-arabic-reshaper/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/mpcabd/python-arabic-reshaper/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "arabic-reshaper",
      "purl": "pkg:pypi/arabic-reshaper@3.0.1",
      "type": "library",
      "version": "3.0.1"
    },
    {
      "bom-ref": "asn1crypto==1.5.1",
      "description": "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/wbond/asn1crypto"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "asn1crypto",
      "purl": "pkg:pypi/asn1crypto@1.5.1",
      "type": "library",
      "version": "1.5.1"
    },
    {
      "bom-ref": "attrs==26.1.0",
      "description": "Classes Without Boilerplate",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://www.attrs.org/"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/hynek"
        },
        {
          "comment": "from packaging metadata Project-URL: Tidelift",
          "type": "other",
          "url": "https://tidelift.com/subscription/pkg/pypi-attrs?utm_source=pypi-attrs&utm_medium=pypi"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://www.attrs.org/en/stable/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub",
          "type": "vcs",
          "url": "https://github.com/python-attrs/attrs"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "attrs",
      "purl": "pkg:pypi/attrs@26.1.0",
      "type": "library",
      "version": "26.1.0"
    },
    {
      "bom-ref": "bcrypt==5.0.0",
      "description": "Modern password hashing for your software and your servers",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/pyca/bcrypt/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "bcrypt",
      "purl": "pkg:pypi/bcrypt@5.0.0",
      "type": "library",
      "version": "5.0.0"
    },
    {
      "bom-ref": "bidict==0.23.1",
      "description": "The bidirectional mapping library for Python.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://bidict.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://bidict.readthedocs.io/#sponsoring"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://bidict.readthedocs.io/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/jab/bidict"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)"
          }
        }
      ],
      "name": "bidict",
      "purl": "pkg:pypi/bidict@0.23.1",
      "type": "library",
      "version": "0.23.1"
    },
    {
      "bom-ref": "blinker==1.9.0",
      "description": "Fast, simple object-to-object and broadcast signaling",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://blinker.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets-eco/blinker/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "blinker",
      "purl": "pkg:pypi/blinker@1.9.0",
      "type": "library",
      "version": "1.9.0"
    },
    {
      "bom-ref": "blis==1.3.3",
      "description": "The Blis BLAS-like linear algebra library, as a self-contained C-extension.",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/cython-blis"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "blis",
      "purl": "pkg:pypi/blis@1.3.3",
      "type": "library",
      "version": "1.3.3"
    },
    {
      "bom-ref": "brotli==1.2.0",
      "description": "Python bindings for the Brotli compression library",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/google/brotli"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "brotli",
      "purl": "pkg:pypi/brotli@1.2.0",
      "type": "library",
      "version": "1.2.0"
    },
    {
      "bom-ref": "catalogue==2.0.10",
      "description": "Super lightweight function registries for your library",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/catalogue"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "catalogue",
      "purl": "pkg:pypi/catalogue@2.0.10",
      "type": "library",
      "version": "2.0.10"
    },
    {
      "bom-ref": "certifi==2026.4.22",
      "description": "Python package for providing Mozilla's CA Bundle.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/certifi/python-certifi"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/certifi/python-certifi"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MPL-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)"
          }
        }
      ],
      "name": "certifi",
      "purl": "pkg:pypi/certifi@2026.4.22",
      "type": "library",
      "version": "2026.4.22"
    },
    {
      "bom-ref": "cffi==2.0.0",
      "description": "Foreign Function Interface for Python calling C code.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://cffi.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issue Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/python-cffi/cffi/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/python-cffi/cffi"
        },
        {
          "comment": "from packaging metadata Project-URL: Downloads",
          "type": "other",
          "url": "https://github.com/python-cffi/cffi/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Contact",
          "type": "other",
          "url": "https://groups.google.com/forum/#!forum/python-cffi"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://cffi.readthedocs.io/en/latest/whatsnew.html"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "cffi",
      "purl": "pkg:pypi/cffi@2.0.0",
      "type": "library",
      "version": "2.0.0"
    },
    {
      "bom-ref": "charset-normalizer==3.4.7",
      "description": "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://charset-normalizer.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issue tracker",
          "type": "issue-tracker",
          "url": "https://github.com/jawah/charset_normalizer/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Code",
          "type": "other",
          "url": "https://github.com/jawah/charset_normalizer"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "charset-normalizer",
      "purl": "pkg:pypi/charset-normalizer@3.4.7",
      "type": "library",
      "version": "3.4.7"
    },
    {
      "bom-ref": "cicada==1.77.4",
      "description": "Cyber Incident Collection, Analysis & Detection Appliance",
      "externalReferences": [
        {
          "comment": "PackageSource: Local",
          "type": "distribution",
          "url": "file:///Users/doodee/claude-projects/cicada-app"
        }
      ],
      "name": "cicada",
      "type": "library",
      "version": "1.77.4"
    },
    {
      "bom-ref": "click==8.3.3",
      "description": "Composable command line interface toolkit",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://click.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/click/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://click.palletsprojects.com/page/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "click",
      "purl": "pkg:pypi/click@8.3.3",
      "type": "library",
      "version": "8.3.3"
    },
    {
      "bom-ref": "cloudpathlib==0.24.0",
      "description": "pathlib-style classes for cloud storage services.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://cloudpathlib.drivendata.org/"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/drivendataorg/cloudpathlib/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://cloudpathlib.drivendata.org/stable/changelog/"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/drivendataorg/cloudpathlib"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "cloudpathlib",
      "purl": "pkg:pypi/cloudpathlib@0.24.0",
      "type": "library",
      "version": "0.24.0"
    },
    {
      "bom-ref": "confection==1.3.3",
      "description": "The sweetest config system for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/confection"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "confection",
      "purl": "pkg:pypi/confection@1.3.3",
      "type": "library",
      "version": "1.3.3"
    },
    {
      "bom-ref": "contourpy==1.3.3",
      "description": "Python library for calculating contours of 2D quadrilateral grids",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://contourpy.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://contourpy.readthedocs.io/en/latest/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/contourpy/contourpy"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/contourpy/contourpy"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "contourpy",
      "purl": "pkg:pypi/contourpy@1.3.3",
      "type": "library",
      "version": "1.3.3"
    },
    {
      "bom-ref": "coverage==7.13.5",
      "description": "Code coverage measurement for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://coverage.readthedocs.io/en/7.13.5"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/coveragepy/coveragepy/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Mastodon",
          "type": "other",
          "url": "https://hachyderm.io/@coveragepy"
        },
        {
          "comment": "from packaging metadata Project-URL: Mastodon (nedbat)",
          "type": "other",
          "url": "https://hachyderm.io/@nedbat"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=pypi"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/coveragepy/coveragepy"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "coverage",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "toml"
        }
      ],
      "purl": "pkg:pypi/coverage@7.13.5",
      "type": "library",
      "version": "7.13.5"
    },
    {
      "bom-ref": "cryptography==47.0.0",
      "description": "cryptography is a package which provides cryptographic recipes and primitives to Python developers.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: documentation",
          "type": "documentation",
          "url": "https://cryptography.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: issues",
          "type": "issue-tracker",
          "url": "https://github.com/pyca/cryptography/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: source",
          "type": "other",
          "url": "https://github.com/pyca/cryptography/"
        },
        {
          "comment": "from packaging metadata Project-URL: changelog",
          "type": "release-notes",
          "url": "https://cryptography.io/en/latest/changelog/"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/pyca/cryptography"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "Apache-2.0 OR BSD-3-Clause"
        }
      ],
      "name": "cryptography",
      "purl": "pkg:pypi/cryptography@47.0.0",
      "type": "library",
      "version": "47.0.0"
    },
    {
      "bom-ref": "cssselect2==0.9.0",
      "description": "CSS selectors for Python ElementTree",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://doc.courtbouillon.org/cssselect2/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/Kozea/cssselect2/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Code",
          "type": "other",
          "url": "https://github.com/Kozea/cssselect2/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donation",
          "type": "other",
          "url": "https://opencollective.com/courtbouillon"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/Kozea/cssselect2/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://doc.courtbouillon.org/cssselect2/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "cssselect2",
      "purl": "pkg:pypi/cssselect2@0.9.0",
      "type": "library",
      "version": "0.9.0"
    },
    {
      "bom-ref": "cycler==0.12.1",
      "description": "Composable style cycles",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/matplotlib/cycler"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://matplotlib.org/cycler/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "cycler",
      "purl": "pkg:pypi/cycler@0.12.1",
      "type": "library",
      "version": "0.12.1"
    },
    {
      "bom-ref": "cymem==2.0.13",
      "description": "Manage calls to calloc/free through Cython",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/cymem"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "cymem",
      "purl": "pkg:pypi/cymem@2.0.13",
      "type": "library",
      "version": "2.0.13"
    },
    {
      "bom-ref": "defusedxml==0.7.1",
      "description": "XML bomb protection for Python stdlib modules",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Download-URL",
          "type": "distribution",
          "url": "https://pypi.python.org/pypi/defusedxml"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/tiran/defusedxml"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Python-2.0"
          }
        }
      ],
      "name": "defusedxml",
      "purl": "pkg:pypi/defusedxml@0.7.1",
      "type": "library",
      "version": "0.7.1"
    },
    {
      "bom-ref": "distro==1.9.0",
      "description": "Distro - an OS platform information API",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/python-distro/distro"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "distro",
      "purl": "pkg:pypi/distro@1.9.0",
      "type": "library",
      "version": "1.9.0"
    },
    {
      "bom-ref": "docstring_parser==0.18.0",
      "description": "Parse Python docstrings in reST, Google and Numpydoc format",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: changelog",
          "type": "release-notes",
          "url": "https://github.com/rr-/docstring_parser/blob/master/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/rr-/docstring_parser"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/rr-/docstring_parser"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "docstring_parser",
      "purl": "pkg:pypi/docstring-parser@0.18.0",
      "type": "library",
      "version": "0.18.0"
    },
    {
      "bom-ref": "dpkt==1.9.8",
      "description": "fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/kbandla/dpkt"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "dpkt",
      "purl": "pkg:pypi/dpkt@1.9.8",
      "type": "library",
      "version": "1.9.8"
    },
    {
      "bom-ref": "evtx==0.11.0",
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "evtx",
      "purl": "pkg:pypi/evtx@0.11.0",
      "type": "library",
      "version": "0.11.0"
    },
    {
      "bom-ref": "fastapi==0.136.1",
      "description": "FastAPI framework, high performance, easy to learn, fast to code, ready for production",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://fastapi.tiangolo.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/fastapi/fastapi/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://fastapi.tiangolo.com/release-notes/"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/fastapi/fastapi"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/fastapi/fastapi"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "fastapi",
      "purl": "pkg:pypi/fastapi@0.136.1",
      "type": "library",
      "version": "0.136.1"
    },
    {
      "bom-ref": "filelock==3.29.0",
      "description": "A platform independent file lock.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://py-filelock.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/tox-dev/py-filelock/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/tox-dev/py-filelock"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/tox-dev/py-filelock"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "filelock",
      "purl": "pkg:pypi/filelock@3.29.0",
      "type": "library",
      "version": "3.29.0"
    },
    {
      "bom-ref": "flask-cors==6.0.2",
      "description": "A Flask extension simplifying CORS support",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://corydolphin.github.io/flask-cors/"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/corydolphin/flask-cors"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://corydolphin.github.io/flask-cors/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "flask-cors",
      "purl": "pkg:pypi/flask-cors@6.0.2",
      "type": "library",
      "version": "6.0.2"
    },
    {
      "bom-ref": "fonttools==4.62.1",
      "description": "Tools to manipulate font files",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "http://github.com/fonttools/fonttools"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "fonttools",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "woff"
        }
      ],
      "purl": "pkg:pypi/fonttools@4.62.1",
      "type": "library",
      "version": "4.62.1"
    },
    {
      "bom-ref": "freetype-py==2.5.1",
      "description": "Freetype python bindings",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/rougier/freetype-py"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "freetype-py",
      "purl": "pkg:pypi/freetype-py@2.5.1",
      "type": "library",
      "version": "2.5.1"
    },
    {
      "bom-ref": "frozenlist==1.8.0",
      "description": "A list-like structure which implements collections.abc.MutableSequence",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Coverage: codecov",
          "type": "other",
          "url": "https://codecov.io/github/aio-libs/frozenlist"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: RTD",
          "type": "other",
          "url": "https://frozenlist.aio-libs.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Code of Conduct",
          "type": "other",
          "url": "https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: repo",
          "type": "other",
          "url": "https://github.com/aio-libs/frozenlist"
        },
        {
          "comment": "from packaging metadata Project-URL: CI: Github Actions",
          "type": "other",
          "url": "https://github.com/aio-libs/frozenlist/actions"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: Changelog",
          "type": "other",
          "url": "https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst#changelog"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: issues",
          "type": "other",
          "url": "https://github.com/aio-libs/frozenlist/issues"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/aio-libs/frozenlist"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "frozenlist",
      "purl": "pkg:pypi/frozenlist@1.8.0",
      "type": "library",
      "version": "1.8.0"
    },
    {
      "bom-ref": "geographiclib==2.1",
      "description": "The geodesic routines from GeographicLib",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Download",
          "type": "distribution",
          "url": "https://pypi.org/project/geographiclib/"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://geographiclib.sourceforge.io/Python/doc/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/geographiclib/geographiclib-python"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://geographiclib.sourceforge.io/Python/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "geographiclib",
      "purl": "pkg:pypi/geographiclib@2.1",
      "type": "library",
      "version": "2.1"
    },
    {
      "bom-ref": "geopy==2.4.1",
      "description": "Python Geocoding Toolbox",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Download-URL",
          "type": "distribution",
          "url": "https://github.com/geopy/geopy/archive/2.4.1.tar.gz"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/geopy/geopy"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "geopy",
      "purl": "pkg:pypi/geopy@2.4.1",
      "type": "library",
      "version": "2.4.1"
    },
    {
      "bom-ref": "gevent==25.9.1",
      "description": "Coroutine-based network library",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "http://www.gevent.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/gevent/gevent/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/gevent/gevent/"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://www.gevent.org/changelog.html"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "http://www.gevent.org/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "gevent",
      "purl": "pkg:pypi/gevent@25.9.1",
      "type": "library",
      "version": "25.9.1"
    },
    {
      "bom-ref": "geventhttpclient==2.3.9",
      "description": "HTTP client library for gevent",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: download",
          "type": "distribution",
          "url": "https://pypi.org/project/geventhttpclient/#files"
        },
        {
          "comment": "from packaging metadata Project-URL: issues",
          "type": "issue-tracker",
          "url": "http://github.com/geventhttpclient/geventhttpclient/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "http://github.com/geventhttpclient/geventhttpclient"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "geventhttpclient",
      "purl": "pkg:pypi/geventhttpclient@2.3.9",
      "type": "library",
      "version": "2.3.9"
    },
    {
      "bom-ref": "google-auth==2.50.0",
      "description": "Google Authentication Library",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/googleapis/google-auth-library-python"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "google-auth",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "requests"
        }
      ],
      "purl": "pkg:pypi/google-auth@2.50.0",
      "type": "library",
      "version": "2.50.0"
    },
    {
      "bom-ref": "google-genai==1.74.0",
      "description": "GenAI Python SDK",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/googleapis/python-genai"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "google-genai",
      "purl": "pkg:pypi/google-genai@1.74.0",
      "type": "library",
      "version": "1.74.0"
    },
    {
      "bom-ref": "greenlet==3.5.0",
      "description": "Lightweight in-process concurrent programming",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://greenlet.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/python-greenlet/greenlet/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://greenlet.readthedocs.io/en/latest/changes.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/python-greenlet/greenlet"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://greenlet.readthedocs.io"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "MIT AND PSF-2.0"
        }
      ],
      "name": "greenlet",
      "purl": "pkg:pypi/greenlet@3.5.0",
      "type": "library",
      "version": "3.5.0"
    },
    {
      "bom-ref": "h11==0.16.0",
      "description": "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/python-hyper/h11"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "h11",
      "purl": "pkg:pypi/h11@0.16.0",
      "type": "library",
      "version": "0.16.0"
    },
    {
      "bom-ref": "html5lib==1.1",
      "description": "HTML parser based on the WHATWG HTML specification",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/html5lib/html5lib-python"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "html5lib",
      "purl": "pkg:pypi/html5lib@1.1",
      "type": "library",
      "version": "1.1"
    },
    {
      "bom-ref": "httpcore==1.0.9",
      "description": "A minimal low-level HTTP client.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://www.encode.io/httpcore"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/encode/httpcore"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://www.encode.io/httpcore/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "httpcore",
      "purl": "pkg:pypi/httpcore@1.0.9",
      "type": "library",
      "version": "1.0.9"
    },
    {
      "bom-ref": "httptools==0.7.1",
      "description": "A collection of framework independent HTTP protocol utils.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/MagicStack/httptools"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "httptools",
      "purl": "pkg:pypi/httptools@0.7.1",
      "type": "library",
      "version": "0.7.1"
    },
    {
      "bom-ref": "httpx==0.28.1",
      "description": "The next generation HTTP client.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://www.python-httpx.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/encode/httpx"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/encode/httpx/blob/master/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/encode/httpx"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "httpx",
      "purl": "pkg:pypi/httpx@0.28.1",
      "type": "library",
      "version": "0.28.1"
    },
    {
      "bom-ref": "idna==3.13",
      "description": "Internationalized Domain Names in Applications (IDNA)",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Issue tracker",
          "type": "issue-tracker",
          "url": "https://github.com/kjd/idna/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/kjd/idna"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/kjd/idna/blob/master/HISTORY.rst"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "idna",
      "purl": "pkg:pypi/idna@3.13",
      "type": "library",
      "version": "3.13"
    },
    {
      "bom-ref": "iniconfig==2.3.0",
      "description": "brain-dead simple config-ini parsing",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pytest-dev/iniconfig"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "iniconfig",
      "purl": "pkg:pypi/iniconfig@2.3.0",
      "type": "library",
      "version": "2.3.0"
    },
    {
      "bom-ref": "itsdangerous==2.2.0",
      "description": "Safely pass data to untrusted environments and back.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://itsdangerous.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/itsdangerous/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://itsdangerous.palletsprojects.com/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "itsdangerous",
      "purl": "pkg:pypi/itsdangerous@2.2.0",
      "type": "library",
      "version": "2.2.0"
    },
    {
      "bom-ref": "jiter==0.14.0",
      "description": "Fast iterable JSON parser.",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/pydantic/jiter/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "jiter",
      "purl": "pkg:pypi/jiter@0.14.0",
      "type": "library",
      "version": "0.14.0"
    },
    {
      "bom-ref": "kiwisolver==1.5.0",
      "description": "A fast implementation of the Cassowary constraint solver",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: documentation",
          "type": "documentation",
          "url": "https://kiwisolver.readthedocs.io/en/latest/"
        },
        {
          "comment": "from packaging metadata Project-URL: changelog",
          "type": "release-notes",
          "url": "https://github.com/nucleic/kiwi/blob/main/releasenotes.rst"
        },
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/nucleic/kiwi"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/nucleic/kiwi"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "kiwisolver",
      "purl": "pkg:pypi/kiwisolver@1.5.0",
      "type": "library",
      "version": "1.5.0"
    },
    {
      "bom-ref": "ldap3==2.9.1",
      "description": "A strictly RFC 4510 conforming LDAP V3 pure Python client library",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/cannatag/ldap3"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "LGPL-3.0-only"
          }
        }
      ],
      "name": "ldap3",
      "purl": "pkg:pypi/ldap3@2.9.1",
      "type": "library",
      "version": "2.9.1"
    },
    {
      "bom-ref": "locust==2.43.4",
      "description": "Developer-friendly load testing framework",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: documentation",
          "type": "documentation",
          "url": "https://docs.locust.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/locustio/locust"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://locust.io/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "locust",
      "purl": "pkg:pypi/locust@2.43.4",
      "type": "library",
      "version": "2.43.4"
    },
    {
      "bom-ref": "lxml==6.1.0",
      "description": "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://bugs.launchpad.net/lxml"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/lxml/lxml"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://lxml.de/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "lxml",
      "purl": "pkg:pypi/lxml@6.1.0",
      "type": "library",
      "version": "6.1.0"
    },
    {
      "bom-ref": "markdown-it-py==4.0.0",
      "description": "Python port of markdown-it. Markdown parsing, done right!",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://markdown-it-py.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/executablebooks/markdown-it-py"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "markdown-it-py",
      "purl": "pkg:pypi/markdown-it-py@4.0.0",
      "type": "library",
      "version": "4.0.0"
    },
    {
      "bom-ref": "matplotlib==3.10.9",
      "description": "Python plotting package",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Download",
          "type": "distribution",
          "url": "https://matplotlib.org/stable/install/index.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://matplotlib.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/matplotlib/matplotlib/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Forum",
          "type": "other",
          "url": "https://discourse.matplotlib.org/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/matplotlib/matplotlib"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://numfocus.org/donate-to-matplotlib"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://matplotlib.org"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Python-2.0"
          }
        }
      ],
      "name": "matplotlib",
      "purl": "pkg:pypi/matplotlib@3.10.9",
      "type": "library",
      "version": "3.10.9"
    },
    {
      "bom-ref": "mdurl==0.1.2",
      "description": "Markdown URL utilities",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/executablebooks/mdurl"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "mdurl",
      "purl": "pkg:pypi/mdurl@0.1.2",
      "type": "library",
      "version": "0.1.2"
    },
    {
      "bom-ref": "msgpack==1.1.2",
      "description": "MessagePack serializer",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://msgpack-python.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/msgpack/msgpack-python/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/msgpack/msgpack-python/blob/main/ChangeLog.rst"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/msgpack/msgpack-python/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://msgpack.org/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "msgpack",
      "purl": "pkg:pypi/msgpack@1.1.2",
      "type": "library",
      "version": "1.1.2"
    },
    {
      "bom-ref": "multidict==6.7.1",
      "description": "multidict implementation",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Coverage: codecov",
          "type": "other",
          "url": "https://codecov.io/github/aio-libs/multidict"
        },
        {
          "comment": "from packaging metadata Project-URL: Code of Conduct",
          "type": "other",
          "url": "https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: repo",
          "type": "other",
          "url": "https://github.com/aio-libs/multidict"
        },
        {
          "comment": "from packaging metadata Project-URL: CI: GitHub",
          "type": "other",
          "url": "https://github.com/aio-libs/multidict/actions"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: issues",
          "type": "other",
          "url": "https://github.com/aio-libs/multidict/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: RTD",
          "type": "other",
          "url": "https://multidict.aio-libs.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: Changelog",
          "type": "other",
          "url": "https://multidict.aio-libs.org/en/latest/changes/"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/aio-libs/multidict"
        }
      ],
      "name": "multidict",
      "purl": "pkg:pypi/multidict@6.7.1",
      "type": "library",
      "version": "6.7.1"
    },
    {
      "bom-ref": "murmurhash==1.0.15",
      "description": "Cython bindings for MurmurHash",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/murmurhash"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "murmurhash",
      "purl": "pkg:pypi/murmurhash@1.0.15",
      "type": "library",
      "version": "1.0.15"
    },
    {
      "bom-ref": "networkx==3.6.1",
      "description": "Python package for creating and manipulating graphs and networks",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://networkx.org/documentation/stable/"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/networkx/networkx/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/networkx/networkx"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://networkx.org/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "networkx",
      "purl": "pkg:pypi/networkx@3.6.1",
      "type": "library",
      "version": "3.6.1"
    },
    {
      "bom-ref": "numpy==2.4.4",
      "description": "Fundamental package for array computing in Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: download",
          "type": "distribution",
          "url": "https://pypi.org/project/numpy/#files"
        },
        {
          "comment": "from packaging metadata Project-URL: documentation",
          "type": "documentation",
          "url": "https://numpy.org/doc/"
        },
        {
          "comment": "from packaging metadata Project-URL: tracker",
          "type": "issue-tracker",
          "url": "https://github.com/numpy/numpy/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: source",
          "type": "other",
          "url": "https://github.com/numpy/numpy"
        },
        {
          "comment": "from packaging metadata Project-URL: release notes",
          "type": "other",
          "url": "https://numpy.org/doc/stable/release"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://numpy.org"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0"
        }
      ],
      "name": "numpy",
      "purl": "pkg:pypi/numpy@2.4.4",
      "type": "library",
      "version": "2.4.4"
    },
    {
      "bom-ref": "ollama==0.6.2",
      "description": "The official Python client for Ollama.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: issues",
          "type": "issue-tracker",
          "url": "https://github.com/ollama/ollama-python/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/ollama/ollama-python"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://ollama.com"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "ollama",
      "purl": "pkg:pypi/ollama@0.6.2",
      "type": "library",
      "version": "0.6.2"
    },
    {
      "bom-ref": "openai==2.33.0",
      "description": "The official Python library for the openai API",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/openai/openai-python"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/openai/openai-python"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "openai",
      "purl": "pkg:pypi/openai@2.33.0",
      "type": "library",
      "version": "2.33.0"
    },
    {
      "bom-ref": "oscrypto==1.3.0",
      "description": "TLS (SSL) sockets, key generation, encryption, decryption, signing, verification and KDFs using the OS crypto libraries. Does not require a compiler, and relies on the OS for patching. Works on Windows, OS X and Linux/BSD.",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/wbond/oscrypto"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "oscrypto",
      "purl": "pkg:pypi/oscrypto@1.3.0",
      "type": "library",
      "version": "1.3.0"
    },
    {
      "bom-ref": "packaging==26.2",
      "description": "Core utilities for Python packages",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://packaging.pypa.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pypa/packaging"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "Apache-2.0 OR BSD-2-Clause"
        }
      ],
      "name": "packaging",
      "purl": "pkg:pypi/packaging@26.2",
      "type": "library",
      "version": "26.2"
    },
    {
      "bom-ref": "phonenumbers==9.0.29",
      "description": "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/daviddrysdale/python-phonenumbers"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "phonenumbers",
      "purl": "pkg:pypi/phonenumbers@9.0.29",
      "type": "library",
      "version": "9.0.29"
    },
    {
      "bom-ref": "pillow==12.2.0",
      "description": "Python Imaging Library (fork)",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pillow.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Mastodon",
          "type": "other",
          "url": "https://fosstodon.org/@pillow"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/python-pillow/Pillow"
        },
        {
          "comment": "from packaging metadata Project-URL: Release notes",
          "type": "other",
          "url": "https://pillow.readthedocs.io/en/stable/releasenotes/index.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://tidelift.com/subscription/pkg/pypi-pillow?utm_source=pypi-pillow&utm_medium=pypi"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/python-pillow/Pillow/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://python-pillow.github.io"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT-CMU"
          }
        }
      ],
      "name": "pillow",
      "purl": "pkg:pypi/pillow@12.2.0",
      "type": "library",
      "version": "12.2.0"
    },
    {
      "bom-ref": "pluggy==1.6.0",
      "description": "plugin and hook calling mechanisms for python",
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pluggy",
      "purl": "pkg:pypi/pluggy@1.6.0",
      "type": "library",
      "version": "1.6.0"
    },
    {
      "bom-ref": "preshed==3.0.13",
      "description": "Cython hash table that trusts the keys are pre-hashed",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/preshed"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "preshed",
      "purl": "pkg:pypi/preshed@3.0.13",
      "type": "library",
      "version": "3.0.13"
    },
    {
      "bom-ref": "presidio_analyzer==2.2.362",
      "description": "Presidio Analyzer package",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/Microsoft/presidio"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "presidio_analyzer",
      "purl": "pkg:pypi/presidio-analyzer@2.2.362",
      "type": "library",
      "version": "2.2.362"
    },
    {
      "bom-ref": "propcache==0.4.1",
      "description": "Accelerated property cache",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Coverage: codecov",
          "type": "other",
          "url": "https://codecov.io/github/aio-libs/propcache"
        },
        {
          "comment": "from packaging metadata Project-URL: Code of Conduct",
          "type": "other",
          "url": "https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: repo",
          "type": "other",
          "url": "https://github.com/aio-libs/propcache"
        },
        {
          "comment": "from packaging metadata Project-URL: CI: GitHub Workflows",
          "type": "other",
          "url": "https://github.com/aio-libs/propcache/actions?query=branch:master"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: issues",
          "type": "other",
          "url": "https://github.com/aio-libs/propcache/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: RTD",
          "type": "other",
          "url": "https://propcache.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: Changelog",
          "type": "other",
          "url": "https://propcache.readthedocs.io/en/latest/changes/"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/aio-libs/propcache"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "propcache",
      "purl": "pkg:pypi/propcache@0.4.1",
      "type": "library",
      "version": "0.4.1"
    },
    {
      "bom-ref": "psutil==7.2.2",
      "description": "Cross-platform lib for process and system monitoring.",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/giampaolo/psutil"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "psutil",
      "purl": "pkg:pypi/psutil@7.2.2",
      "type": "library",
      "version": "7.2.2"
    },
    {
      "bom-ref": "pyHanko==0.34.1",
      "description": "Tools for stamping and signing PDF files",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://docs.pyhanko.eu/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issue Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/MatthiasValvekens/pyHanko/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/MatthiasValvekens/pyHanko"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://docs.pyhanko.eu/en/latest/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/MatthiasValvekens/pyHanko"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pyHanko",
      "purl": "pkg:pypi/pyhanko@0.34.1",
      "type": "library",
      "version": "0.34.1"
    },
    {
      "bom-ref": "pyasn1==0.6.3",
      "description": "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pyasn1.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/pyasn1/pyasn1/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pyasn1/pyasn1"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://pyasn1.readthedocs.io/en/latest/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pyasn1/pyasn1"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-2-Clause"
          }
        }
      ],
      "name": "pyasn1",
      "purl": "pkg:pypi/pyasn1@0.6.3",
      "type": "library",
      "version": "0.6.3"
    },
    {
      "bom-ref": "pyasn1_modules==0.4.2",
      "description": "A collection of ASN.1-based protocols modules",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/pyasn1/pyasn1-modules/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pyasn1/pyasn1-modules"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/pyasn1/pyasn1-modules/blob/master/CHANGES.txt"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/pyasn1/pyasn1-modules"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "pyasn1_modules",
      "purl": "pkg:pypi/pyasn1-modules@0.4.2",
      "type": "library",
      "version": "0.4.2"
    },
    {
      "bom-ref": "pycairo==1.29.0",
      "description": "Python interface for cairo",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pygobject/pycairo"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://pycairo.readthedocs.io"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "LGPL-2.1-only OR MPL-1.1"
        }
      ],
      "name": "pycairo",
      "purl": "pkg:pypi/pycairo@1.29.0",
      "type": "library",
      "version": "1.29.0"
    },
    {
      "bom-ref": "pycparser==3.0",
      "description": "C parser in Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/eliben/pycparser"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "pycparser",
      "purl": "pkg:pypi/pycparser@3.0",
      "type": "library",
      "version": "3.0"
    },
    {
      "bom-ref": "pydantic==2.13.3",
      "description": "Data validation using Python type hints",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://docs.pydantic.dev"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/pydantic"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/samuelcolvin"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://docs.pydantic.dev/latest/changelog/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic/pydantic"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pydantic",
      "purl": "pkg:pypi/pydantic@2.13.3",
      "type": "library",
      "version": "2.13.3"
    },
    {
      "bom-ref": "pydantic-settings==2.14.0",
      "description": "Settings management using Pydantic",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://docs.pydantic.dev/dev-v2/concepts/pydantic_settings/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/pydantic-settings"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/samuelcolvin"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/pydantic/pydantic-settings/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic/pydantic-settings"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pydantic-settings",
      "purl": "pkg:pypi/pydantic-settings@2.14.0",
      "type": "library",
      "version": "2.14.0"
    },
    {
      "bom-ref": "pydantic_core==2.46.3",
      "description": "Core functionality for Pydantic validation and serialization",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/pydantic/tree/main/pydantic-core"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/samuelcolvin"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/pydantic/pydantic"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pydantic_core",
      "purl": "pkg:pypi/pydantic-core@2.46.3",
      "type": "library",
      "version": "2.46.3"
    },
    {
      "bom-ref": "pydyf==0.12.1",
      "description": "A low-level PDF generator.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://doc.courtbouillon.org/pydyf/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/CourtBouillon/pydyf/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Code",
          "type": "other",
          "url": "https://github.com/CourtBouillon/pydyf"
        },
        {
          "comment": "from packaging metadata Project-URL: Donation",
          "type": "other",
          "url": "https://opencollective.com/courtbouillon"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/CourtBouillon/pydyf/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://www.courtbouillon.org/pydyf"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "pydyf",
      "purl": "pkg:pypi/pydyf@0.12.1",
      "type": "library",
      "version": "0.12.1"
    },
    {
      "bom-ref": "pyhanko-certvalidator==0.30.2",
      "description": "Validates X.509 certificates and paths; forked from wbond/certvalidator",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/MatthiasValvekens/pyHanko/tree/master/pkgs/pyhanko-certvalidator"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pyhanko-certvalidator",
      "purl": "pkg:pypi/pyhanko-certvalidator@0.30.2",
      "type": "library",
      "version": "0.30.2"
    },
    {
      "bom-ref": "pyparsing==3.3.2",
      "description": "pyparsing - Classes and methods to define and execute parsing grammars",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pyparsing-docs.readthedocs.io/en/latest/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pyparsing/pyparsing.git"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pyparsing/pyparsing/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pyparsing",
      "purl": "pkg:pypi/pyparsing@3.3.2",
      "type": "library",
      "version": "3.3.2"
    },
    {
      "bom-ref": "pypdf==6.10.2",
      "description": "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pypdf.readthedocs.io/en/latest/"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Reports",
          "type": "issue-tracker",
          "url": "https://github.com/py-pdf/pypdf/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/py-pdf/pypdf"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://pypdf.readthedocs.io/en/latest/meta/CHANGELOG.html"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "pypdf",
      "purl": "pkg:pypi/pypdf@6.10.2",
      "type": "library",
      "version": "6.10.2"
    },
    {
      "bom-ref": "pyphen==0.17.2",
      "description": "Pure Python module to hyphenate text",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pyphen.org/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/Kozea/Pyphen/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Code",
          "type": "other",
          "url": "https://github.com/Kozea/Pyphen"
        },
        {
          "comment": "from packaging metadata Project-URL: Donation",
          "type": "other",
          "url": "https://opencollective.com/courtbouillon"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/Kozea/Pyphen/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://www.courtbouillon.org/pyphen"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "GPL-2.0-or-later"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MPL-1.1"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)"
          }
        }
      ],
      "name": "pyphen",
      "purl": "pkg:pypi/pyphen@0.17.2",
      "type": "library",
      "version": "0.17.2"
    },
    {
      "bom-ref": "pyspnego==0.12.1",
      "description": "Windows Negotiate Authentication Client and Server",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/jborean93/pyspnego"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pyspnego",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "kerberos"
        }
      ],
      "purl": "pkg:pypi/pyspnego@0.12.1",
      "type": "library",
      "version": "0.12.1"
    },
    {
      "bom-ref": "pytest==9.0.3",
      "description": "pytest: simple powerful testing with Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/pytest-dev/pytest/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Contact",
          "type": "other",
          "url": "https://docs.pytest.org/en/stable/contact.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://docs.pytest.org/en/stable/sponsor.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pytest-dev/pytest"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://docs.pytest.org/en/stable/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://docs.pytest.org/en/latest/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pytest",
      "purl": "pkg:pypi/pytest@9.0.3",
      "type": "library",
      "version": "9.0.3"
    },
    {
      "bom-ref": "pytest-asyncio==1.3.0",
      "description": "Pytest support for asyncio",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pytest-asyncio.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/pytest-dev/pytest-asyncio/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/pytest-dev/pytest-asyncio"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://pytest-asyncio.readthedocs.io/en/latest/reference/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pytest-dev/pytest-asyncio"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "pytest-asyncio",
      "purl": "pkg:pypi/pytest-asyncio@1.3.0",
      "type": "library",
      "version": "1.3.0"
    },
    {
      "bom-ref": "pytest-cov==7.1.0",
      "description": "Pytest plugin for measuring coverage.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pytest-cov.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issue Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/pytest-dev/pytest-cov/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Sources",
          "type": "other",
          "url": "https://github.com/pytest-dev/pytest-cov"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://pytest-cov.readthedocs.io/en/latest/changelog.html"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pytest-cov",
      "purl": "pkg:pypi/pytest-cov@7.1.0",
      "type": "library",
      "version": "7.1.0"
    },
    {
      "bom-ref": "pytest-timeout==2.4.0",
      "description": "pytest plugin to abort hanging tests",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/pytest-dev/pytest-timeout"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: DFSG approved"
          }
        }
      ],
      "name": "pytest-timeout",
      "purl": "pkg:pypi/pytest-timeout@2.4.0",
      "type": "library",
      "version": "2.4.0"
    },
    {
      "bom-ref": "python-bidi==0.6.7",
      "description": "Python Bidi layout wrapping the Rust crate unicode-bidi",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://python-bidi.readthedocs.io/en/latest/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/MeirKriheli/python-bidi/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/MeirKriheli/python-bidi/blob/master/CHANGELOG.rst"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/MeirKriheli/python-bidi"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/MeirKriheli/python-bidi"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)"
          }
        }
      ],
      "name": "python-bidi",
      "purl": "pkg:pypi/python-bidi@0.6.7",
      "type": "library",
      "version": "0.6.7"
    },
    {
      "bom-ref": "python-dateutil==2.9.0.post0",
      "description": "Extensions to the standard Python datetime module",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://dateutil.readthedocs.io/en/stable/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/dateutil/dateutil"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/dateutil/dateutil"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "python-dateutil",
      "purl": "pkg:pypi/python-dateutil@2.9.0.post0",
      "type": "library",
      "version": "2.9.0.post0"
    },
    {
      "bom-ref": "python-docx==1.2.0",
      "description": "Create, read, and update Microsoft Word .docx files.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://python-docx.readthedocs.org/en/latest/"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/python-openxml/python-docx/blob/master/HISTORY.rst"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/python-openxml/python-docx"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/python-openxml/python-docx"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "python-docx",
      "purl": "pkg:pypi/python-docx@1.2.0",
      "type": "library",
      "version": "1.2.0"
    },
    {
      "bom-ref": "python-dotenv==1.2.2",
      "description": "Read key-value pairs from a .env file and set them as environment variables",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/theskumar/python-dotenv"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "python-dotenv",
      "purl": "pkg:pypi/python-dotenv@1.2.2",
      "type": "library",
      "version": "1.2.2"
    },
    {
      "bom-ref": "python-engineio==4.13.1",
      "description": "Engine.IO server and client for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/miguelgrinberg/python-engineio/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/miguelgrinberg/python-engineio"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "python-engineio",
      "purl": "pkg:pypi/python-engineio@4.13.1",
      "type": "library",
      "version": "4.13.1"
    },
    {
      "bom-ref": "python-multipart==0.0.27",
      "description": "A streaming multipart parser for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://kludex.github.io/python-multipart/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/Kludex/python-multipart"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/Kludex/python-multipart"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "python-multipart",
      "purl": "pkg:pypi/python-multipart@0.0.27",
      "type": "library",
      "version": "0.0.27"
    },
    {
      "bom-ref": "python-socketio==5.16.1",
      "description": "Socket.IO server and client for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/miguelgrinberg/python-socketio/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/miguelgrinberg/python-socketio"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "python-socketio",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "client"
        }
      ],
      "purl": "pkg:pypi/python-socketio@5.16.1",
      "type": "library",
      "version": "5.16.1"
    },
    {
      "bom-ref": "pywinrm==0.5.0",
      "description": "Python library for Windows Remote Management",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "http://github.com/diyan/pywinrm/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pywinrm",
      "purl": "pkg:pypi/pywinrm@0.5.0",
      "type": "library",
      "version": "0.5.0"
    },
    {
      "bom-ref": "pyzmq==27.1.0",
      "description": "Python bindings for 0MQ",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pyzmq.readthedocs.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/zeromq/pyzmq/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/zeromq/pyzmq"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://pyzmq.readthedocs.org"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "pyzmq",
      "purl": "pkg:pypi/pyzmq@27.1.0",
      "type": "library",
      "version": "27.1.0"
    },
    {
      "bom-ref": "regex==2026.4.4",
      "description": "Alternative regular expression module, to replace re.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/mrabarnett/mrab-regex"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "Apache-2.0 AND CNRI-Python"
        }
      ],
      "name": "regex",
      "purl": "pkg:pypi/regex@2026.4.4",
      "type": "library",
      "version": "2026.4.4"
    },
    {
      "bom-ref": "reportlab==4.5.0",
      "description": "The Reportlab Toolkit",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://www.reportlab.com/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "reportlab",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "pycairo"
        },
        {
          "name": "cdx:python:package:required-extra",
          "value": "renderpm"
        }
      ],
      "purl": "pkg:pypi/reportlab@4.5.0",
      "type": "library",
      "version": "4.5.0"
    },
    {
      "bom-ref": "requests==2.33.1",
      "description": "Python HTTP for Humans.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://requests.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/psf/requests"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "requests",
      "purl": "pkg:pypi/requests@2.33.1",
      "type": "library",
      "version": "2.33.1"
    },
    {
      "bom-ref": "requests-file==3.0.1",
      "description": "File transport adapter for Requests",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://codeberg.org/dashea/requests-file"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "requests-file",
      "purl": "pkg:pypi/requests-file@3.0.1",
      "type": "library",
      "version": "3.0.1"
    },
    {
      "bom-ref": "requests_ntlm==1.3.0",
      "description": "This package allows for HTTP NTLM authentication using the requests library.",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/requests/requests-ntlm"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "ISC"
          }
        }
      ],
      "name": "requests_ntlm",
      "purl": "pkg:pypi/requests-ntlm@1.3.0",
      "type": "library",
      "version": "1.3.0"
    },
    {
      "bom-ref": "rich==15.0.0",
      "description": "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://rich.readthedocs.io/en/latest/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/Textualize/rich"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "rich",
      "purl": "pkg:pypi/rich@15.0.0",
      "type": "library",
      "version": "15.0.0"
    },
    {
      "bom-ref": "rlPyCairo==0.4.0",
      "description": "Plugin backend renderer for reportlab.graphics.renderPM",
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "rlPyCairo",
      "purl": "pkg:pypi/rlpycairo@0.4.0",
      "type": "library",
      "version": "0.4.0"
    },
    {
      "bom-ref": "ruff==0.15.12",
      "description": "An extremely fast Python linter and code formatter, written in Rust.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://docs.astral.sh/ruff/"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/astral-sh/ruff"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://docs.astral.sh/ruff"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "ruff",
      "purl": "pkg:pypi/ruff@0.15.12",
      "type": "library",
      "version": "0.15.12"
    },
    {
      "bom-ref": "setuptools==82.0.1",
      "description": "Most extensible Python build backend with support for C/C++ extension modules",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://setuptools.pypa.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pypa/setuptools"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://setuptools.pypa.io/en/stable/history.html"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "setuptools",
      "purl": "pkg:pypi/setuptools@82.0.1",
      "type": "library",
      "version": "82.0.1"
    },
    {
      "bom-ref": "shellingham==1.5.4",
      "description": "Tool to Detect Surrounding Shell",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/sarugaku/shellingham"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "ISC"
          }
        }
      ],
      "name": "shellingham",
      "purl": "pkg:pypi/shellingham@1.5.4",
      "type": "library",
      "version": "1.5.4"
    },
    {
      "bom-ref": "simple-websocket==1.1.0",
      "description": "Simple WebSocket server and client for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/miguelgrinberg/simple-websocket/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/miguelgrinberg/simple-websocket"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "simple-websocket",
      "purl": "pkg:pypi/simple-websocket@1.1.0",
      "type": "library",
      "version": "1.1.0"
    },
    {
      "bom-ref": "six==1.17.0",
      "description": "Python 2 and 3 compatibility utilities",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/benjaminp/six"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "six",
      "purl": "pkg:pypi/six@1.17.0",
      "type": "library",
      "version": "1.17.0"
    },
    {
      "bom-ref": "smart_open==7.6.0",
      "description": "Utils for streaming large files (S3, HDFS, GCS, SFTP, Azure Blob Storage, gzip, bz2, zst...)",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/piskvorky/smart_open"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "smart_open",
      "purl": "pkg:pypi/smart-open@7.6.0",
      "type": "library",
      "version": "7.6.0"
    },
    {
      "bom-ref": "smbprotocol==1.16.1",
      "description": "Interact with a server using the SMB 2/3 Protocol",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/jborean93/smbprotocol"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "smbprotocol",
      "purl": "pkg:pypi/smbprotocol@1.16.1",
      "type": "library",
      "version": "1.16.1"
    },
    {
      "bom-ref": "sniffio==1.3.1",
      "description": "Sniff out which async library your code is running under",
      "evidence": {
        "licenses": [
          {
            "license": {
              "acknowledgement": "declared",
              "id": "MIT"
            }
          },
          {
            "license": {
              "acknowledgement": "declared",
              "name": "License :: OSI Approved :: Apache Software License"
            }
          }
        ]
      },
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://sniffio.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://sniffio.readthedocs.io/en/latest/history.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/python-trio/sniffio"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "name": "sniffio",
      "purl": "pkg:pypi/sniffio@1.3.1",
      "type": "library",
      "version": "1.3.1"
    },
    {
      "bom-ref": "spacy==3.8.14",
      "description": "Industrial-strength Natural Language Processing (NLP) in Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/explosion/spaCy"
        },
        {
          "comment": "from packaging metadata Project-URL: Release notes",
          "type": "other",
          "url": "https://github.com/explosion/spaCy/releases"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://spacy.io"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "spacy",
      "purl": "pkg:pypi/spacy@3.8.14",
      "type": "library",
      "version": "3.8.14"
    },
    {
      "bom-ref": "spacy-legacy==3.0.12",
      "description": "Legacy registered functions for spaCy backwards compatibility",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://spacy.io"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "spacy-legacy",
      "purl": "pkg:pypi/spacy-legacy@3.0.12",
      "type": "library",
      "version": "3.0.12"
    },
    {
      "bom-ref": "spacy-loggers==1.0.5",
      "description": "Logging utilities for SpaCy",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/spacy-loggers"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "spacy-loggers",
      "purl": "pkg:pypi/spacy-loggers@1.0.5",
      "type": "library",
      "version": "1.0.5"
    },
    {
      "bom-ref": "srsly==2.5.3",
      "description": "Modern high-performance serialization utilities for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/srsly"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "srsly",
      "purl": "pkg:pypi/srsly@2.5.3",
      "type": "library",
      "version": "2.5.3"
    },
    {
      "bom-ref": "starlette==1.0.0",
      "description": "The little ASGI library that shines.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://starlette.dev/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/Kludex/starlette"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/Kludex"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://starlette.dev/release-notes/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/Kludex/starlette"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "starlette",
      "purl": "pkg:pypi/starlette@1.0.0",
      "type": "library",
      "version": "1.0.0"
    },
    {
      "bom-ref": "svglib==1.6.0",
      "description": "A pure-Python library for reading and converting SVG",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/deeplook/svglib"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "LGPL-3.0-or-later"
          }
        }
      ],
      "name": "svglib",
      "purl": "pkg:pypi/svglib@1.6.0",
      "type": "library",
      "version": "1.6.0"
    },
    {
      "bom-ref": "tenacity==9.1.4",
      "description": "Retry code until it succeeds",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/jd/tenacity"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "tenacity",
      "purl": "pkg:pypi/tenacity@9.1.4",
      "type": "library",
      "version": "9.1.4"
    },
    {
      "bom-ref": "thinc==8.3.13",
      "description": "A refreshing functional take on deep learning, compatible with your favorite libraries",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/thinc"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "thinc",
      "purl": "pkg:pypi/thinc@8.3.13",
      "type": "library",
      "version": "8.3.13"
    },
    {
      "bom-ref": "tiktoken==0.12.0",
      "description": "tiktoken is a fast BPE tokeniser for use with OpenAI's models",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: changelog",
          "type": "release-notes",
          "url": "https://github.com/openai/tiktoken/blob/main/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/openai/tiktoken"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/openai/tiktoken"
        }
      ],
      "name": "tiktoken",
      "purl": "pkg:pypi/tiktoken@0.12.0",
      "type": "library",
      "version": "0.12.0"
    },
    {
      "bom-ref": "tinycss2==1.5.1",
      "description": "A tiny CSS parser",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://doc.courtbouillon.org/tinycss2/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/Kozea/tinycss2/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Code",
          "type": "other",
          "url": "https://github.com/Kozea/tinycss2/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donation",
          "type": "other",
          "url": "https://opencollective.com/courtbouillon"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/Kozea/tinycss2/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://www.courtbouillon.org/tinycss2"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "tinycss2",
      "purl": "pkg:pypi/tinycss2@1.5.1",
      "type": "library",
      "version": "1.5.1"
    },
    {
      "bom-ref": "tinyhtml5==2.1.0",
      "description": "HTML parser based on the WHATWG HTML specification",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://doc.courtbouillon.org/tinyhtml5/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/CourtBouillon/tinyhtml5/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Code",
          "type": "other",
          "url": "https://github.com/CourtBouillon/tinyhtml5"
        },
        {
          "comment": "from packaging metadata Project-URL: Donation",
          "type": "other",
          "url": "https://opencollective.com/courtbouillon"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/CourtBouillon/tinyhtml5/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/CourtBouillon/tinyhtml5"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "tinyhtml5",
      "purl": "pkg:pypi/tinyhtml5@2.1.0",
      "type": "library",
      "version": "2.1.0"
    },
    {
      "bom-ref": "tldextract==5.3.1",
      "description": "Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL). By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/john-kurkowski/tldextract"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "tldextract",
      "purl": "pkg:pypi/tldextract@5.3.1",
      "type": "library",
      "version": "5.3.1"
    },
    {
      "bom-ref": "tqdm==4.67.3",
      "description": "Fast, Extensible Progress Meter",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: wiki",
          "type": "other",
          "url": "https://github.com/tqdm/tqdm/wiki"
        },
        {
          "comment": "from packaging metadata Project-URL: changelog",
          "type": "release-notes",
          "url": "https://tqdm.github.io/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/tqdm/tqdm"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://tqdm.github.io"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "MPL-2.0 AND MIT"
        }
      ],
      "name": "tqdm",
      "purl": "pkg:pypi/tqdm@4.67.3",
      "type": "library",
      "version": "4.67.3"
    },
    {
      "bom-ref": "typer==0.25.1",
      "description": "Typer, build great CLIs. Easy to code. Based on Python type hints.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://typer.tiangolo.com"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/fastapi/typer/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://typer.tiangolo.com/release-notes/"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/fastapi/typer"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/fastapi/typer"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "typer",
      "purl": "pkg:pypi/typer@0.25.1",
      "type": "library",
      "version": "0.25.1"
    },
    {
      "bom-ref": "typing-inspection==0.4.2",
      "description": "Runtime typing introspection tools",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pydantic.github.io/typing-inspection/dev/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/typing-inspection"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/pydantic/typing-inspection/blob/main/HISTORY.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic/typing-inspection"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "typing-inspection",
      "purl": "pkg:pypi/typing-inspection@0.4.2",
      "type": "library",
      "version": "0.4.2"
    },
    {
      "bom-ref": "typing_extensions==4.15.0",
      "description": "Backported and Experimental Type Hints for Python 3.9+",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://typing-extensions.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/python/typing_extensions/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Q & A",
          "type": "other",
          "url": "https://github.com/python/typing/discussions"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://github.com/python/typing_extensions/blob/main/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/python/typing_extensions"
        },
        {
          "comment": "from packaging metadata Project-URL: Home",
          "type": "website",
          "url": "https://github.com/python/typing_extensions"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "PSF-2.0"
          }
        }
      ],
      "name": "typing_extensions",
      "purl": "pkg:pypi/typing-extensions@4.15.0",
      "type": "library",
      "version": "4.15.0"
    },
    {
      "bom-ref": "tzlocal==5.3.1",
      "description": "tzinfo object for the local timezone",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Issue tracker",
          "type": "issue-tracker",
          "url": "https://github.com/regebro/tzlocal/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source code",
          "type": "other",
          "url": "https://github.com/regebro/tzlocal"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/regebro/tzlocal/blob/master/CHANGES.txt"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "tzlocal",
      "purl": "pkg:pypi/tzlocal@5.3.1",
      "type": "library",
      "version": "5.3.1"
    },
    {
      "bom-ref": "uritools==6.1.0",
      "description": "URI parsing, classification and composition",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://uritools.readthedocs.io/en/stable/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/tkem/uritools/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/tkem/uritools/"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/tkem/uritools/blob/master/CHANGELOG.rst"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/tkem/uritools/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/tkem/uritools/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "uritools",
      "purl": "pkg:pypi/uritools@6.1.0",
      "type": "library",
      "version": "6.1.0"
    },
    {
      "bom-ref": "urllib3==2.6.3",
      "description": "HTTP library with thread-safe connection pooling, file post, and more.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://urllib3.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Issue tracker",
          "type": "issue-tracker",
          "url": "https://github.com/urllib3/urllib3/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Code",
          "type": "other",
          "url": "https://github.com/urllib3/urllib3"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/urllib3/urllib3/blob/main/CHANGES.rst"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "urllib3",
      "purl": "pkg:pypi/urllib3@2.6.3",
      "type": "library",
      "version": "2.6.3"
    },
    {
      "bom-ref": "uvicorn==0.46.0",
      "description": "The lightning-fast ASGI server.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/Kludex/uvicorn"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/encode"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://uvicorn.dev/release-notes"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://uvicorn.dev/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "uvicorn",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "standard"
        }
      ],
      "purl": "pkg:pypi/uvicorn@0.46.0",
      "type": "library",
      "version": "0.46.0"
    },
    {
      "bom-ref": "uvloop==0.22.1",
      "description": "Fast implementation of asyncio event loop on top of libuv",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: github",
          "type": "vcs",
          "url": "https://github.com/MagicStack/uvloop"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "uvloop",
      "purl": "pkg:pypi/uvloop@0.22.1",
      "type": "library",
      "version": "0.22.1"
    },
    {
      "bom-ref": "wasabi==1.1.3",
      "description": "A lightweight console printing and formatting toolkit",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/wasabi"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "wasabi",
      "purl": "pkg:pypi/wasabi@1.1.3",
      "type": "library",
      "version": "1.1.3"
    },
    {
      "bom-ref": "watchfiles==1.1.1",
      "description": "Simple, modern and high performance file watching and code reload in python.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://watchfiles.helpmanual.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/samuelcolvin/watchfiles"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/samuelcolvin"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/samuelcolvin/watchfiles/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/samuelcolvin/watchfiles"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/samuelcolvin/watchfiles"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "watchfiles",
      "purl": "pkg:pypi/watchfiles@1.1.1",
      "type": "library",
      "version": "1.1.1"
    },
    {
      "bom-ref": "weasel==1.0.0",
      "description": "Weasel: A small and easy workflow system",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/explosion/weasel/"
        },
        {
          "comment": "from packaging metadata Project-URL: Release notes",
          "type": "other",
          "url": "https://github.com/explosion/weasel/releases"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/explosion/weasel/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "weasel",
      "purl": "pkg:pypi/weasel@1.0.0",
      "type": "library",
      "version": "1.0.0"
    },
    {
      "bom-ref": "weasyprint==68.1",
      "description": "The Awesome Document Factory",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://doc.courtbouillon.org/weasyprint/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/Kozea/WeasyPrint/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Code",
          "type": "other",
          "url": "https://github.com/Kozea/WeasyPrint"
        },
        {
          "comment": "from packaging metadata Project-URL: Donation",
          "type": "other",
          "url": "https://opencollective.com/courtbouillon"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/Kozea/WeasyPrint/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://weasyprint.org/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "weasyprint",
      "purl": "pkg:pypi/weasyprint@68.1",
      "type": "library",
      "version": "68.1"
    },
    {
      "bom-ref": "webencodings==0.5.1",
      "description": "Character encoding aliases for legacy web content",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/SimonSapin/python-webencodings"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "webencodings",
      "purl": "pkg:pypi/webencodings@0.5.1",
      "type": "library",
      "version": "0.5.1"
    },
    {
      "bom-ref": "websocket-client==1.9.0",
      "description": "WebSocket client for Python with low level API options",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Download-URL",
          "type": "distribution",
          "url": "https://github.com/websocket-client/websocket-client/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://websocket-client.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/websocket-client/websocket-client/"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/websocket-client/websocket-client.git"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "websocket-client",
      "purl": "pkg:pypi/websocket-client@1.9.0",
      "type": "library",
      "version": "1.9.0"
    },
    {
      "bom-ref": "websockets==16.0",
      "description": "An implementation of the WebSocket Protocol (RFC 6455 & 7692)",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://websockets.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/python-websockets/websockets/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://tidelift.com/subscription/pkg/pypi-websockets?utm_source=pypi-websockets&utm_medium=referral&utm_campaign=readme"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://websockets.readthedocs.io/en/stable/project/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/python-websockets/websockets"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "websockets",
      "purl": "pkg:pypi/websockets@16.0",
      "type": "library",
      "version": "16.0"
    },
    {
      "bom-ref": "wrapt==2.1.2",
      "description": "Module for decorators, wrappers and monkey patching.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://wrapt.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/GrahamDumpleton/wrapt/issues/"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://wrapt.readthedocs.io/en/latest/changes.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/GrahamDumpleton/wrapt"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-2-Clause"
          }
        }
      ],
      "name": "wrapt",
      "purl": "pkg:pypi/wrapt@2.1.2",
      "type": "library",
      "version": "2.1.2"
    },
    {
      "bom-ref": "wsproto==1.3.2",
      "description": "Pure-Python WebSocket protocol implementation",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://python-hyper.org/"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Reports",
          "type": "issue-tracker",
          "url": "https://github.com/python-hyper/wsproto/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/python-hyper/wsproto/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/python-hyper/wsproto/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "wsproto",
      "purl": "pkg:pypi/wsproto@1.3.2",
      "type": "library",
      "version": "1.3.2"
    },
    {
      "bom-ref": "xhtml2pdf==0.2.17",
      "description": "PDF generator using HTML and CSS",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://xhtml2pdf.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug tracker",
          "type": "issue-tracker",
          "url": "https://github.com/xhtml2pdf/xhtml2pdf/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://xhtml2pdf.readthedocs.io/en/latest/release-notes.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/xhtml2pdf/xhtml2pdf"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "xhtml2pdf",
      "purl": "pkg:pypi/xhtml2pdf@0.2.17",
      "type": "library",
      "version": "0.2.17"
    },
    {
      "bom-ref": "xmltodict==1.0.4",
      "description": "Makes working with XML feel like you are working with JSON",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/martinblech/xmltodict"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "xmltodict",
      "purl": "pkg:pypi/xmltodict@1.0.4",
      "type": "library",
      "version": "1.0.4"
    },
    {
      "bom-ref": "yarl==1.23.0",
      "description": "Yet another URL library",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Coverage: codecov",
          "type": "other",
          "url": "https://codecov.io/github/aio-libs/yarl"
        },
        {
          "comment": "from packaging metadata Project-URL: Code of Conduct",
          "type": "other",
          "url": "https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: repo",
          "type": "other",
          "url": "https://github.com/aio-libs/yarl"
        },
        {
          "comment": "from packaging metadata Project-URL: CI: GitHub Workflows",
          "type": "other",
          "url": "https://github.com/aio-libs/yarl/actions?query=branch:master"
        },
        {
          "comment": "from packaging metadata Project-URL: GitHub: issues",
          "type": "other",
          "url": "https://github.com/aio-libs/yarl/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: RTD",
          "type": "other",
          "url": "https://yarl.aio-libs.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Docs: Changelog",
          "type": "other",
          "url": "https://yarl.aio-libs.org/en/latest/changes/"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/aio-libs/yarl"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "yarl",
      "purl": "pkg:pypi/yarl@1.23.0",
      "type": "library",
      "version": "1.23.0"
    },
    {
      "bom-ref": "zope.event==6.2",
      "description": "Very basic event publishing system",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://zopeevent.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/zopefoundation/zope.event/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/zopefoundation/zope.event"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://raw.githubusercontent.com/zopefoundation/zope.event/master/CHANGES.rst"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "ZPL-2.1"
          }
        }
      ],
      "name": "zope.event",
      "purl": "pkg:pypi/zope.event@6.2",
      "type": "library",
      "version": "6.2"
    },
    {
      "bom-ref": "zope.interface==8.4",
      "description": "Interfaces for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://zopeinterface.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/zopefoundation/zope.interface/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/zopefoundation/zope.interface"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/zopefoundation/zope.interface/blob/master/CHANGES.rst"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "ZPL-2.1"
          }
        }
      ],
      "name": "zope.interface",
      "purl": "pkg:pypi/zope.interface@8.4",
      "type": "library",
      "version": "8.4"
    },
    {
      "bom-ref": "zopfli==0.4.1",
      "description": "Zopfli module for python",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/fonttools/py-zopfli"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "zopfli",
      "purl": "pkg:pypi/zopfli@0.4.1",
      "type": "library",
      "version": "0.4.1"
    }
  ],
  "dependencies": [
    {
      "dependsOn": [
        "PyYAML==6.0.3",
        "pytest-cov==7.1.0",
        "pytest==9.0.3"
      ],
      "ref": "ConfigArgParse==1.7.5"
    },
    {
      "dependsOn": [
        "Flask==3.1.3",
        "Werkzeug==3.1.8"
      ],
      "ref": "Flask-Login==0.6.3"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6",
        "MarkupSafe==3.0.3",
        "Werkzeug==3.1.8",
        "blinker==1.9.0",
        "click==8.3.3",
        "itsdangerous==2.2.0",
        "python-dotenv==1.2.2"
      ],
      "ref": "Flask==3.1.3"
    },
    {
      "dependsOn": [
        "MarkupSafe==3.0.3"
      ],
      "ref": "Jinja2==3.1.6"
    },
    {
      "ref": "MarkupSafe==3.0.3"
    },
    {
      "dependsOn": [
        "coverage==7.13.5",
        "cryptography==47.0.0",
        "pytest==9.0.3",
        "typing_extensions==4.15.0",
        "zope.interface==8.4"
      ],
      "ref": "PyJWT==2.12.1"
    },
    {
      "ref": "PyYAML==6.0.3"
    },
    {
      "ref": "Pygments==2.20.0"
    },
    {
      "dependsOn": [
        "MarkupSafe==3.0.3"
      ],
      "ref": "Werkzeug==3.1.8"
    },
    {
      "ref": "aiofiles==25.1.0"
    },
    {
      "ref": "aiohappyeyeballs==2.6.1"
    },
    {
      "dependsOn": [
        "aiohappyeyeballs==2.6.1",
        "aiosignal==1.4.0",
        "attrs==26.1.0",
        "brotli==1.2.0",
        "frozenlist==1.8.0",
        "multidict==6.7.1",
        "propcache==0.4.1",
        "yarl==1.23.0"
      ],
      "ref": "aiohttp==3.13.5"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "packaging==26.2"
      ],
      "ref": "aioresponses==0.7.8"
    },
    {
      "dependsOn": [
        "frozenlist==1.8.0",
        "typing_extensions==4.15.0"
      ],
      "ref": "aiosignal==1.4.0"
    },
    {
      "dependsOn": [
        "coverage==7.13.5"
      ],
      "ref": "aiosqlite==0.22.1"
    },
    {
      "ref": "annotated-doc==0.0.4"
    },
    {
      "dependsOn": [
        "typing_extensions==4.15.0"
      ],
      "ref": "annotated-types==0.7.0"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "anyio==4.13.0",
        "distro==1.9.0",
        "docstring_parser==0.18.0",
        "google-auth==2.50.0",
        "httpx==0.28.1",
        "jiter==0.14.0",
        "pydantic==2.13.3",
        "sniffio==1.3.1",
        "typing_extensions==4.15.0"
      ],
      "ref": "anthropic==0.97.0"
    },
    {
      "dependsOn": [
        "idna==3.13",
        "typing_extensions==4.15.0"
      ],
      "ref": "anyio==4.13.0"
    },
    {
      "dependsOn": [
        "fonttools==4.62.1"
      ],
      "ref": "arabic-reshaper==3.0.1"
    },
    {
      "ref": "asn1crypto==1.5.1"
    },
    {
      "ref": "attrs==26.1.0"
    },
    {
      "dependsOn": [
        "pytest==9.0.3"
      ],
      "ref": "bcrypt==5.0.0"
    },
    {
      "ref": "bidict==0.23.1"
    },
    {
      "ref": "blinker==1.9.0"
    },
    {
      "dependsOn": [
        "numpy==2.4.4"
      ],
      "ref": "blis==1.3.3"
    },
    {
      "ref": "brotli==1.2.0"
    },
    {
      "dependsOn": [
        "typing_extensions==4.15.0"
      ],
      "ref": "catalogue==2.0.10"
    },
    {
      "ref": "certifi==2026.4.22"
    },
    {
      "dependsOn": [
        "pycparser==3.0"
      ],
      "ref": "cffi==2.0.0"
    },
    {
      "ref": "charset-normalizer==3.4.7"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6",
        "PyJWT==2.12.1",
        "aiofiles==25.1.0",
        "aiohttp==3.13.5",
        "aioresponses==0.7.8",
        "aiosqlite==0.22.1",
        "anthropic==0.97.0",
        "bcrypt==5.0.0",
        "cryptography==47.0.0",
        "defusedxml==0.7.1",
        "dpkt==1.9.8",
        "evtx==0.11.0",
        "fastapi==0.136.1",
        "geopy==2.4.1",
        "google-genai==1.74.0",
        "httpx==0.28.1",
        "ldap3==2.9.1",
        "matplotlib==3.10.9",
        "networkx==3.6.1",
        "ollama==0.6.2",
        "openai==2.33.0",
        "presidio_analyzer==2.2.362",
        "pydantic-settings==2.14.0",
        "pydantic==2.13.3",
        "python-docx==1.2.0",
        "python-dotenv==1.2.2",
        "python-multipart==0.0.27",
        "pywinrm==0.5.0",
        "reportlab==4.5.0",
        "rich==15.0.0",
        "smbprotocol==1.16.1",
        "tiktoken==0.12.0",
        "typer==0.25.1",
        "uvicorn==0.46.0",
        "weasyprint==68.1",
        "websockets==16.0",
        "xhtml2pdf==0.2.17"
      ],
      "ref": "cicada==1.77.4"
    },
    {
      "ref": "click==8.3.3"
    },
    {
      "dependsOn": [
        "typing_extensions==4.15.0"
      ],
      "ref": "cloudpathlib==0.24.0"
    },
    {
      "dependsOn": [
        "typing_extensions==4.15.0"
      ],
      "ref": "confection==1.3.3"
    },
    {
      "dependsOn": [
        "matplotlib==3.10.9",
        "numpy==2.4.4",
        "pillow==12.2.0",
        "pytest-cov==7.1.0",
        "pytest==9.0.3"
      ],
      "ref": "contourpy==1.3.3"
    },
    {
      "ref": "coverage==7.13.5"
    },
    {
      "dependsOn": [
        "bcrypt==5.0.0",
        "cffi==2.0.0",
        "typing_extensions==4.15.0"
      ],
      "ref": "cryptography==47.0.0"
    },
    {
      "dependsOn": [
        "pytest==9.0.3",
        "ruff==0.15.12",
        "tinycss2==1.5.1",
        "webencodings==0.5.1"
      ],
      "ref": "cssselect2==0.9.0"
    },
    {
      "dependsOn": [
        "matplotlib==3.10.9",
        "pytest-cov==7.1.0",
        "pytest==9.0.3"
      ],
      "ref": "cycler==0.12.1"
    },
    {
      "ref": "cymem==2.0.13"
    },
    {
      "ref": "defusedxml==0.7.1"
    },
    {
      "ref": "distro==1.9.0"
    },
    {
      "dependsOn": [
        "pytest==9.0.3"
      ],
      "ref": "docstring_parser==0.18.0"
    },
    {
      "ref": "dpkt==1.9.8"
    },
    {
      "dependsOn": [
        "pytest==9.0.3"
      ],
      "ref": "evtx==0.11.0"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6",
        "PyYAML==6.0.3",
        "annotated-doc==0.0.4",
        "httpx==0.28.1",
        "itsdangerous==2.2.0",
        "pydantic-settings==2.14.0",
        "pydantic==2.13.3",
        "python-multipart==0.0.27",
        "starlette==1.0.0",
        "typing-inspection==0.4.2",
        "typing_extensions==4.15.0",
        "uvicorn==0.46.0"
      ],
      "ref": "fastapi==0.136.1"
    },
    {
      "ref": "filelock==3.29.0"
    },
    {
      "dependsOn": [
        "Flask==3.1.3",
        "Werkzeug==3.1.8"
      ],
      "ref": "flask-cors==6.0.2"
    },
    {
      "dependsOn": [
        "brotli==1.2.0",
        "lxml==6.1.0",
        "matplotlib==3.10.9",
        "pycairo==1.29.0",
        "zopfli==0.4.1"
      ],
      "ref": "fonttools==4.62.1"
    },
    {
      "ref": "freetype-py==2.5.1"
    },
    {
      "ref": "frozenlist==1.8.0"
    },
    {
      "ref": "geographiclib==2.1"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "coverage==7.13.5",
        "geographiclib==2.1",
        "pytest-asyncio==1.3.0",
        "pytest==9.0.3",
        "requests==2.33.1",
        "urllib3==2.6.3"
      ],
      "ref": "geopy==2.4.1"
    },
    {
      "dependsOn": [
        "cffi==2.0.0",
        "coverage==7.13.5",
        "greenlet==3.5.0",
        "idna==3.13",
        "psutil==7.2.2",
        "requests==2.33.1",
        "zope.event==6.2",
        "zope.interface==8.4"
      ],
      "ref": "gevent==25.9.1"
    },
    {
      "dependsOn": [
        "brotli==1.2.0",
        "certifi==2026.4.22",
        "dpkt==1.9.8",
        "gevent==25.9.1",
        "httpx==0.28.1",
        "pytest==9.0.3",
        "requests==2.33.1",
        "urllib3==2.6.3"
      ],
      "ref": "geventhttpclient==2.3.9"
    },
    {
      "dependsOn": [
        "Flask==3.1.3",
        "PyJWT==2.12.1",
        "aiohttp==3.13.5",
        "aioresponses==0.7.8",
        "cryptography==47.0.0",
        "packaging==26.2",
        "pyasn1_modules==0.4.2",
        "pytest-asyncio==1.3.0",
        "pytest-cov==7.1.0",
        "pytest==9.0.3",
        "requests==2.33.1",
        "urllib3==2.6.3"
      ],
      "ref": "google-auth==2.50.0"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "anyio==4.13.0",
        "distro==1.9.0",
        "google-auth==2.50.0",
        "httpx==0.28.1",
        "pydantic==2.13.3",
        "requests==2.33.1",
        "sniffio==1.3.1",
        "tenacity==9.1.4",
        "typing_extensions==4.15.0",
        "websockets==16.0"
      ],
      "ref": "google-genai==1.74.0"
    },
    {
      "dependsOn": [
        "psutil==7.2.2",
        "setuptools==82.0.1"
      ],
      "ref": "greenlet==3.5.0"
    },
    {
      "ref": "h11==0.16.0"
    },
    {
      "dependsOn": [
        "lxml==6.1.0",
        "six==1.17.0",
        "webencodings==0.5.1"
      ],
      "ref": "html5lib==1.1"
    },
    {
      "dependsOn": [
        "anyio==4.13.0",
        "certifi==2026.4.22",
        "h11==0.16.0"
      ],
      "ref": "httpcore==1.0.9"
    },
    {
      "ref": "httptools==0.7.1"
    },
    {
      "dependsOn": [
        "Pygments==2.20.0",
        "anyio==4.13.0",
        "brotli==1.2.0",
        "certifi==2026.4.22",
        "click==8.3.3",
        "httpcore==1.0.9",
        "idna==3.13",
        "rich==15.0.0"
      ],
      "ref": "httpx==0.28.1"
    },
    {
      "dependsOn": [
        "pytest==9.0.3",
        "ruff==0.15.12"
      ],
      "ref": "idna==3.13"
    },
    {
      "ref": "iniconfig==2.3.0"
    },
    {
      "ref": "itsdangerous==2.2.0"
    },
    {
      "ref": "jiter==0.14.0"
    },
    {
      "ref": "kiwisolver==1.5.0"
    },
    {
      "dependsOn": [
        "pyasn1==0.6.3"
      ],
      "ref": "ldap3==2.9.1"
    },
    {
      "dependsOn": [
        "ConfigArgParse==1.7.5",
        "Flask-Login==0.6.3",
        "Flask==3.1.3",
        "Werkzeug==3.1.8",
        "flask-cors==6.0.2",
        "gevent==25.9.1",
        "geventhttpclient==2.3.9",
        "msgpack==1.1.2",
        "psutil==7.2.2",
        "pytest==9.0.3",
        "python-engineio==4.13.1",
        "python-socketio==5.16.1",
        "pyzmq==27.1.0",
        "requests==2.33.1",
        "typing_extensions==4.15.0"
      ],
      "ref": "locust==2.43.4"
    },
    {
      "dependsOn": [
        "html5lib==1.1"
      ],
      "ref": "lxml==6.1.0"
    },
    {
      "dependsOn": [
        "PyYAML==6.0.3",
        "coverage==7.13.5",
        "mdurl==0.1.2",
        "psutil==7.2.2",
        "pytest-cov==7.1.0",
        "pytest==9.0.3",
        "requests==2.33.1"
      ],
      "ref": "markdown-it-py==4.0.0"
    },
    {
      "dependsOn": [
        "contourpy==1.3.3",
        "cycler==0.12.1",
        "fonttools==4.62.1",
        "kiwisolver==1.5.0",
        "numpy==2.4.4",
        "packaging==26.2",
        "pillow==12.2.0",
        "pyparsing==3.3.2",
        "python-dateutil==2.9.0.post0",
        "setuptools==82.0.1"
      ],
      "ref": "matplotlib==3.10.9"
    },
    {
      "ref": "mdurl==0.1.2"
    },
    {
      "ref": "msgpack==1.1.2"
    },
    {
      "dependsOn": [
        "typing_extensions==4.15.0"
      ],
      "ref": "multidict==6.7.1"
    },
    {
      "ref": "murmurhash==1.0.15"
    },
    {
      "dependsOn": [
        "lxml==6.1.0",
        "matplotlib==3.10.9",
        "numpy==2.4.4",
        "pillow==12.2.0",
        "pytest-cov==7.1.0",
        "pytest==9.0.3"
      ],
      "ref": "networkx==3.6.1"
    },
    {
      "ref": "numpy==2.4.4"
    },
    {
      "dependsOn": [
        "httpx==0.28.1",
        "pydantic==2.13.3"
      ],
      "ref": "ollama==0.6.2"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "anyio==4.13.0",
        "distro==1.9.0",
        "httpx==0.28.1",
        "jiter==0.14.0",
        "numpy==2.4.4",
        "pydantic==2.13.3",
        "sniffio==1.3.1",
        "tqdm==4.67.3",
        "typing_extensions==4.15.0",
        "websockets==16.0"
      ],
      "ref": "openai==2.33.0"
    },
    {
      "dependsOn": [
        "asn1crypto==1.5.1"
      ],
      "ref": "oscrypto==1.3.0"
    },
    {
      "ref": "packaging==26.2"
    },
    {
      "ref": "phonenumbers==9.0.29"
    },
    {
      "dependsOn": [
        "coverage==7.13.5",
        "defusedxml==0.7.1",
        "packaging==26.2",
        "pytest-cov==7.1.0",
        "pytest-timeout==2.4.0",
        "pytest==9.0.3"
      ],
      "ref": "pillow==12.2.0"
    },
    {
      "dependsOn": [
        "coverage==7.13.5",
        "pytest==9.0.3"
      ],
      "ref": "pluggy==1.6.0"
    },
    {
      "dependsOn": [
        "cymem==2.0.13",
        "murmurhash==1.0.15"
      ],
      "ref": "preshed==3.0.13"
    },
    {
      "dependsOn": [
        "Flask==3.1.3",
        "Jinja2==3.1.6",
        "PyYAML==6.0.3",
        "openai==2.33.0",
        "phonenumbers==9.0.29",
        "pydantic==2.13.3",
        "regex==2026.4.4",
        "spacy==3.8.14",
        "tldextract==5.3.1"
      ],
      "ref": "presidio_analyzer==2.2.362"
    },
    {
      "ref": "propcache==0.4.1"
    },
    {
      "dependsOn": [
        "coverage==7.13.5",
        "packaging==26.2",
        "pytest-cov==7.1.0",
        "pytest==9.0.3",
        "requests==2.33.1",
        "ruff==0.15.12",
        "setuptools==82.0.1"
      ],
      "ref": "psutil==7.2.2"
    },
    {
      "dependsOn": [
        "PyYAML==6.0.3",
        "aiohttp==3.13.5",
        "asn1crypto==1.5.1",
        "cryptography==47.0.0",
        "fonttools==4.62.1",
        "lxml==6.1.0",
        "pillow==12.2.0",
        "pyhanko-certvalidator==0.30.2",
        "requests==2.33.1",
        "tzlocal==5.3.1"
      ],
      "ref": "pyHanko==0.34.1"
    },
    {
      "ref": "pyasn1==0.6.3"
    },
    {
      "dependsOn": [
        "pyasn1==0.6.3"
      ],
      "ref": "pyasn1_modules==0.4.2"
    },
    {
      "ref": "pycairo==1.29.0"
    },
    {
      "ref": "pycparser==3.0"
    },
    {
      "dependsOn": [
        "PyYAML==6.0.3",
        "pydantic==2.13.3",
        "python-dotenv==1.2.2",
        "typing-inspection==0.4.2"
      ],
      "ref": "pydantic-settings==2.14.0"
    },
    {
      "dependsOn": [
        "annotated-types==0.7.0",
        "pydantic_core==2.46.3",
        "typing-inspection==0.4.2",
        "typing_extensions==4.15.0"
      ],
      "ref": "pydantic==2.13.3"
    },
    {
      "dependsOn": [
        "typing_extensions==4.15.0"
      ],
      "ref": "pydantic_core==2.46.3"
    },
    {
      "dependsOn": [
        "pillow==12.2.0",
        "pytest==9.0.3",
        "ruff==0.15.12"
      ],
      "ref": "pydyf==0.12.1"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "asn1crypto==1.5.1",
        "cryptography==47.0.0",
        "oscrypto==1.3.0",
        "requests==2.33.1",
        "uritools==6.1.0"
      ],
      "ref": "pyhanko-certvalidator==0.30.2"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6"
      ],
      "ref": "pyparsing==3.3.2"
    },
    {
      "dependsOn": [
        "cryptography==47.0.0",
        "pillow==12.2.0",
        "pytest-cov==7.1.0",
        "pytest-timeout==2.4.0",
        "typing_extensions==4.15.0"
      ],
      "ref": "pypdf==6.10.2"
    },
    {
      "dependsOn": [
        "pytest==9.0.3",
        "ruff==0.15.12"
      ],
      "ref": "pyphen==0.17.2"
    },
    {
      "dependsOn": [
        "cryptography==47.0.0"
      ],
      "ref": "pyspnego==0.12.1"
    },
    {
      "dependsOn": [
        "coverage==7.13.5",
        "pytest==9.0.3",
        "typing_extensions==4.15.0"
      ],
      "ref": "pytest-asyncio==1.3.0"
    },
    {
      "dependsOn": [
        "coverage==7.13.5",
        "pluggy==1.6.0",
        "pytest==9.0.3"
      ],
      "ref": "pytest-cov==7.1.0"
    },
    {
      "dependsOn": [
        "pytest==9.0.3"
      ],
      "ref": "pytest-timeout==2.4.0"
    },
    {
      "dependsOn": [
        "Pygments==2.20.0",
        "attrs==26.1.0",
        "iniconfig==2.3.0",
        "packaging==26.2",
        "pluggy==1.6.0",
        "requests==2.33.1",
        "setuptools==82.0.1"
      ],
      "ref": "pytest==9.0.3"
    },
    {
      "dependsOn": [
        "pytest==9.0.3"
      ],
      "ref": "python-bidi==0.6.7"
    },
    {
      "dependsOn": [
        "six==1.17.0"
      ],
      "ref": "python-dateutil==2.9.0.post0"
    },
    {
      "dependsOn": [
        "lxml==6.1.0",
        "typing_extensions==4.15.0"
      ],
      "ref": "python-docx==1.2.0"
    },
    {
      "dependsOn": [
        "click==8.3.3"
      ],
      "ref": "python-dotenv==1.2.2"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "requests==2.33.1",
        "simple-websocket==1.1.0",
        "websocket-client==1.9.0"
      ],
      "ref": "python-engineio==4.13.1"
    },
    {
      "ref": "python-multipart==0.0.27"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "bidict==0.23.1",
        "python-engineio==4.13.1",
        "requests==2.33.1",
        "websocket-client==1.9.0"
      ],
      "ref": "python-socketio==5.16.1"
    },
    {
      "dependsOn": [
        "requests==2.33.1",
        "requests_ntlm==1.3.0",
        "xmltodict==1.0.4"
      ],
      "ref": "pywinrm==0.5.0"
    },
    {
      "dependsOn": [
        "cffi==2.0.0"
      ],
      "ref": "pyzmq==27.1.0"
    },
    {
      "ref": "regex==2026.4.4"
    },
    {
      "dependsOn": [
        "charset-normalizer==3.4.7",
        "freetype-py==2.5.1",
        "pillow==12.2.0",
        "rlPyCairo==0.4.0"
      ],
      "ref": "reportlab==4.5.0"
    },
    {
      "dependsOn": [
        "requests==2.33.1"
      ],
      "ref": "requests-file==3.0.1"
    },
    {
      "dependsOn": [
        "certifi==2026.4.22",
        "charset-normalizer==3.4.7",
        "idna==3.13",
        "urllib3==2.6.3"
      ],
      "ref": "requests==2.33.1"
    },
    {
      "dependsOn": [
        "cryptography==47.0.0",
        "pyspnego==0.12.1",
        "requests==2.33.1"
      ],
      "ref": "requests_ntlm==1.3.0"
    },
    {
      "dependsOn": [
        "Pygments==2.20.0",
        "markdown-it-py==4.0.0"
      ],
      "ref": "rich==15.0.0"
    },
    {
      "dependsOn": [
        "freetype-py==2.5.1",
        "pycairo==1.29.0"
      ],
      "ref": "rlPyCairo==0.4.0"
    },
    {
      "ref": "ruff==0.15.12"
    },
    {
      "dependsOn": [
        "filelock==3.29.0",
        "packaging==26.2",
        "pytest-cov==7.1.0",
        "pytest-timeout==2.4.0",
        "pytest==9.0.3",
        "ruff==0.15.12"
      ],
      "ref": "setuptools==82.0.1"
    },
    {
      "ref": "shellingham==1.5.4"
    },
    {
      "dependsOn": [
        "pytest-cov==7.1.0",
        "pytest==9.0.3",
        "wsproto==1.3.2"
      ],
      "ref": "simple-websocket==1.1.0"
    },
    {
      "ref": "six==1.17.0"
    },
    {
      "dependsOn": [
        "numpy==2.4.4",
        "pytest-timeout==2.4.0",
        "pytest==9.0.3",
        "requests==2.33.1",
        "wrapt==2.1.2"
      ],
      "ref": "smart_open==7.6.0"
    },
    {
      "dependsOn": [
        "cryptography==47.0.0",
        "pyspnego==0.12.1"
      ],
      "ref": "smbprotocol==1.16.1"
    },
    {
      "ref": "sniffio==1.3.1"
    },
    {
      "ref": "spacy-legacy==3.0.12"
    },
    {
      "ref": "spacy-loggers==1.0.5"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6",
        "catalogue==2.0.10",
        "confection==1.3.3",
        "cymem==2.0.13",
        "murmurhash==1.0.15",
        "numpy==2.4.4",
        "packaging==26.2",
        "preshed==3.0.13",
        "pydantic==2.13.3",
        "requests==2.33.1",
        "setuptools==82.0.1",
        "spacy-legacy==3.0.12",
        "spacy-loggers==1.0.5",
        "srsly==2.5.3",
        "thinc==8.3.13",
        "tqdm==4.67.3",
        "typer==0.25.1",
        "wasabi==1.1.3",
        "weasel==1.0.0"
      ],
      "ref": "spacy==3.8.14"
    },
    {
      "dependsOn": [
        "catalogue==2.0.10"
      ],
      "ref": "srsly==2.5.3"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6",
        "PyYAML==6.0.3",
        "anyio==4.13.0",
        "httpx==0.28.1",
        "itsdangerous==2.2.0",
        "python-multipart==0.0.27",
        "typing_extensions==4.15.0"
      ],
      "ref": "starlette==1.0.0"
    },
    {
      "dependsOn": [
        "cssselect2==0.9.0",
        "lxml==6.1.0",
        "pytest-cov==7.1.0",
        "pytest==9.0.3",
        "reportlab==4.5.0",
        "rlPyCairo==0.4.0",
        "ruff==0.15.12",
        "tinycss2==1.5.1"
      ],
      "ref": "svglib==1.6.0"
    },
    {
      "dependsOn": [
        "pytest==9.0.3"
      ],
      "ref": "tenacity==9.1.4"
    },
    {
      "dependsOn": [
        "blis==1.3.3",
        "catalogue==2.0.10",
        "confection==1.3.3",
        "cymem==2.0.13",
        "murmurhash==1.0.15",
        "numpy==2.4.4",
        "packaging==26.2",
        "preshed==3.0.13",
        "pydantic==2.13.3",
        "setuptools==82.0.1",
        "srsly==2.5.3",
        "wasabi==1.1.3"
      ],
      "ref": "thinc==8.3.13"
    },
    {
      "dependsOn": [
        "regex==2026.4.4",
        "requests==2.33.1"
      ],
      "ref": "tiktoken==0.12.0"
    },
    {
      "dependsOn": [
        "pytest==9.0.3",
        "ruff==0.15.12",
        "webencodings==0.5.1"
      ],
      "ref": "tinycss2==1.5.1"
    },
    {
      "dependsOn": [
        "pytest==9.0.3",
        "ruff==0.15.12",
        "webencodings==0.5.1"
      ],
      "ref": "tinyhtml5==2.1.0"
    },
    {
      "dependsOn": [
        "filelock==3.29.0",
        "idna==3.13",
        "pytest==9.0.3",
        "requests-file==3.0.1",
        "requests==2.33.1",
        "ruff==0.15.12"
      ],
      "ref": "tldextract==5.3.1"
    },
    {
      "dependsOn": [
        "pytest-asyncio==1.3.0",
        "pytest-cov==7.1.0",
        "pytest-timeout==2.4.0",
        "pytest==9.0.3",
        "requests==2.33.1"
      ],
      "ref": "tqdm==4.67.3"
    },
    {
      "dependsOn": [
        "annotated-doc==0.0.4",
        "click==8.3.3",
        "rich==15.0.0",
        "shellingham==1.5.4"
      ],
      "ref": "typer==0.25.1"
    },
    {
      "dependsOn": [
        "typing_extensions==4.15.0"
      ],
      "ref": "typing-inspection==0.4.2"
    },
    {
      "ref": "typing_extensions==4.15.0"
    },
    {
      "dependsOn": [
        "pytest-cov==7.1.0",
        "pytest==9.0.3"
      ],
      "ref": "tzlocal==5.3.1"
    },
    {
      "ref": "uritools==6.1.0"
    },
    {
      "dependsOn": [
        "brotli==1.2.0"
      ],
      "ref": "urllib3==2.6.3"
    },
    {
      "dependsOn": [
        "PyYAML==6.0.3",
        "click==8.3.3",
        "h11==0.16.0",
        "httptools==0.7.1",
        "python-dotenv==1.2.2",
        "typing_extensions==4.15.0",
        "uvloop==0.22.1",
        "watchfiles==1.1.1",
        "websockets==16.0"
      ],
      "ref": "uvicorn==0.46.0"
    },
    {
      "dependsOn": [
        "aiohttp==3.13.5",
        "psutil==7.2.2",
        "setuptools==82.0.1"
      ],
      "ref": "uvloop==0.22.1"
    },
    {
      "dependsOn": [
        "typing_extensions==4.15.0"
      ],
      "ref": "wasabi==1.1.3"
    },
    {
      "dependsOn": [
        "anyio==4.13.0"
      ],
      "ref": "watchfiles==1.1.1"
    },
    {
      "dependsOn": [
        "cloudpathlib==0.24.0",
        "confection==1.3.3",
        "httpx==0.28.1",
        "packaging==26.2",
        "pydantic==2.13.3",
        "smart_open==7.6.0",
        "srsly==2.5.3",
        "typer==0.25.1",
        "wasabi==1.1.3"
      ],
      "ref": "weasel==1.0.0"
    },
    {
      "dependsOn": [
        "cffi==2.0.0",
        "cssselect2==0.9.0",
        "fonttools==4.62.1",
        "pillow==12.2.0",
        "pydyf==0.12.1",
        "pyphen==0.17.2",
        "pytest==9.0.3",
        "ruff==0.15.12",
        "tinycss2==1.5.1",
        "tinyhtml5==2.1.0"
      ],
      "ref": "weasyprint==68.1"
    },
    {
      "ref": "webencodings==0.5.1"
    },
    {
      "dependsOn": [
        "pytest==9.0.3",
        "websockets==16.0"
      ],
      "ref": "websocket-client==1.9.0"
    },
    {
      "ref": "websockets==16.0"
    },
    {
      "dependsOn": [
        "pytest==9.0.3",
        "setuptools==82.0.1"
      ],
      "ref": "wrapt==2.1.2"
    },
    {
      "dependsOn": [
        "h11==0.16.0"
      ],
      "ref": "wsproto==1.3.2"
    },
    {
      "dependsOn": [
        "arabic-reshaper==3.0.1",
        "coverage==7.13.5",
        "html5lib==1.1",
        "pillow==12.2.0",
        "pyHanko==0.34.1",
        "pyhanko-certvalidator==0.30.2",
        "pypdf==6.10.2",
        "python-bidi==0.6.7",
        "reportlab==4.5.0",
        "svglib==1.6.0"
      ],
      "ref": "xhtml2pdf==0.2.17"
    },
    {
      "dependsOn": [
        "pytest-cov==7.1.0",
        "pytest==9.0.3"
      ],
      "ref": "xmltodict==1.0.4"
    },
    {
      "dependsOn": [
        "idna==3.13",
        "multidict==6.7.1",
        "propcache==0.4.1"
      ],
      "ref": "yarl==1.23.0"
    },
    {
      "ref": "zope.event==6.2"
    },
    {
      "dependsOn": [
        "coverage==7.13.5",
        "zope.event==6.2"
      ],
      "ref": "zope.interface==8.4"
    },
    {
      "dependsOn": [
        "pytest==9.0.3"
      ],
      "ref": "zopfli==0.4.1"
    }
  ],
  "metadata": {
    "timestamp": "2026-05-03T05:27:26.879127+00:00",
    "tools": {
      "components": [
        {
          "description": "CycloneDX Software Bill of Materials (SBOM) generator for Python projects and environments",
          "externalReferences": [
            {
              "type": "build-system",
              "url": "https://github.com/CycloneDX/cyclonedx-python/actions"
            },
            {
              "type": "distribution",
              "url": "https://pypi.org/project/cyclonedx-bom/"
            },
            {
              "type": "documentation",
              "url": "https://cyclonedx-bom-tool.readthedocs.io/"
            },
            {
              "type": "issue-tracker",
              "url": "https://github.com/CycloneDX/cyclonedx-python/issues"
            },
            {
              "type": "license",
              "url": "https://github.com/CycloneDX/cyclonedx-python/blob/main/LICENSE"
            },
            {
              "type": "release-notes",
              "url": "https://github.com/CycloneDX/cyclonedx-python/blob/main/CHANGELOG.md"
            },
            {
              "type": "vcs",
              "url": "https://github.com/CycloneDX/cyclonedx-python/"
            },
            {
              "type": "website",
              "url": "https://github.com/CycloneDX/cyclonedx-python/#readme"
            }
          ],
          "group": "CycloneDX",
          "licenses": [
            {
              "license": {
                "acknowledgement": "declared",
                "id": "Apache-2.0"
              }
            }
          ],
          "name": "cyclonedx-py",
          "type": "application",
          "version": "7.3.0"
        },
        {
          "description": "Python library for CycloneDX",
          "externalReferences": [
            {
              "type": "build-system",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions"
            },
            {
              "type": "distribution",
              "url": "https://pypi.org/project/cyclonedx-python-lib/"
            },
            {
              "type": "documentation",
              "url": "https://cyclonedx-python-library.readthedocs.io/"
            },
            {
              "type": "issue-tracker",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues"
            },
            {
              "type": "license",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE"
            },
            {
              "type": "release-notes",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md"
            },
            {
              "type": "vcs",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib"
            },
            {
              "type": "website",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme"
            }
          ],
          "group": "CycloneDX",
          "licenses": [
            {
              "license": {
                "acknowledgement": "declared",
                "id": "Apache-2.0"
              }
            }
          ],
          "name": "cyclonedx-python-lib",
          "type": "library",
          "version": "11.7.0"
        }
      ]
    }
  },
  "serialNumber": "urn:uuid:9f7d7165-845d-496c-860d-b1617bfd39be",
  "version": 1,
  "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
  "bomFormat": "CycloneDX",
  "specVersion": "1.6"
}