spdx_tools.spdx.writer.rdf.checksum_writer

 1# SPDX-FileCopyrightText: 2023 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4from rdflib import RDF, BNode, Graph, Literal, URIRef
 5
 6from spdx_tools.spdx.model import Checksum, ChecksumAlgorithm
 7from spdx_tools.spdx.rdfschema.namespace import SPDX_NAMESPACE
 8
 9
10def add_checksum_to_graph(checksum: Checksum, graph: Graph, parent: URIRef):
11    checksum_node = BNode()
12    graph.add((checksum_node, RDF.type, SPDX_NAMESPACE.Checksum))
13    graph.add((checksum_node, SPDX_NAMESPACE.algorithm, algorithm_to_rdf_string(checksum.algorithm)))
14    graph.add((checksum_node, SPDX_NAMESPACE.checksumValue, Literal(checksum.value)))
15
16    graph.add((parent, SPDX_NAMESPACE.checksum, checksum_node))
17
18
19def algorithm_to_rdf_string(algorithm: ChecksumAlgorithm) -> URIRef:
20    if "BLAKE2B" in algorithm.name:
21        algorithm_rdf_string = algorithm.name.replace("_", "").lower()
22    else:
23        algorithm_rdf_string = algorithm.name.lower()
24
25    return SPDX_NAMESPACE[f"checksumAlgorithm_{algorithm_rdf_string}"]
def add_checksum_to_graph( checksum: spdx_tools.spdx.model.checksum.Checksum, graph: rdflib.graph.Graph, parent: rdflib.term.URIRef):
11def add_checksum_to_graph(checksum: Checksum, graph: Graph, parent: URIRef):
12    checksum_node = BNode()
13    graph.add((checksum_node, RDF.type, SPDX_NAMESPACE.Checksum))
14    graph.add((checksum_node, SPDX_NAMESPACE.algorithm, algorithm_to_rdf_string(checksum.algorithm)))
15    graph.add((checksum_node, SPDX_NAMESPACE.checksumValue, Literal(checksum.value)))
16
17    graph.add((parent, SPDX_NAMESPACE.checksum, checksum_node))
def algorithm_to_rdf_string( algorithm: spdx_tools.spdx.model.checksum.ChecksumAlgorithm) -> rdflib.term.URIRef:
20def algorithm_to_rdf_string(algorithm: ChecksumAlgorithm) -> URIRef:
21    if "BLAKE2B" in algorithm.name:
22        algorithm_rdf_string = algorithm.name.replace("_", "").lower()
23    else:
24        algorithm_rdf_string = algorithm.name.lower()
25
26    return SPDX_NAMESPACE[f"checksumAlgorithm_{algorithm_rdf_string}"]