spdx_tools.spdx.writer.tagvalue.creation_info_writer

 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.datetime_conversions import datetime_to_iso_string
15from spdx_tools.spdx.model import CreationInfo
16from spdx_tools.spdx.writer.tagvalue.tagvalue_writer_helper_functions import (
17    write_optional_heading,
18    write_separator,
19    write_text_value,
20    write_value,
21)
22
23
24def write_creation_info(creation_info: CreationInfo, text_output: TextIO):
25    write_value("SPDXVersion", creation_info.spdx_version, text_output)
26    write_value("DataLicense", creation_info.data_license, text_output)
27    write_value("SPDXID", creation_info.spdx_id, text_output)
28    write_value("DocumentName", creation_info.name, text_output)
29    write_value("DocumentNamespace", creation_info.document_namespace, text_output)
30    write_text_value("DocumentComment", creation_info.document_comment, text_output)
31
32    write_optional_heading(creation_info.external_document_refs, "\n## External Document References\n", text_output)
33    for external_document_ref in creation_info.external_document_refs:
34        external_document_ref_str = " ".join(
35            [
36                external_document_ref.document_ref_id,
37                external_document_ref.document_uri,
38                external_document_ref.checksum.algorithm.name + ": " + external_document_ref.checksum.value,
39            ]
40        )
41        write_value("ExternalDocumentRef", external_document_ref_str, text_output)
42    write_separator(text_output)
43
44    text_output.write("## Creation Information\n")
45    write_value("LicenseListVersion", creation_info.license_list_version, text_output)
46    for creator in creation_info.creators:
47        write_value("Creator", creator.to_serialized_string(), text_output)
48    write_value("Created", datetime_to_iso_string(creation_info.created), text_output)
49    write_text_value("CreatorComment", creation_info.creator_comment, text_output)
def write_creation_info( creation_info: spdx_tools.spdx.model.document.CreationInfo, text_output: <class 'TextIO'>):
25def write_creation_info(creation_info: CreationInfo, text_output: TextIO):
26    write_value("SPDXVersion", creation_info.spdx_version, text_output)
27    write_value("DataLicense", creation_info.data_license, text_output)
28    write_value("SPDXID", creation_info.spdx_id, text_output)
29    write_value("DocumentName", creation_info.name, text_output)
30    write_value("DocumentNamespace", creation_info.document_namespace, text_output)
31    write_text_value("DocumentComment", creation_info.document_comment, text_output)
32
33    write_optional_heading(creation_info.external_document_refs, "\n## External Document References\n", text_output)
34    for external_document_ref in creation_info.external_document_refs:
35        external_document_ref_str = " ".join(
36            [
37                external_document_ref.document_ref_id,
38                external_document_ref.document_uri,
39                external_document_ref.checksum.algorithm.name + ": " + external_document_ref.checksum.value,
40            ]
41        )
42        write_value("ExternalDocumentRef", external_document_ref_str, text_output)
43    write_separator(text_output)
44
45    text_output.write("## Creation Information\n")
46    write_value("LicenseListVersion", creation_info.license_list_version, text_output)
47    for creator in creation_info.creators:
48        write_value("Creator", creator.to_serialized_string(), text_output)
49    write_value("Created", datetime_to_iso_string(creation_info.created), text_output)
50    write_text_value("CreatorComment", creation_info.creator_comment, text_output)