diff --git a/metagpt/utils/visual_graph_repo.py b/metagpt/utils/visual_graph_repo.py index 6f478a40b..7edd3b379 100644 --- a/metagpt/utils/visual_graph_repo.py +++ b/metagpt/utils/visual_graph_repo.py @@ -108,3 +108,10 @@ class VisualDiGraphRepo(VisualGraphRepo): name = name.split(".")[-1] return name + + async def get_mermaid_sequence_view_versions(self) -> List[(str, str)]: + sequence_views = [] + rows = await self.graph_db.select(predicate=GraphKeyword.HAS_SEQUENCE_VIEW_VER) + for r in rows: + sequence_views.append((r.subject, r.object_)) + return sequence_views diff --git a/tests/metagpt/utils/test_visual_graph_repo.py b/tests/metagpt/utils/test_visual_graph_repo.py index 67e49bada..bc359b939 100644 --- a/tests/metagpt/utils/test_visual_graph_repo.py +++ b/tests/metagpt/utils/test_visual_graph_repo.py @@ -3,6 +3,7 @@ from pathlib import Path import pytest +from metagpt.utils.common import remove_affix, split_namespace from metagpt.utils.visual_graph_repo import VisualDiGraphRepo @@ -19,6 +20,15 @@ async def test_visual_di_graph_repo(context, mocker): assert sequence_views for ns, sqv in sequence_views: filename = re.sub(r"[:/\\\.]+", "_", ns) + ".sequence_view.md" + sqv = sqv.strip(" `") + await context.repo.resources.graph_repo.save(filename=filename, content=f"```mermaid\n{sqv}\n```\n") + + sequence_view_vers = await repo.get_mermaid_sequence_view_versions() + assert sequence_view_vers + for ns, sqv in sequence_view_vers: + ver, sqv = split_namespace(sqv) + filename = re.sub(r"[:/\\\.]+", "_", ns) + f".{ver}.sequence_view_ver.md" + sqv = remove_affix(sqv).strip(" `") await context.repo.resources.graph_repo.save(filename=filename, content=f"```mermaid\n{sqv}\n```\n")