Skip to content

refactor: extract shared lifecycle parsing and version parsing utilities#303

Merged
jimisola merged 3 commits intomainfrom
refactor/extract-lifecycle-and-version-parsing
Mar 8, 2026
Merged

refactor: extract shared lifecycle parsing and version parsing utilities#303
jimisola merged 3 commits intomainfrom
refactor/extract-lifecycle-and-version-parsing

Conversation

@jimisola
Copy link
Copy Markdown
Member

@jimisola jimisola commented Mar 8, 2026

Summary

  • Add LifecycleData.from_dict() classmethod to centralize lifecycle parsing from YAML dicts, replacing duplicated inline blocks in requirements_model_generator.py and svcs_model_generator.py
  • Add Utils.parse_version() to centralize version string parsing, replacing duplicated __parse_req_version and __parse_svc_version private methods
  • Remove unused LIFECYCLESTATE, InvalidVersion, and Version imports from both generators
  • Add 4 unit tests for LifecycleData.from_dict() (TDD)

Test plan

  • All 192 unit tests pass (188 existing + 4 new)
  • flake8 clean
  • black format check passes
  • Regression smoke test: all 6 outputs identical to main (status/report × test_standard/test_basic/reqstool-demo)

🤖 Generated with Claude Code

- Add LifecycleData.from_dict() classmethod to centralize lifecycle
  parsing from YAML dicts, replacing duplicated inline blocks in
  requirements_model_generator.py and svcs_model_generator.py
- Add Utils.parse_version() to centralize version string parsing,
  replacing duplicated __parse_req_version and __parse_svc_version
  private methods
- Remove unused LIFECYCLESTATE, InvalidVersion, and Version imports
  from both generators
- Add 4 unit tests for LifecycleData.from_dict() (TDD)

Signed-off-by: jimisola <jimisola@jimisola.com>
@jimisola jimisola self-assigned this Mar 8, 2026
Jimisola Laursen and others added 2 commits March 8, 2026 18:58
@jimisola jimisola merged commit 87e6fed into main Mar 8, 2026
6 checks passed
@jimisola jimisola deleted the refactor/extract-lifecycle-and-version-parsing branch March 8, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant