spdx_tools.spdx.writer.write_utils

 1# SPDX-FileCopyrightText: 2023 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4from beartype.typing import List
 5
 6from spdx_tools.spdx.document_utils import create_document_without_duplicates
 7from spdx_tools.spdx.jsonschema.document_converter import DocumentConverter
 8from spdx_tools.spdx.model import Document
 9from spdx_tools.spdx.validation.document_validator import validate_full_spdx_document
10from spdx_tools.spdx.validation.validation_message import ValidationMessage
11
12
13def validate_and_deduplicate(document: Document, validate: bool = True, drop_duplicates: bool = True) -> Document:
14    if validate:
15        validation_messages: List[ValidationMessage] = validate_full_spdx_document(document)
16        if validation_messages:
17            raise ValueError(f"Document is not valid. The following errors were detected: {validation_messages}")
18    if drop_duplicates:
19        document = create_document_without_duplicates(document)
20    return document
21
22
23def convert(document: Document, converter: DocumentConverter) -> dict:
24    if converter is None:
25        converter = DocumentConverter()
26    return converter.convert(document)
def validate_and_deduplicate( document: spdx_tools.spdx.model.document.Document, validate: bool = True, drop_duplicates: bool = True) -> spdx_tools.spdx.model.document.Document:
14def validate_and_deduplicate(document: Document, validate: bool = True, drop_duplicates: bool = True) -> Document:
15    if validate:
16        validation_messages: List[ValidationMessage] = validate_full_spdx_document(document)
17        if validation_messages:
18            raise ValueError(f"Document is not valid. The following errors were detected: {validation_messages}")
19    if drop_duplicates:
20        document = create_document_without_duplicates(document)
21    return document
24def convert(document: Document, converter: DocumentConverter) -> dict:
25    if converter is None:
26        converter = DocumentConverter()
27    return converter.convert(document)