|
1 | 1 | # SPDX-FileCopyrightText: 2023 spdx contributors |
2 | 2 | # |
3 | 3 | # SPDX-License-Identifier: Apache-2.0 |
4 | | -from beartype.typing import Dict, List, IO |
| 4 | +from beartype.typing import IO, Dict |
5 | 5 | from rdflib import DOAP, Graph |
6 | 6 | from rdflib.compare import to_isomorphic |
7 | 7 |
|
8 | | -from spdx_tools.spdx.document_utils import create_document_without_duplicates |
9 | 8 | from spdx_tools.spdx.model import Document |
10 | 9 | from spdx_tools.spdx.rdfschema.namespace import POINTER_NAMESPACE, SPDX_NAMESPACE |
11 | | -from spdx_tools.spdx.validation.document_validator import validate_full_spdx_document |
12 | | -from spdx_tools.spdx.validation.validation_message import ValidationMessage |
13 | 10 | from spdx_tools.spdx.writer.rdf.annotation_writer import add_annotation_to_graph |
14 | 11 | from spdx_tools.spdx.writer.rdf.creation_info_writer import add_creation_info_to_graph |
15 | 12 | from spdx_tools.spdx.writer.rdf.extracted_licensing_info_writer import add_extracted_licensing_info_to_graph |
16 | 13 | from spdx_tools.spdx.writer.rdf.file_writer import add_file_to_graph |
17 | 14 | from spdx_tools.spdx.writer.rdf.package_writer import add_package_to_graph |
18 | 15 | from spdx_tools.spdx.writer.rdf.relationship_writer import add_relationship_to_graph |
19 | 16 | from spdx_tools.spdx.writer.rdf.snippet_writer import add_snippet_to_graph |
| 17 | +from spdx_tools.spdx.writer.write_utils import validate_and_deduplicate |
20 | 18 |
|
21 | 19 |
|
22 | 20 | def write_document_to_stream(document: Document, stream: IO[bytes], validate: bool, drop_duplicates: bool = True): |
23 | | - if validate: |
24 | | - validation_messages: List[ValidationMessage] = validate_full_spdx_document(document) |
25 | | - if validation_messages: |
26 | | - raise ValueError(f"Document is not valid. The following errors were detected: {validation_messages}") |
27 | | - if drop_duplicates: |
28 | | - document = create_document_without_duplicates(document) |
| 21 | + document = validate_and_deduplicate(document, validate, drop_duplicates) |
29 | 22 | graph = Graph() |
30 | 23 | doc_namespace = document.creation_info.document_namespace |
31 | 24 | external_doc_ref_to_namespace: Dict[str, str] = { |
|
0 commit comments