{
  "@context": "https://spdx.org/rdf/3.0.1/spdx-context.jsonld",
  "@graph": [
    {
      "@id": "_:creationInfo_1",
      "type": "CreationInfo",
      "specVersion": "3.0.1",
      "createdBy": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd2"
      ],
      "createdUsing": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/additionalToolSPDXRef-gnrtd3"
      ],
      "created": "2026-10-02T04:15:47Z"
    },
    {
      "@id": "_:creationInfo_0",
      "type": "CreationInfo",
      "specVersion": "3.0.1",
      "createdBy": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd0"
      ],
      "createdUsing": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/additionalToolSPDXRef-gnrtd1"
      ],
      "created": "2026-10-02T04:15:47Z"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1639",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1637"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1591",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86636",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86629",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd60038",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd60034",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19486",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19462",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19522",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19507",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd60036",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd60034",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19484",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19462",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86634",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86629",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1636",
      "type": "Relationship",
      "relationshipType": "hasConcludedLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1637"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1591",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19524",
      "type": "Relationship",
      "relationshipType": "hasDeclaredLicense",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19507",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86630",
      "type": "LifecycleScopedRelationship",
      "relationshipType": "dependsOn",
      "scope": "build",
      "completeness": "noAssertion",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19507"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86629",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86633",
      "type": "LifecycleScopedRelationship",
      "relationshipType": "dependsOn",
      "scope": "build",
      "completeness": "noAssertion",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1591"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86629",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86631",
      "type": "LifecycleScopedRelationship",
      "relationshipType": "dependsOn",
      "scope": "build",
      "completeness": "noAssertion",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd60034"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86629",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86632",
      "type": "LifecycleScopedRelationship",
      "relationshipType": "dependsOn",
      "scope": "build",
      "completeness": "noAssertion",
      "to": [
        "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19462"
      ],
      "from": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86629",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd25",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "MIT",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1637",
      "type": "simplelicensing_LicenseExpression",
      "simplelicensing_licenseExpression": "Python-2.0",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86635",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1638",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd60037",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19485",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19523",
      "type": "Organization",
      "name": "http://openeuler.org",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19507",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19523",
      "software_downloadLocation": "NOASSERTION",
      "summary": "Simple powerful testing with Python",
      "software_packageVersion": "0:9.1.1-1.oe2609",
      "software_homePage": "https://pytest.org",
      "description": "py.test provides simple, yet powerful testing for Python.",
      "name": "python3-pytest",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/19d54a93ffbada0d8891adcbefe41a882ee7f08ec9d32c6bee1353a910c81e32-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3-pytest@9.1.1-1.oe2609?arch=noarch&epoch=0&upstream=pytest-9.1.1-1.oe2609.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19462",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd19485",
      "software_downloadLocation": "NOASSERTION",
      "summary": "The uncompromising code formatter",
      "software_packageVersion": "0:25.1.0-1.oe2609",
      "software_homePage": "https://github.com/psf/black",
      "description": "Black is the uncompromising Python code formatter. By using it, you agree to\ncease control over minutiae of hand-formatting. In return, Black gives you\nspeed, determinism, and freedom from pycodestyle nagging about formatting.\nYou will save time and mental energy for more important matters.",
      "name": "python3-black",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/19d54a93ffbada0d8891adcbefe41a882ee7f08ec9d32c6bee1353a910c81e32-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3-black@25.1.0-1.oe2609?arch=noarch&epoch=0&upstream=python-black-25.1.0-1.oe2609.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd60034",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd60037",
      "software_downloadLocation": "NOASSERTION",
      "summary": "Python Library for Tom's Obvious, Minimal Language",
      "software_packageVersion": "0:0.10.2-2.oe2609",
      "software_homePage": "https://github.com/uiri/toml",
      "description": "TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics. TOML is designed to map unambiguously to a hash table. TOML should be easy to parse into data structures in a wide variety of languages.",
      "name": "python3-toml",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/19d54a93ffbada0d8891adcbefe41a882ee7f08ec9d32c6bee1353a910c81e32-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3-toml@0.10.2-2.oe2609?arch=noarch&epoch=0&upstream=python-toml-0.10.2-2.oe2609.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86629",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd86635",
      "software_downloadLocation": "NOASSERTION",
      "summary": "A pytest plugin to enable format checking with black",
      "software_packageVersion": "0:0.6.0-2.oe2609",
      "software_homePage": "https://github.com/coherent-oss/pytest-black",
      "description": "A pytest plugin to enable format checking with black.",
      "name": "python3-pytest_black",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/19d54a93ffbada0d8891adcbefe41a882ee7f08ec9d32c6bee1353a910c81e32-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3-pytest_black@0.6.0-2.oe2609?arch=noarch&epoch=0&upstream=python-pytest-black-0.6.0-2.oe2609.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1591",
      "type": "software_Package",
      "software_copyrightText": "",
      "suppliedBy": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/SPDXRef-gnrtd1638",
      "software_downloadLocation": "NOASSERTION",
      "summary": "Interpreter of the Python3 programming language",
      "software_packageVersion": "0:3.11.13-25.oe2609",
      "software_homePage": "https://www.python.org/",
      "description": "Python combines remarkable power with very clear syntax. It has modules,\nclasses, exceptions, very high level dynamic data types, and dynamic\ntyping. There are interfaces to many system calls and libraries, as well\nas to various windowing systems. New built-in modules are easily written\nin C or C++ (or other languages, depending on the chosen implementation).\nPython is also usable as an extension language for applications written\nin other languages that need easy-to-use scripting or automation interfaces.\n\nThis package Provides python version 3.",
      "name": "python3",
      "software_sourceInfo": "acquired package info from repodata DB: repodata/19d54a93ffbada0d8891adcbefe41a882ee7f08ec9d32c6bee1353a910c81e32-primary.sqlite.bz2",
      "software_packageUrl": "pkg:rpm/python3@3.11.13-25.oe2609?arch=x86_64&epoch=0&upstream=python3-3.11.13-25.oe2609.src.rpm",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/additionalToolSPDXRef-gnrtd1",
      "type": "Tool",
      "name": "syft-[not provided]",
      "creationInfo": "_:creationInfo_0"
    },
    {
      "spdxId": "https://anchore.com/syft/dir/repo/openeuler/openEuler-26.09/everything/x86_64-d20ca2c2-3788-4a6e-b0ed-9fccfc716ab9-specv3/additionalToolSPDXRef-gnrtd3",
      "type": "Tool",
      "name": "syft-[not provided]",
      "creationInfo": "_:creationInfo_1"
    }
  ]
}