1414)
1515from reqif .models .reqif_core_content import ReqIFCoreContent
1616from reqif .models .reqif_namespace_info import ReqIFNamespaceInfo
17+ from reqif .models .reqif_relation_group_type import ReqIFRelationGroupType
1718from reqif .models .reqif_req_if_content import ReqIFReqIFContent
1819from reqif .models .reqif_reqif_header import ReqIFReqIFHeader
1920from reqif .models .reqif_spec_object import ReqIFSpecObject
2930 DataTypeParser ,
3031)
3132from reqif .parsers .header_parser import ReqIFHeaderParser
33+ from reqif .parsers .relation_group_parser import ReqIFRelationGroupParser
3234from reqif .parsers .spec_object_parser import (
3335 SpecObjectParser ,
3436)
3537from reqif .parsers .spec_relation_parser import (
3638 SpecRelationParser ,
3739)
40+ from reqif .parsers .spec_types .relation_group_type_parser import (
41+ RelationGroupTypeParser ,
42+ )
3843from reqif .parsers .spec_types .spec_object_type_parser import (
3944 SpecObjectTypeParser ,
4045)
@@ -224,7 +229,16 @@ def _parse_reqif_content(
224229 data_types .append (data_type )
225230 data_types_lookup [data_type .identifier ] = data_type
226231
227- spec_types = None
232+ spec_types : Optional [
233+ List [
234+ Union [
235+ ReqIFSpecObjectType ,
236+ ReqIFSpecRelationType ,
237+ ReqIFSpecificationType ,
238+ ReqIFRelationGroupType ,
239+ ]
240+ ]
241+ ] = None
228242 spec_types_lookup : Dict = {}
229243 xml_spec_types = xml_req_if_content .find ("SPEC-TYPES" )
230244 if xml_spec_types is not None :
@@ -234,6 +248,7 @@ def _parse_reqif_content(
234248 ReqIFSpecObjectType ,
235249 ReqIFSpecRelationType ,
236250 ReqIFSpecificationType ,
251+ ReqIFRelationGroupType ,
237252 ]
238253 if xml_spec_object_type_xml .tag == "SPEC-OBJECT-TYPE" :
239254 spec_type = SpecObjectTypeParser .parse (
@@ -247,6 +262,10 @@ def _parse_reqif_content(
247262 spec_type = SpecificationTypeParser .parse (
248263 xml_spec_object_type_xml
249264 )
265+ elif xml_spec_object_type_xml .tag == "RELATION-GROUP-TYPE" :
266+ spec_type = RelationGroupTypeParser .parse (
267+ xml_spec_object_type_xml
268+ )
250269 else :
251270 raise NotImplementedError (
252271 xml_spec_object_type_xml
@@ -301,7 +320,12 @@ def _parse_reqif_content(
301320 if xml_spec_relation_groups is not None :
302321 spec_relation_groups = []
303322 if len (xml_spec_relation_groups ) != 0 :
304- raise NotImplementedError (xml_spec_relation_groups ) from None
323+ spec_relation_groups = []
324+ for xml_relation_group in xml_spec_relation_groups :
325+ relation_group = ReqIFRelationGroupParser .parse (
326+ xml_relation_group
327+ )
328+ spec_relation_groups .append (relation_group )
305329
306330 lookup = ReqIFObjectLookup (
307331 data_types_lookup = data_types_lookup ,
0 commit comments