{
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "python3-blockdiag-0.3.0.0-1.oe2403.aarch64.rpm",
  "spdxVersion": "SPDX-2.2",
  "creationInfo": {
    "created": "2026-05-15T07:43:41.871469762Z",
    "creators": [
      "openeuler_creator"
    ]
  },
  "dataLicense": "CC0-1.0",
  "documentNamespace": "https://sbom.openEuler.org/python3-blockdiag-0.3.0.0-1.oe2403.aarch64.rpm",
  "packages": [
    {
      "SPDXID": "SPDXRef-rpm-python3-funcparserlib-1.0.1",
      "name": "python3-funcparserlib",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "355ab0ac34959781bb11a203880fafcb4a2fac3b393d9b93eb2b2fce0933a028"
        }
      ],
      "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.oe2403?arch=noarch&epoch=0&upstream=python-funcparserlib-1.0.1-1.oe2403.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://github.com/vlasovskikh/funcparserlib",
      "sourceInfo": "acquired package info from repodata DB: repodata/7e8aae3eb2beef01b5de07bcbc3d3c7311eaf4827fcb7eaacb27d61f92669b56-primary.sqlite.bz2",
      "summary": "Recursive descent parsing library based on functional combinators",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.0.1-1.oe2403"
    },
    {
      "SPDXID": "SPDXRef-rpm-python3-webcolors-1.13",
      "name": "python3-webcolors",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "aeecaf7d9187addb344e9cf9514069185ee513e8cee66359be0409be49aadfff"
        }
      ],
      "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.oe2403?arch=noarch&epoch=0&upstream=python-webcolors-1.13-1.oe2403.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://github.com/ubernostrum/webcolors",
      "sourceInfo": "acquired package info from repodata DB: repodata/7e8aae3eb2beef01b5de07bcbc3d3c7311eaf4827fcb7eaacb27d61f92669b56-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.oe2403"
    }
  ],
  "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"
    }
  ]
}
