spdx_tools.spdx.writer.tagvalue.file_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.model import File
15from spdx_tools.spdx.writer.tagvalue.checksum_writer import write_checksum_to_tag_value
16from spdx_tools.spdx.writer.tagvalue.tagvalue_writer_helper_functions import write_text_value, write_value
17
18
19def write_file(file: File, text_output: TextIO):
20    text_output.write("## File Information\n")
21
22    write_value("FileName", file.name, text_output)
23    write_value("SPDXID", file.spdx_id, text_output)
24
25    for file_type in file.file_types:
26        write_value("FileType", file_type.name, text_output)
27
28    for file_checksum in file.checksums:
29        write_value("FileChecksum", write_checksum_to_tag_value(file_checksum), text_output)
30
31    write_value("LicenseConcluded", file.license_concluded, text_output)
32    for license_info in file.license_info_in_file:
33        write_value("LicenseInfoInFile", license_info, text_output)
34    write_text_value("LicenseComments", file.license_comment, text_output)
35    write_text_value("FileCopyrightText", file.copyright_text, text_output)
36
37    write_text_value("FileComment", file.comment, text_output)
38    write_text_value("FileNotice", file.notice, text_output)
39
40    for contributor in sorted(file.contributors):
41        write_value("FileContributor", contributor, text_output)
42
43    for attribution_text in file.attribution_texts:
44        write_text_value("FileAttributionText", attribution_text, text_output)
def write_file(file: spdx_tools.spdx.model.file.File, text_output: <class 'TextIO'>):
20def write_file(file: File, text_output: TextIO):
21    text_output.write("## File Information\n")
22
23    write_value("FileName", file.name, text_output)
24    write_value("SPDXID", file.spdx_id, text_output)
25
26    for file_type in file.file_types:
27        write_value("FileType", file_type.name, text_output)
28
29    for file_checksum in file.checksums:
30        write_value("FileChecksum", write_checksum_to_tag_value(file_checksum), text_output)
31
32    write_value("LicenseConcluded", file.license_concluded, text_output)
33    for license_info in file.license_info_in_file:
34        write_value("LicenseInfoInFile", license_info, text_output)
35    write_text_value("LicenseComments", file.license_comment, text_output)
36    write_text_value("FileCopyrightText", file.copyright_text, text_output)
37
38    write_text_value("FileComment", file.comment, text_output)
39    write_text_value("FileNotice", file.notice, text_output)
40
41    for contributor in sorted(file.contributors):
42        write_value("FileContributor", contributor, text_output)
43
44    for attribution_text in file.attribution_texts:
45        write_text_value("FileAttributionText", attribution_text, text_output)