55from enum import Enum , unique
66from typing import Dict , List , Set
77
8- from packaging .version import InvalidVersion , Version
98from reqstool_python_decorators .decorators .decorators import Requirements
109from ruamel .yaml import YAML
1110
1211from reqstool .commands .exit_codes import EXIT_CODE_SYNTAX_VALIDATION_ERROR
13- from reqstool .common .dataclasses .lifecycle import LIFECYCLESTATE , LifecycleData
12+ from reqstool .common .dataclasses .lifecycle import LifecycleData
1413from reqstool .common .dataclasses .urn_id import UrnId
1514from reqstool .common .utils import Utils
1615from reqstool .common .validators .semantic_validator import SemanticValidator
@@ -342,14 +341,6 @@ def __parse_requirements(self, data): # NOSONAR
342341 rationale = req ["rationale" ] if "rationale" in req else None
343342 # Check if implementation is defined, or set it to True
344343 implementation = req ["implementation" ] if "implementation" in req else IMPLEMENTATION .IN_CODE .value
345- # Get lifecycle variables or use defaults
346- if "lifecycle" in req :
347- lifecycle_state = LIFECYCLESTATE (req ["lifecycle" ]["state" ])
348- lifecycle_reason = req ["lifecycle" ]["reason" ] if "reason" in req ["lifecycle" ] else None
349- else :
350- lifecycle_state = LIFECYCLESTATE .EFFECTIVE
351- lifecycle_reason = None
352-
353344 urn_id = UrnId (urn = urn , id = req ["id" ])
354345 req_data = RequirementData (
355346 id = urn_id ,
@@ -360,17 +351,11 @@ def __parse_requirements(self, data): # NOSONAR
360351 implementation = IMPLEMENTATION (implementation ),
361352 categories = [CATEGORIES (c ) for c in req ["categories" ]],
362353 references = refs_data ,
363- revision = self . __parse_req_version ( version = req ["revision" ], urn_id = urn_id ),
364- lifecycle = LifecycleData ( state = lifecycle_state , reason = lifecycle_reason ),
354+ revision = Utils . parse_version ( version_str = req ["revision" ], urn_id = urn_id ),
355+ lifecycle = LifecycleData . from_dict ( req . get ( "lifecycle" ) ),
365356 )
366357
367358 if req_data .id not in r_reqs :
368359 r_reqs [req_data .id ] = req_data
369360
370361 return r_reqs
371-
372- def __parse_req_version (self , version : str , urn_id : UrnId ) -> Version :
373- try :
374- return Version (version )
375- except InvalidVersion as e :
376- raise TypeError (f"Invalid version: { e } for: { urn_id } " )
0 commit comments