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}"]