1313
1414from src .model .document import Document
1515from src .model .relationship import RelationshipType
16+ from src .model .relationship_filters import filter_by_type_and_origin , filter_by_type_and_target
1617from src .validation .annotation_validator import validate_annotations
1718from src .validation .creation_info_validator import validate_creation_info
1819from 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
3536 validation_messages .extend (validate_extracted_licensing_infos (document .extracted_licensing_info ))
3637
3738 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 )
4243
4344 if not document_describes_relationships + described_by_document_relationships :
4445 validation_messages .append (
4546 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 } "' ,
4749 ValidationContext (spdx_id = document_id ,
4850 element_type = SpdxElementType .DOCUMENT )))
4951
0 commit comments