{
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "python3-blockdiag-0.3.0.0-1.oe2403sp3.aarch64.rpm",
  "spdxVersion": "SPDX-2.2",
  "creationInfo": {
    "created": "2026-05-14T09:35:32.564489173Z",
    "creators": [
      "openeuler_creator"
    ]
  },
  "dataLicense": "CC0-1.0",
  "documentNamespace": "https://sbom.openEuler.org/python3-blockdiag-0.3.0.0-1.oe2403sp3.aarch64.rpm",
  "packages": [
    {
      "SPDXID": "SPDXRef-rpm-python3-funcparserlib-1.0.1",
      "name": "python3-funcparserlib",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "b735fd7358e2e096ebbb2cfb8e66fbd4961ad2dce66d37b68d7cb1f166e9eead"
        }
      ],
      "description": "*Parser combinators* are just higher-order functions that take parsers as their\narguments and return them as result values. Parser combinators are:\n* First-class values\n* Extremely composable\n* Tend to make the code quite compact\n* Resemble the readable notation of xBNF grammars\nParsers made with ``funcparserlib`` are pure-Python LL(*) parsers. It means\nthat it's very easy to write them without thinking about look-aheads and all\nthat hardcore parsing stuff. But the recursive descent parsing is a rather slow\nmethod compared to LL(k) or LR(k) algorithms.\nSo the primary domain for ``funcparserlib`` is **parsing little languages** or\n**external DSLs** (domain specific languages).\nThe library itself is very small. Its source code is only 0.5 KLOC, with lots\nof comments included. It features the longest parsed prefix error reporting, as well\nas a tiny lexer generator for token position tracking.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/python3-funcparserlib@1.0.1-1.oe2403sp3?arch=noarch&epoch=0&upstream=python-funcparserlib-1.0.1-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://github.com/vlasovskikh/funcparserlib",
      "sourceInfo": "acquired package info from repodata DB: repodata/a93269068657383c49b64abfa12c257e5c225502e1c90790818d693780b1242a-primary.sqlite.bz2",
      "summary": "Recursive descent parsing library based on functional combinators",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.0.1-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-python3-webcolors-1.13",
      "name": "python3-webcolors",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "6908e64f445fac4183cbbe5d713f41a05efd7ff18b6d6b3a8b80aa4cb62c6260"
        }
      ],
      "description": "\n``webcolors`` is a module for working with HTML/CSS color definitions.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/python3-webcolors@1.13-1.oe2403sp3?arch=noarch&epoch=0&upstream=python-webcolors-1.13-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://github.com/ubernostrum/webcolors",
      "sourceInfo": "acquired package info from repodata DB: repodata/a93269068657383c49b64abfa12c257e5c225502e1c90790818d693780b1242a-primary.sqlite.bz2",
      "summary": "A library for working with color names and color values formats defined by HTML and CSS.",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.13-1.oe2403sp3"
    }
  ],
  "relationships": [
    {
      "spdxElementId": "SPDXRef-rpm-python3-blockdiag-3.0.0",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-python3-funcparserlib-1.0.1"
    },
    {
      "spdxElementId": "SPDXRef-rpm-python3-blockdiag-3.0.0",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-python3-webcolors-1.13"
    }
  ]
}
