1# SPDX-License-Identifier: Apache-2.0
2# Copyright (c) 2022 spdx contributors
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6# http://www.apache.org/licenses/LICENSE-2.0
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS,
9# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10# See the License for the specific language governing permissions and
11# limitations under the License.
12from beartype.typing import TextIO
13
14from spdx_tools.spdx.model import Snippet
15from spdx_tools.spdx.writer.tagvalue.tagvalue_writer_helper_functions import write_range, write_text_value, write_value
16
17
18def write_snippet(snippet: Snippet, text_output: TextIO):
19 text_output.write("## Snippet Information\n")
20
21 write_value("SnippetSPDXID", snippet.spdx_id, text_output)
22 write_value("SnippetFromFileSPDXID", snippet.file_spdx_id, text_output)
23 write_range("SnippetByteRange", snippet.byte_range, text_output)
24 write_range("SnippetLineRange", snippet.line_range, text_output)
25
26 write_value("SnippetLicenseConcluded", snippet.license_concluded, text_output)
27 for license_info in snippet.license_info_in_snippet:
28 write_value("LicenseInfoInSnippet", license_info, text_output)
29 write_text_value("SnippetLicenseComments", snippet.license_comment, text_output)
30 write_text_value("SnippetCopyrightText", snippet.copyright_text, text_output)
31
32 write_text_value("SnippetComment", snippet.comment, text_output)
33 write_value("SnippetName", snippet.name, text_output)
34
35 for attribution_text in snippet.attribution_texts:
36 write_text_value("SnippetAttributionText", attribution_text, text_output)