1# SPDX-FileCopyrightText: 2023 spdx contributors
2#
3# SPDX-License-Identifier: Apache-2.0
4import json
5from importlib import resources
6
7from spdx_tools.spdx3.payload import Payload
8from spdx_tools.spdx3.writer.json_ld.json_ld_converter import (
9 convert_payload_to_json_ld_list_of_elements,
10)
11
12
13def write_payload(payload: Payload, file_name: str):
14 element_list = convert_payload_to_json_ld_list_of_elements(payload)
15
16 # this will be obsolete as soon as the context is publicly available under some URI
17 # Note: 3.0.1 context is now available at
18 # https://spdx.org/rdf/3.0.1/spdx-context.jsonld
19 with resources.files("spdx_tools.spdx3.writer.json_ld").joinpath("context.json").open("r") as infile:
20 context = json.load(infile)
21
22 complete_dict = {"@context": context, "@graph": element_list}
23
24 with open(file_name + ".jsonld", "w", encoding="utf-8") as out:
25 json.dump(complete_dict, out, indent=2)