Initial upload: TermDiagram v0.1.0
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled

This commit is contained in:
2026-01-29 22:28:00 +00:00
parent 571c44dd71
commit 4a0f030d13

View File

@@ -0,0 +1,34 @@
from typing import List
from ..models import Module, ClassSymbol
class MermaidDiagramGenerator:
def generate_class_diagram(self, modules: List[Module]) -> str:
lines = ["classDiagram"]
lines.append(" direction TB")
lines.append("")
for module in modules:
for cls in module.classes:
self._render_class(lines, cls)
lines.append("")
for module in modules:
for cls in module.classes:
self._render_relationships(lines, cls)
return "\n".join(lines)
def _render_class(self, lines: List[str], cls: ClassSymbol):
class_def = f" class {cls.name} {{"
lines.append(class_def)
for method in cls.methods:
sig = f"({', '.join(method.params)})":""
lines.append(f" +{method.name}{sig}")
lines.append(" }")
def _render_relationships(self, lines: List[str], cls: ClassSymbol):
for base in cls.bases:
lines.append(f" {base} <|-- {cls.name}")