1# SPDX-FileCopyrightText: 2023 spdx contributors
2#
3# SPDX-License-Identifier: Apache-2.0
4from beartype.typing import TextIO
5
6from spdx_tools.spdx3.model.build import Build
7from spdx_tools.spdx3.writer.console.console import write_value
8from spdx_tools.spdx3.writer.console.element_writer import write_element_properties
9from spdx_tools.spdx3.writer.console.hash_writer import write_hash
10from spdx_tools.spdx.writer.tagvalue.tagvalue_writer_helper_functions import write_optional_heading
11
12
13def write_build(build: Build, text_output: TextIO):
14 text_output.write("## Build\n")
15 write_element_properties(build, text_output)
16
17 for property_name in Build.__annotations__.keys():
18 if property_name == "config_source_digest":
19 write_optional_heading(build.config_source_digest, "config_source_digest", text_output)
20 for digest_hash in build.config_source_digest:
21 write_hash(digest_hash, text_output, heading=False)
22 continue
23
24 write_value(property_name, getattr(build, property_name), text_output)