spdx_tools.spdx3.writer.console.payload_writer
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 import ( 7 Annotation, 8 Bom, 9 Bundle, 10 Organization, 11 Person, 12 Relationship, 13 SoftwareAgent, 14 SpdxDocument, 15 Tool, 16) 17from spdx_tools.spdx3.model.ai import AIPackage 18from spdx_tools.spdx3.model.build import Build 19from spdx_tools.spdx3.model.dataset import Dataset 20from spdx_tools.spdx3.model.software import File, Package, Sbom, Snippet, SoftwareDependencyRelationship 21from spdx_tools.spdx3.payload import Payload 22from spdx_tools.spdx3.writer.console.agent_writer import write_agent 23from spdx_tools.spdx3.writer.console.ai.ai_package_writer import write_ai_package 24from spdx_tools.spdx3.writer.console.annotation_writer import write_annotation 25from spdx_tools.spdx3.writer.console.bom_writer import write_bom 26from spdx_tools.spdx3.writer.console.build.build_writer import write_build 27from spdx_tools.spdx3.writer.console.bundle_writer import write_bundle 28from spdx_tools.spdx3.writer.console.dataset.dataset_writer import write_dataset 29from spdx_tools.spdx3.writer.console.relationship_writer import write_relationship 30from spdx_tools.spdx3.writer.console.software.file_writer import write_file 31from spdx_tools.spdx3.writer.console.software.package_writer import write_package 32from spdx_tools.spdx3.writer.console.software.sbom_writer import write_sbom 33from spdx_tools.spdx3.writer.console.software.snippet_writer import write_snippet 34from spdx_tools.spdx3.writer.console.software.software_dependency_relationship_writer import ( 35 write_software_dependency_relationship, 36) 37from spdx_tools.spdx3.writer.console.spdx_document_writer import write_spdx_document 38from spdx_tools.spdx3.writer.console.tool_writer import write_tool 39 40MAP_CLASS_TO_WRITE_METHOD = { 41 Annotation: write_annotation, 42 Relationship: write_relationship, 43 SoftwareDependencyRelationship: write_software_dependency_relationship, 44 Bundle: write_bundle, 45 SpdxDocument: write_spdx_document, 46 Bom: write_bom, 47 File: write_file, 48 Package: write_package, 49 Snippet: write_snippet, 50 Sbom: write_sbom, 51 Person: write_agent, 52 Organization: write_agent, 53 SoftwareAgent: write_agent, 54 Tool: write_tool, 55 AIPackage: write_ai_package, 56 Dataset: write_dataset, 57 Build: write_build, 58} 59 60 61def write_payload(payload: Payload, text_output: TextIO): 62 for element in payload.get_full_map().values(): 63 write_method = MAP_CLASS_TO_WRITE_METHOD[type(element)] 64 write_method(element, text_output) 65 text_output.write("\n")
MAP_CLASS_TO_WRITE_METHOD =
{<class 'spdx_tools.spdx3.model.annotation.Annotation'>: <function write_annotation>, <class 'spdx_tools.spdx3.model.relationship.Relationship'>: <function write_relationship>, <class 'spdx_tools.spdx3.model.software.software_dependency_relationship.SoftwareDependencyRelationship'>: <function write_software_dependency_relationship>, <class 'spdx_tools.spdx3.model.bundle.Bundle'>: <function write_bundle>, <class 'spdx_tools.spdx3.model.spdx_document.SpdxDocument'>: <function write_spdx_document>, <class 'spdx_tools.spdx3.model.bom.Bom'>: <function write_bom>, <class 'spdx_tools.spdx3.model.software.file.File'>: <function write_file>, <class 'spdx_tools.spdx3.model.software.package.Package'>: <function write_package>, <class 'spdx_tools.spdx3.model.software.snippet.Snippet'>: <function write_snippet>, <class 'spdx_tools.spdx3.model.software.sbom.Sbom'>: <function write_sbom>, <class 'spdx_tools.spdx3.model.person.Person'>: <function write_agent>, <class 'spdx_tools.spdx3.model.organization.Organization'>: <function write_agent>, <class 'spdx_tools.spdx3.model.software_agent.SoftwareAgent'>: <function write_agent>, <class 'spdx_tools.spdx3.model.tool.Tool'>: <function write_tool>, <class 'spdx_tools.spdx3.model.ai.ai_package.AIPackage'>: <function write_ai_package>, <class 'spdx_tools.spdx3.model.dataset.dataset.Dataset'>: <function write_dataset>, <class 'spdx_tools.spdx3.model.build.build.Build'>: <function write_build>}