13
13
14
14
from src .model .document import Document
15
15
from src .model .relationship import RelationshipType
16
+ from src .model .relationship_filters import filter_by_type_and_origin , filter_by_type_and_target
16
17
from src .validation .annotation_validator import validate_annotations
17
18
from src .validation .creation_info_validator import validate_creation_info
18
19
from src .validation .extracted_licensing_info_validator import validate_extracted_licensing_infos
@@ -35,15 +36,16 @@ def validate_full_spdx_document(document: Document, spdx_version: str) -> List[V
35
36
validation_messages .extend (validate_extracted_licensing_infos (document .extracted_licensing_info ))
36
37
37
38
document_id = document .creation_info .spdx_id
38
- document_describes_relationships = [ relationship for relationship in document .relationships if
39
- relationship . relationship_type == RelationshipType . DESCRIBES and relationship . spdx_element_id == document_id ]
40
- described_by_document_relationships = [ relationship for relationship in document .relationships if
41
- relationship . relationship_type == RelationshipType . DESCRIBED_BY and relationship . related_spdx_element_id == document_id ]
39
+ document_describes_relationships = filter_by_type_and_origin ( document .relationships , RelationshipType . DESCRIBES ,
40
+ document_id )
41
+ described_by_document_relationships = filter_by_type_and_target ( document .relationships ,
42
+ RelationshipType . DESCRIBED_BY , document_id )
42
43
43
44
if not document_describes_relationships + described_by_document_relationships :
44
45
validation_messages .append (
45
46
ValidationMessage (
46
- f'there must be at least one relationship "{ document_id } DESCRIBES ..." or "... DESCRIBED_BY { document_id } "' ,
47
+ f'there must be at least one relationship "{ document_id } DESCRIBES ..." or "... DESCRIBED_BY '
48
+ f'{ document_id } "' ,
47
49
ValidationContext (spdx_id = document_id ,
48
50
element_type = SpdxElementType .DOCUMENT )))
49
51
0 commit comments